DAX度量值计算周维度平均值时求和而非取平均问题求解
问题原因
你当前的DAX公式存在计算上下文适配问题:在ID维度下,上下文默认限定了单一ID,公式计算结果符合预期;但折叠到周维度汇总时,公式直接迭代该周内所有Code[Code_name] = "Failure"的行计算[Time]平均值,而非先按ID维度计算每个ID的平均值后,再对周维度下的所有ID平均值取平均,因此出现异常值。
解决方案
调整DAX公式,新增外层迭代逻辑,指定先按ID维度计算单个ID的平均值,再对汇总维度下的所有ID结果做二次平均,替换后的公式如下(请将'YourTable'[ID]替换为你实际业务中ID字段对应的表名和字段名):
Average = AVERAGEX( VALUES('YourTable'[ID]), CALCULATE( AVERAGEX( FILTER('Code',Code[Code_name] = "Failure"), [Time] ) ) )
逻辑说明
- 外层
AVERAGEX迭代当前上下文(如周维度)下的所有唯一ID,保证汇总级计算的基准是ID维度的计算结果 - 内层
CALCULATE会将单个ID作为筛选上下文传入,计算每个ID对应的符合条件的Failure时间平均值 - 矩阵展开到ID维度时,每个ID仅对应一个迭代项,计算结果和原有逻辑完全一致;折叠到周等汇总维度时,会对该周期下所有ID的平均值再次求平均,符合预期展示需求。
内容的提问来源于stack exchange,提问作者BaluCap
相关产品推荐
相关产品推荐

