如何用DAX度量值自定义Power BI矩阵的小计与总计
Power BI矩阵视觉对象自定义总计(剔除EX值)
问题根源
Power BI矩阵的内置总计是对行维度的明细值执行默认聚合逻辑(比如取文本值中的首个/最后一个非空值),所以当存在EX这类文本值时,总计会直接返回EX,而非按需求剔除EX后计算达标率。
解决方法:编写DAX自定义度量值
通过DAX的上下文判断函数(ISINSCOPE)区分明细行和总计行,分别返回原始指标值和计算后的达标率:
基础度量值(可选,便于维护)
- 计算达标记录数(值为
100%的条目):达标数 = CALCULATE(COUNTROWS('你的数据表'), '你的数据表'[指标值] = "100%") - 计算有效记录总数(剔除
EX的条目):有效总数 = CALCULATE(COUNTROWS('你的数据表'), '你的数据表'[指标值] <> "EX")
- 计算达标记录数(值为
综合显示度量值
这个度量值会在明细行显示原始指标值,总计行自动计算剔除EX后的达标率:自定义指标显示 = IF( ISINSCOPE('你的数据表'[组织层级明细]), // 替换为你组织层级的最明细列名 MAX('你的数据表'[指标值]), // 明细行返回原始指标值 DIVIDE([达标数], [有效总数], 0) // 总计行返回达标率,分母为0时返回0 )
配置步骤
- 打开Power BI报表,将矩阵视觉对象的值区域替换为上述
自定义指标显示度量值 - 行维度保留原组织层级字段,列维度保留原自定义指标字段
- 若需要以百分比格式显示总计,选中度量值后在「格式」面板设置数据格式为百分比
注意事项
- 替换代码中的
你的数据表为实际表名,组织层级明细为组织层级的最底层字段(如“小组”“员工”) - 若指标值是数值类型(如
1代表100%,0代表0%),需将DAX中的"100%"改为1,"0%"改为0 DIVIDE函数的第三个参数可按需调整(比如改为BLANK()表示分母为0时显示空白)
内容的提问来源于stack exchange,提问作者First
相关产品推荐
相关产品推荐

