DAX ALL函数是否忽略Power Query筛选?度量值失效求排查
DAX中ALL函数与Power Query筛选的关系及度量值问题排查
ALL函数是否忽略Power Query筛选?
Power Query的筛选属于数据源行级筛选,会直接剔除不符合条件的数据,仅将剩余行加载到数据模型中。DAX的ALL函数仅能清除模型层面的上下文筛选(如切片器、视觉对象筛选、关联表筛选),无法恢复Power Query已经过滤掉的数据。因此,ALL函数无法忽略Power Query应用的筛选。
度量值问题排查与修正
你的度量值语法本身没有错误,但无法得到预期结果可能由以下原因导致:
ALL(TICKET[ASSOCIATE.name])仅清除ASSOCIATE.name列的筛选,如果存在其他列或关联表的筛选(比如DIM_DATO的日期筛选),依然会限制计数范围USERELATIONSHIP激活了指定日期关系,但如果当前上下文已有其他日期筛选,可能导致数据范围冲突
针对性修正方案
- 忽略TICKET表所有列的筛选,仅统计x_channel=2的行
将ALL(TICKET[ASSOCIATE.name])改为ALL(TICKET),清除整个TICKET表的上下文筛选:Telefon = CALCULATE(COUNTROWS(TICKET), TICKET[x_channel] = 2, ALL(TICKET), USERELATIONSHIP(DIM_DATO[Opprettet], TICKET[Created]) ) - 仅忽略ASSOCIATE.name的筛选,保留其他筛选
若原需求是仅排除ASSOCIATE.name的筛选,需检查是否存在其他表的筛选影响TICKET表,比如确认DIM_DATO的日期筛选是否与激活的关系匹配,同时验证Power Query中未预先过滤x_channel=2的行。
内容的提问来源于stack exchange,提问作者Neri Kim
相关产品推荐
相关产品推荐

