Power BI跨表列创建True/False筛选表达式计数行问题求助
DAX跨表筛选计数问题解决办法
问题核心
你遇到的报错是因为RELATED函数需要在行上下文中使用,而CALCULATE的筛选参数属于筛选上下文,直接在这里调用RELATED会缺乏行上下文支撑,哪怕表关系实际存在。
正确写法1:用FILTER生成行上下文
通过FILTER迭代Fact表,生成逐行的行上下文,此时可以正常使用RELATED关联Dim表的列:
CALCULATE( COUNTROWS('Fact Table'), FILTER( 'Fact Table', 'Fact Table'[Column1] <> "ARP1" || RELATED('Dim Table'[Column2]) <> "DK01" ) )
正确写法2:转换逻辑利用筛选上下文传递
原条件'Fact Table'[Column1] <> "ARP1" || 'Dim Table'[Column2] <> "DK01"等价于NOT('Fact Table'[Column1] = "ARP1" && 'Dim Table'[Column2] = "DK01"),可以直接在CALCULATE中组合筛选条件(利用一对多关系的筛选上下文自动传递):
CALCULATE( COUNTROWS('Fact Table'), NOT( 'Fact Table'[Column1] = "ARP1" && 'Dim Table'[Column2] = "DK01" ) )
额外检查点
- 确保Dim表到Fact表的关系是活跃状态(关系线为实线),如果是虚线(非活跃关系),需改为活跃关系,或在公式中用
USERELATIONSHIP指定要使用的关系。 - 确认
RELATED引用的Dim Table[Column2]是关系关联的表列,没有选错字段。
内容的提问来源于stack exchange,提问作者lifeofthenoobie
相关产品推荐
相关产品推荐

