You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI矩阵度量值使用CALCULATE筛选时数值不显示问题

问题产生原因
  • 矩阵视觉对象的行维度使用Line字段,且配置了视觉级筛选仅展示AB、AC、AG三类,因此每个值单元格的初始筛选上下文为当前月份+当前行对应的Line值。
  • 原DAX代码中计算AB、AC行分母时,使用的FILTER ( 'table1', table1[Line] = "ST" )是在当前筛选上下文限定的表范围内做筛选:当单元格上下文为Line=AB或Line=AC时,传入FILTER的table1已经被筛选为仅包含当前Line值的行,不存在Line="ST"的记录,因此分母计算结果为空,DIVIDE函数返回空值,无法在视觉对象中渲染。
  • AG行使用固定值4作为分母,计算过程不依赖表中ST行的数据,不受当前Line筛选上下文的影响,因此可以正常显示结果。
修复方案

不需要为AB、AC、AG分别写分支判断,三类Line的计算逻辑完全一致:均为当前行Line的当月金额 / 当月ST对应的金额,计算分母时只需先清除Line维度的现有筛选,再筛选Line="ST"即可。

  • 保留矩阵的视觉级筛选配置:行维度放Line、列维度放Month,筛选器中勾选Line的AB、AC、AG三个值,排除ST。
  • 将原度量值替换为以下代码:
(%) Amount ST =
VAR MonthlySTAmount =
    CALCULATE (
        SUM ( table1[Amount] ),
        REMOVEFILTERS ( table1[Line] ), // 清除行维度对Line的筛选限制
        table1[Line] = "ST" // 筛选出ST行的金额
    )
RETURN
    DIVIDE ( SUM ( table1[Amount] ), MonthlySTAmount )
  • 将度量值的格式设置为百分比,保留2位小数即可完全匹配预期结果:
    • 1月:AB 50.00%、AC 10.00%、AG 75.00%
    • 2月:AB 50.00%、AC 10.00%、AG 20.00%
    • 3月:AB 7.69%、AC 9.23%、AG 3.08%

注:如果使用的Power BI版本不支持REMOVEFILTERS函数,可以将对应参数替换为ALL( table1[Line] )实现相同的清除筛选效果,代码逻辑不变。

内容的提问来源于stack exchange,提问作者ofeliajesus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:54:37