无法在CALCULATE函数中添加两个筛选器的Power BI DAX问题
问题分析与解决方案
原DAX函数存在语法逻辑错误,导致第二个筛选条件无法生效,核心问题是FILTER函数的嵌套格式和参数传递错误。以下是修正后的可行写法:
方案一:合并筛选条件到单个FILTER
Count_Computer_with_XYZ_Software = CALCULATE( COUNTROWS( FILTER( ABC_Computer, // 条件1:匹配HealthStatus表中的ComputerName CONTAINS(HealthStatus, HealthStatus[ComputerName], ABC_Computer[ComputerName]) // 条件2:筛选OS列以"Windows 10"开头的行 && LEFT(ABC_Computer[OS], 10) = "Windows 10" ) ) )
方案二:使用CALCULATE多筛选参数(更简洁高效)
如果ABC_Computer与HealthStatus表已通过ComputerName建立关系,可改用EXISTS函数简化匹配逻辑:
Count_Computer_with_XYZ_Software = CALCULATE( COUNTROWS(ABC_Computer), // 判断当前计算机是否在HealthStatus表中存在匹配 EXISTS(ABC_Computer, HealthStatus), // 筛选Windows 10系统的计算机 LEFT(ABC_Computer[OS], 10) = "Windows 10" )
关键修正说明
- 原代码错误地将
CONTAINS直接写在表名后,正确逻辑是把筛选条件作为FILTER的第二个参数 - 多个筛选条件无需嵌套FILTER,用
&&连接即可,或作为CALCULATE的独立筛选参数 EXISTS函数专为跨表匹配场景设计,比CONTAINS的执行效率更高
内容的提问来源于stack exchange,提问作者Dhiraj D
相关产品推荐
相关产品推荐

