如何将基于人员名册的AVERAGEIFS多输出合并为单个整体平均数值
问题根因
你当前使用的写法传入了整个Roster[Names]作为匹配条件,AVERAGEIFS会自动逐行匹配花名册中的每个名字,返回对应每个人的工单处理时长平均值数组,嵌套外层AVERAGE相当于对所有人员的个人平均值再做平均,会因为不同人员的工单数量差异导致权重计算错误,和你需要的「所有符合条件工单的整体平均值」逻辑不符。
解决方案
方案1:Excel 365/2021及以上版本(写法最直观)
直接用FILTER筛选出所有符合条件的工单记录,再对筛选后的处理时长字段求平均即可:
=AVERAGE(FILTER(IncidentTable[End to End], (COUNTIF(Roster[Names],IncidentTable[Assigned to])>0) *(IncidentTable[Opened]>=$C$4) *(IncidentTable[Opened]<=$C$5) ))
逻辑说明:先过滤出同时满足「处理人在花名册内、工单开单时间在C4和C5限定范围内」的所有工单的End to End数值,再直接对这部分数值求平均,结果就是你需要的整体工单平均值。
方案2:全Excel版本兼容(旧版本也可直接使用)
用SUMPRODUCT分别计算符合条件工单的总处理时长、总工单数量,二者相除得到整体平均值:
=SUMPRODUCT( --(COUNTIF(Roster[Names],IncidentTable[Assigned to])>0), --(IncidentTable[Opened]>=$C$4), --(IncidentTable[Opened]<=$C$5), IncidentTable[End to End] ) / SUMPRODUCT( --(COUNTIF(Roster[Names],IncidentTable[Assigned to])>0), --(IncidentTable[Opened]>=$C$4), --(IncidentTable[Opened]<=$C$5) )
两种方案计算结果一致,都能得到你预期的2.96天的正确结果。
内容的提问来源于stack exchange,提问作者Robert Stolle
相关产品推荐
相关产品推荐

