Power BI中度量值在切片器筛选下结果异常的原因咨询
Power BI度量值与切片器交互问题解析
问题场景
- 单列表
Tb,列A值为{a,a,a,b,b,c},基于列A创建切片器 - 定义度量值:
M = CALCULATE(COUNT(Tb[values]), Tb[values] = "a") - 切片器选择
b时,M显示3而非预期的0/空白;新增列B(值{1,2,1,1,2,1})并创建切片器S,选择1时M结果为2(符合预期) - 尝试
ALLSELECTED和编辑切片器交互未解决问题
结论:这是特性,而非Bug
核心原因
- 同列筛选的覆盖逻辑
当切片器与度量值引用的是同一表的同一列时,CALCULATE的筛选参数会直接替换切片器的筛选条件,而非叠加。具体来说:- 切片器选择
b时,原本的表筛选是Tb[values] = "b",但CALCULATE中的Tb[values] = "a"会替换这个筛选,最终计算的是全表中a的数量,也就是3。
- 切片器选择
- 不同列筛选的叠加逻辑
新增列B后,切片器S的筛选条件是Tb[B] = 1,这与度量值中的Tb[values] = "a"属于不同列的筛选,会叠加生效:- 先筛选出
B=1的行(对应值为a,a,b,c),再在这些行中统计a的数量,结果为2,符合预期。
- 先筛选出
可行的修正方案
要实现切片器选择非a值时M显示0/空白,可通过以下两种方式修改度量值:
- 基于选中值判断
M = VAR SelectedVal = SELECTEDVALUE(Tb[values]) RETURN IF(SelectedVal = "a", COUNT(Tb[values]), 0)
- 保留切片器筛选(使用KEEPFILTERS)
M = CALCULATE(COUNT(Tb[values]), KEEPFILTERS(Tb[values] = "a"))
内容的提问来源于stack exchange,提问作者user480840
相关产品推荐
相关产品推荐

