如何使用多文本条件AverageIfs计算均值并排除NA值
多条件匹配计算平均得分(自动排除NA值)方案
AVERAGEIFS本身无法自动排除#N/A类错误值,且你之前写的公式存在引用格式错误,按下面的方法调整即可:
- 原公式的问题修正
你写的匹配条件"$C11"加了双引号,会被Excel识别为固定文本字符串,不是对C11单元格的引用,必须去掉引号;同时计算平均值的取值范围要和条件判断的范围行号对齐,不要写半拉整列F11:F,统一和条件范围保持相同行段,避免范围错位导致计算结果不准。 - 全版本Excel通用公式(无需数组三键)
直接替换成AGGREGATE函数即可,这个函数原生支持忽略错误值+多条件判断,所有Excel版本都能用:
参数说明:=AGGREGATE(1,6,F11:F34628/((C11:C34628=C11)*(D11:D34628="03")))- 第一参数
1:指定计算逻辑为求平均值 - 第二参数
6:指定计算时忽略所有错误值,F列的#N/A、不满足匹配条件返回的错误值都会被直接排除,不会干扰计算 - 后半段逻辑:仅当行数据同时满足「C列行政区等于C11的值」「D列年级等于"03"」两个条件时,对应行的F列得分才会参与平均计算。
- 第一参数
- 365/2021及以上新版Excel可选公式(可读性更强)
如果你用的是支持动态数组的新版Excel,可以用FILTER先筛出有效数据再算平均,逻辑更直观:
这里的=AVERAGE(FILTER(F11:F34628,(C11:C34628=C11)*(D11:D34628="03")*ISNUMBER(F11:F34628),0))ISNUMBER(F11:F34628)会自动把F列的NA、非数值内容全部筛除,只对符合两个匹配条件的有效得分算平均值。
批量下拉公式注意:要把所有判断范围加上绝对引用锁死,也就是把
C11:C34628改成$C$11:$C$34628、D11:D34628改成$D$11:$D$34628、F11:F34628改成$F$11:$F$34628,避免下拉时范围偏移出错。
内容的提问来源于stack exchange,提问作者ExcelFeebs
相关产品推荐
相关产品推荐

