PowerBI中外部筛选器无法作用于DAX构建的计算表问题求助
问题根因
你当前通过DAX构造的是计算表,这类表的计算时机为数据刷新阶段,生成后会作为静态数据存储在数据模型中,本身不会响应报表层面的切片器、筛选面板等交互筛选,这和你是否使用KEEPFILTERS没有关联,属于计算表的固有特性。
此外你代码中CountAllWork变量用了ALL(DummyTable),即便后续改成动态计算逻辑,该函数也会清除所有外部施加在DummyTable上的筛选,导致筛选不生效。
可行实现方案
要实现响应外部筛选的汇总指标展示,不需要构造动态DAX表,改用「辅助指标表+度量值」的标准方案即可,步骤如下:
- 首先创建一张无关联的辅助指标目录表,存储你要展示的指标序号和名称:
指标目录 = DATATABLE( "Index", INTEGER, "Title", STRING, { (01,"Count of all work"), (02,"Count of rare goods"), (03,"Count of bulk bills"), (04,"Count of special cases") } )
- 新建统一响应的度量值,根据当前上下文的指标返回对应计算结果:
指标值 = SWITCH( SELECTEDVALUE('指标目录'[Title]), "Count of all work", CALCULATE(COUNT(DummyTable[BillCode]), ALLSELECTED(DummyTable)), "Count of rare goods", CALCULATE(COUNT(DummyTable[BillCode]), DummyTable[BillCode] IN {"RareGoods"}), "Count of bulk bills", CALCULATE(COUNT(DummyTable[BillCode]), DummyTable[BillCode] IN {"Something","Else","Flanges","Tails"}), "Count of special cases", CALCULATE(COUNT(DummyTable[BillCode]), DummyTable[BillCode] IN {"Something","Else","Flanges","Tails"} && DummyTable[Duration] > 80) )
- 最后将
指标目录[Title]和[指标值]字段拖入表格视觉对象即可,外部切片器的筛选会直接作用于DummyTable,度量值会自动响应筛选变化。
补充说明
KEEPFILTERS的作用是保留当前上下文已有的同字段筛选规则,和本次筛选失效的问题无关,上述场景不需要额外添加该函数。
内容的提问来源于stack exchange,提问作者Telescope2334
相关产品推荐
相关产品推荐

