Excel中的Averageif和Offset函数以获得滚动平均值
我有一大堆连续的行,我试图根据一个标准来平均最后90行。平均值需要在单个单元格中,而不是计算运行平均值的列中。我知道了如何计算最后90行的平均值,但我无法在平均值之前正确添加if函数以满足标准 数据: 下面是正常工作的平均值函数Excel中的Averageif和Offset函数以获得滚动平均值,excel,offset,moving-average,Excel,Offset,Moving Average,我有一大堆连续的行,我试图根据一个标准来平均最后90行。平均值需要在单个单元格中,而不是计算运行平均值的列中。我知道了如何计算最后90行的平均值,但我无法在平均值之前正确添加if函数以满足标准 数据: 下面是正常工作的平均值函数average(偏移量(E2,COUNTA(E:E)-1,-2,-90))。 下面是我试图运行的AVERAGEIF函数,该函数提供了不正确的数据: =AVERAGEIF(B:B,I15,OFFSET(E2,COUNTA(E:E)-1,-2,-90)) I15cell在本
average(偏移量(E2,COUNTA(E:E)-1,-2,-90))。
下面是我试图运行的AVERAGEIF
函数,该函数提供了不正确的数据:
=AVERAGEIF(B:B,I15,OFFSET(E2,COUNTA(E:E)-1,-2,-90))
I15
cell在本例中,是我试图匹配的销售类型
提前感谢您的帮助
=AVERAGEIF(OFFSET(B2,COUNTA(E:E)-2,0,-90),$I$15,OFFSET(C2,COUNTA(E:E)-2,0,-90))
第一:你需要从你的行中选择“-2”,而不是“-1”,你不能用-1获得最后的90分。。(通过在郊区将数据中的记录更改为“999”来测试它。当平均值发生显著变化时,您将看到它拾取该值。)
第二:你的目标和范围必须匹配。。反正是高度。因此,在这两种情况下使用相同的偏移公式
要稍微优化这一点,您可以在另一列中计算“COUNTA(E:E)-2”,命名它,然后在两种情况下都引用它(这样Excel只计算一次,而不是两次)。)
此外,如果I15单元是单个单元,您可能需要$I$15以确保安全。我认为在这种情况下,这并不重要,只是对不属于某一范围的单个孤立单元格这样做的习惯:)如果您在列E中实际有行数(数据),您可以使用
AVERAGEIFS
并使用基于列E的另一个标准,如下所示:
=AVERAGEIFS(C:C,B:B,I15,E:E,“>”&MAX(E:E)-90)
在您的示例中,销售类型是字符串的数据类型,平均值是数字的数据类型,进行这种逻辑测试是不符合逻辑的。我想根据销售类型平均C列(数据)。感谢您的帮助!恐怕我不清楚这个问题。您提供的公式似乎可以计算任何小于90的行数的平均值。但是,我只需要返回90行的平均值。例如,如果在第95行之后输入第1行,则计算中不应包括第1行,因为公式应告诉它返回第5行(95-90)。目前,如果我这样做,公式仍然使用第#1.ahh行计算结果,我明白了。。看看巴里的回答然后。。。那可能是你想要的。
=AVERAGEIF(OFFSET(B2,COUNTA(E:E)-2,0,-90),$I$15,OFFSET(C2,COUNTA(E:E)-2,0,-90))