我有一张表格,其中 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))
我并不总是喜欢这样,因为那里有明确的单元格引用。但要摆脱它需要更多努力。你可以用以下技术之一来代替它这里。