Excel - 计算表中可变行数的平均值的公式?

Excel - 计算表中可变行数的平均值的公式?

我有一张表格,其中 B 列中的值是 A 列中一些先前值的平均值。

我想使用命名范围“DaysToCount”来改变用于平均值的行数。我尝试使用 ADDRESS 和 CONCATENATE 来构建 AVERAGE 函数,如下所示:

AVERAGE(CONCATENATE(ADDRESS(ROW()-DaysToCount+1,2),":B",ROW())))

它给出了 #VALUE 错误。使用评估公式工具,我可以看到它的计算结果如下:

AVERAGE("B3:B12")  

我想要的是这个:

AVERAGE(B3:B12)

有没有办法解决这个问题——或者我应该尝试另一种方法?

答案1

使用公式在函数内构建单元格引用的方法是使用INDIRECT。我能够使用以下公式实现我的目标:

AVERAGE(INDIRECT("B" & ROW()-DaysToCount+1 & ":B"&ROW()))

答案2

快捷方式如下。假设此公式位于 B7 中:

=AVERAGE(OFFSET(B7,(-1 * (DaysToCount-1)),-1,DaysToCount))

我并不总是喜欢这样,因为那里有明确的单元格引用。但要摆脱它需要更多努力。你可以用以下技术之一来代替它这里

相关内容