如何在Excel中结合AVERAGEIF与AGGREGATE计算分组均值?
解决方案
以下是几个能实现按阶段筛选并忽略错误值的平均百分比计算方法:
方法1:AGGREGATE函数组合(兼容多数Excel版本)
使用AGGREGATE的错误忽略特性,结合条件筛选生成有效数据集:
=AGGREGATE(1,6,Table1[PERCENTAGE]/(Table1[PHASE]="Phase 1"))
- 参数说明:
1代表计算平均值,6代表忽略所有错误值; - 原理:通过
Table1[PHASE]="Phase 1"生成逻辑数组,不符合条件的项会让除法返回#DIV/0!,AGGREGATE会自动忽略这些错误和原始的N/A等错误值,只计算符合条件的有效百分比的平均值; - 注意:旧版Excel需要按
Ctrl+Shift+Enter作为数组公式输入,Excel 365/2021直接回车即可。
方法2:SUMPRODUCT函数组合(兼容所有Excel版本)
分别计算符合条件的有效数值总和与数量,再求商:
=SUMPRODUCT((Table1[PHASE]="Phase 1")*ISNUMBER(Table1[PERCENTAGE])*Table1[PERCENTAGE])/SUMPRODUCT((Table1[PHASE]="Phase 1")*ISNUMBER(Table1[PERCENTAGE]))
- 原理:
(Table1[PHASE]="Phase 1")筛选目标阶段,ISNUMBER(Table1[PERCENTAGE])排除所有错误值(N/A、#VALUE!等); - 第一个
SUMPRODUCT计算符合条件的有效百分比总和,第二个计算有效数据的数量,两者相除得到平均值; - 优势:无需数组输入,所有Excel版本都能直接使用。
方法3:AVERAGE+FILTER组合(Excel 365/2021及以上)
利用动态数组函数简化逻辑,更直观易懂:
=AVERAGE(FILTER(Table1[PERCENTAGE],(Table1[PHASE]="Phase 1")*ISNUMBER(Table1[PERCENTAGE])))
- 原理:
FILTER先筛选出属于目标阶段且为有效数值的百分比数据,再用AVERAGE计算这些数据的平均值; - 优势:公式逻辑清晰,可读性强,自动适配动态数据变化。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

