【问题标题】:"Resetting" Average in ExcelExcel中的“重置”平均值
【发布时间】:2015-03-05 06:28:56
【问题描述】:

请原谅我对我的问题的糟糕解释,任何见解将不胜感激。

我在 Excel 中使用从固定单元格开始并向下填充的平均值。 例如:B 列包含值,C 列包含公式 =AVERAGE($B$1:B1) 填充,因此在第 10 行,公式为 =AVERAGE($B$1:B10)

我想知道是否有一种方法可以计算当 A 列中的值发生变化时会“重置”的平均值。使用 IF 函数很容易获得 A 列是否更改的公式,但我不知道如何在平均值“重置”时更改参考单元格。我试图用公式附上一张图片,但我没有 10 名声望,所以这里有一个简短示例表的链接:

https://drive.google.com/file/d/0BymZUcneHsYgUnRoYkRkdnJYbmM/view?usp=sharing

如果可能的话,我宁愿在没有 VBA 的情况下做到这一点。

非常感谢。

编辑:是否可以在 A 列从“A”切换到“B”(或“B”到“A”时重新开始的数据列旁边有一个计数功能),那么我可以简单地使用带有结果值的平均偏移量来获得所需的平均值吗?

【问题讨论】:

  • 这种类型的处理通常最好在数据透视表中执行。

标签: excel


【解决方案1】:

您应该使用 =AVERAGEIF 函数。

=AVERAGEIF($A$1:A1,A1,$B$1:B1)

【讨论】:

【解决方案2】:

这就是我最终解决这个问题的方法:

我使用 =ROW()-MAX(INDEX((A$1:A2A2)*ROW(A$1:A2),0 倒计时,直到“A”变为“B”,反之亦然,然后使用 =ROW()-MAX(INDEX((A$1:A2A2)*ROW(A$1:A2),0 对上式计算的偏移量的数据进行平均。

注意数据还在B列,A列有“A”或“B”,这两个公式分别放在I和J中

非常感谢您的帮助

【讨论】:

    【解决方案3】:

    您可以使用Indirect 来解析自定义范围。由于“A”中的值可以多次出现在不同的块中,因此您必须添加一个额外的列来跟踪每个范围的起始行:

    (starting from row 2, [C1] = 1)
    =IF(A2<>A1,ROW(A2),C1)
    

    结果将在“D”列中:

    =AVERAGE(INDIRECT("B"& C1 &":B"&ROW(A1)))
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    相关资源
    最近更新 更多