Power BI DAX度量值行值一致但总计不同的原因及对齐方案
问题1:原度量值的总计聚合逻辑
首先明确公共度量值GM % YTD的底层是全局聚合计算逻辑:先对筛选范围内所有数据计算总毛利、总营收,再用总毛利/总营收得到毛利率,并非单维度毛利率的算术平均。
原度量值CALCULATE([GM % YTD], SAMEPERIODLASTYEAR('Date'[Date]))在总计行计算时,没有Revenue[Key_Client]的行上下文筛选,会直接计算「去年同期YTD范围内所有收入数据的整体毛利率」:所有客户的总毛利之和除以所有客户的总营收之和,本质是按营收规模加权的平均毛利率,73.2%就是这个加权计算的结果,自然和新度量值按客户算术平均的结果存在差异。
问题2:新度量值修改方案
可以通过判断当前计算上下文是否为单个客户的行级别,分别返回对应结果:行级别保留原有按客户计算移除筛选后的均值逻辑,总计行直接复用原度量值的计算逻辑,修改后的DAX如下:
VAR IsSingleClientRow = HASONEVALUE(Revenue[Key_Client]) RETURN IF( IsSingleClientRow, // 行级原有逻辑保持不变 VAR VAR1 = ADDCOLUMNS( VALUES(Revenue[Key_Client]), "Col1", CALCULATE( [GM % YTD], SAMEPERIODLASTYEAR('Date'[Date]), REMOVEFILTERS(Revenue[Type], Revenue[SectorType]) ) ) RETURN AVERAGEX(VAR1, [Col1]), // 总计行复用原度量值逻辑 CALCULATE([GM % YTD], SAMEPERIODLASTYEAR('Date'[Date])) )
如果你的表格行维度除了客户还有其他字段,可以把判断条件换成ISFILTERED(Revenue[Key_Client])适配更多场景。
内容的提问来源于stack exchange,提问作者Chicago1988
相关产品推荐
相关产品推荐

