Excel中AVERAGE与INDIRECT函数结合使用报错,求正确用法
解决Excel中AVERAGE与INDIRECT结合报错的问题
嘿,我来帮你搞定这个公式报错的问题!你的原公式出错核心是引用格式逻辑不对:你在INDIRECT外面额外加了Results!前缀,而且分开用两个INDIRECT来定义范围的写法,Excel没法正确识别成连续单元格区域。
方法1:修正INDIRECT的用法
把包含工作表、列和行范围的完整引用字符串,用INDIRECT一次性构建出来,公式如下:
=AVERAGE(INDIRECT("Results!C"&E2&":C"&F2))
这个公式会先拼接出目标区域的完整字符串(比如Results!C2:C51),再通过INDIRECT转换成Excel可识别的单元格引用,最后用AVERAGE计算平均值。
方法2:用INDEX替代INDIRECT(更推荐)
INDIRECT是易失性函数,每次工作表有变动都会重新计算,数据量大时可能拖慢性能。更推荐用非易失性的INDEX函数构建动态范围,公式如下:
=AVERAGE(INDEX(Results!C:C,E2):INDEX(Results!C:C,F2))
逻辑很清晰:
INDEX(Results!C:C,E2)返回Results表C列第E2行的单元格引用INDEX(Results!C:C,F2)返回Results表C列第F2行的单元格引用- 用冒号连接两者就形成了连续的动态区域,再交给
AVERAGE计算
两种方法都能实现你的需求,第二种在数据量较大的场景下性能表现更优。
内容的提问来源于stack exchange,提问作者Danick
相关产品推荐
相关产品推荐

