Excel中使用AVERAGEIF函数返回0值的问题咨询
解决Excel中AVERAGEIF自引用循环导致返回0的问题
你推测的完全正确——问题根源就是自引用循环。当你在E列的空白单元格里输入引用整个E$2:E$1012范围的公式时,这个单元格在计算完成前会被判定为空值,干扰AVERAGEIF的结果判定,最终返回0。
不需要一定要用额外单元格中转,给你两种直接可行的解决方法:
方法一:额外单元格计算均值后回填
- 在E列以外的单元格(比如F2)输入公式:
=AVERAGEIF(E$2:E$1012,"<>"),此时因为引用范围不包含当前单元格,能得到正确的均值 - 复制这个均值结果,选中E列所有空白单元格,右键选择「选择性粘贴」→「数值」完成填充
方法二:直接在空白单元格使用无自引用的公式
可以用总和除以计数的方式绕开自引用问题,在E列空白单元格输入:
=SUMIF(E$2:E$1012,"<>")/COUNTIF(E$2:E$1012,"<>")
这个公式先计算所有非空单元格的总和,再除以非空单元格的数量,完全不会受当前单元格的待计算状态影响,直接得到正确均值。
如果你的Excel版本支持动态数组功能,也可以用更简洁的公式:
=AVERAGE(FILTER(E$2:E$1012,E$2:E$1012<>""))
内容的提问来源于stack exchange,提问作者man nameless
相关产品推荐
相关产品推荐

