DAX计算员工平均值不符预期,疑与月度天数有关
DAX员工平均值计算异常原因排查及修正
异常核心原因:你的代码是按单日计算去重员工数后求平均,而非按月度维度计算。
- 逻辑拆解:
T1通过SUMMARIZE按vwDimDatum[Datum2](单日日期)分组,每天都会计算一次[_DistinctEmployee]AVERAGEX(T1, [Distinct Employees])是对所有符合条件的单日数值求算术平均,不是对月度数值的平均
- 对应你的数据验证:1月有31天,每天去重员工数均为24;2月按28天算,每天均为25。总平均为
(24*31 + 25*28)/(31+28) = 1444/59 ≈24.47,和你得到的结果完全匹配。
- 逻辑拆解:
修正方案:先按月度分组计算去重员工数,再求月度平均值。修改后的DAX代码示例:
_DAXNAME = VAR DateChosen = MAX(vwDimDatum[Datum2]) VAR T1 = SUMMARIZE( FILTER(ALL(vwDimDatum), vwDimDatum[Datum2] <= DateChosen), -- 按年月分组,若模型有现成的年月维度字段(如vwDimDatum[YearMonth]),直接替换更高效 YEAR(vwDimDatum[Datum2]), MONTH(vwDimDatum[Datum2]), "Distinct Employees", [_DistinctEmployee] ) RETURN AVERAGEX(T1, [Distinct Employees])
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

