Power BI跨双表条件去重统计DAX度量值编写报错如何解决?
DAX跨表筛选报错解决方法
报错原因
你写的DAX表达式中,将来自Visits和Customers两张表的过滤条件放在了同一个布尔表达式里,DAX规则要求:作为表筛选参数的布尔表达式,只能引用同一张表的列,因此触发报错。
正确写法
最简单的方案是把两个表的过滤条件拆分为CALCULATE的独立参数,CALCULATE天然支持多个过滤参数,参数间为逻辑与的关系,会自动基于两表已有的一对多关联传递筛选上下文:
去重客户计数 = CALCULATE( DISTINCTCOUNT('Visits'[CustomerID]), 'Visits'[closedFLG] = 1, 'Customers'[formFLG] = 1 )
可选扩展写法
如果需要显式控制筛选逻辑,或者遇到关联关系未激活等特殊场景,也可以通过FILTER+RELATED的方式实现:
去重客户计数 = CALCULATE( DISTINCTCOUNT('Visits'[CustomerID]), FILTER( 'Visits', 'Visits'[closedFLG] = 1 && RELATED('Customers'[formFLG]) = 1 ) )
这个写法中RELATED函数会从关联的一端表(Customers)取对应字段值,整个FILTER仅基于Visits表的上下文执行,符合单表过滤的语法要求。
内容的提问来源于stack exchange,提问作者Elle
相关产品推荐
相关产品推荐

