Power BI Desktop中按另一字段排序后CALCULATE+REMOVEFILTERS失效问题
问题原因与解决方案
核心原因
当你给field_a设置了按同表的field_b排序后,Power BI会在筛选上下文里建立两者的强关联——field_b的筛选会自动锁定field_a的对应值。这时候单独用REMOVEFILTERS('表'[field_a])只会清除field_a的显性筛选,但field_b的隐性筛选仍在生效,导致CALCULATE计算的“总参与率”其实还是当前行的参与率,分子分母相等,结果自然是100%。
解决方案
1. 清除整个表的筛选(适合全局占比计算)
如果你的百分比是计算当前行占全局总参与率的比例,直接用整个表作为REMOVEFILTERS的参数,清除所有来自该表的筛选:
总参与率_全局 = CALCULATE([参与率度量值], REMOVEFILTERS('你的表名')) 正确百分比 = DIVIDE([当前行参与率], [总参与率_全局])
2. 同时清除两个字段的筛选(保留其他筛选条件)
如果需要保留其他筛选(比如来自其他表的切片器筛选),只清除field_a和field_b的关联筛选:
总参与率_清除关联 = CALCULATE([参与率度量值], REMOVEFILTERS('你的表名'[field_a], '你的表名'[field_b])) 正确百分比 = DIVIDE([当前行参与率], [总参与率_清除关联])
3. 取消字段排序设置(业务允许时适用)
如果field_a按field_b排序不是业务必需的,可以直接取消该设置:
- 在字段列表选中
field_a - 切换到「建模」选项卡
- 点击「排序依据」,选择「无」
之后REMOVEFILTERS('表'[field_a])就能正常清除筛选。
内容的提问来源于stack exchange,提问作者Raquel Freud
相关产品推荐
相关产品推荐

