如何在DAX中使用COUNTIF?配对条件列计数需求求助
DAX统计配对满足条件的总数解决思路
核心逻辑
你需要统计两个独立配对的满足次数:
- 每一行中列A和列B同时为"T",计1次
- 每一行中列C和列D同时为"T",计1次
最终总数是这两个次数的总和。
方法一:变量+CALCULATE筛选(性能更优)
适合数据量较大的场景,通过筛选符合条件的行后统计行数:
配对统计总数 = VAR 符合AB条件的行数 = CALCULATE(COUNTROWS('你的表名'), '你的表名'[A] = "T", '你的表名'[B] = "T") VAR 符合CD条件的行数 = CALCULATE(COUNTROWS('你的表名'), '你的表名'[C] = "T", '你的表名'[D] = "T") RETURN 符合AB条件的行数 + 符合CD条件的行数
- 把
'你的表名'替换成你实际的表名称 CALCULATE会筛选出同时满足两个条件的行,COUNTROWS统计这些行的数量- 最后将两个统计结果相加得到总数
方法二:SUMX逐行判断(逻辑更直观)
适合新手理解,逐行检查每个配对是否满足条件,累加结果:
配对统计总数 = SUMX( '你的表名', // 每行判断AB配对是否满足,满足加1否则加0 IF('你的表名'[A] = "T" && '你的表名'[B] = "T", 1, 0) + // 每行判断CD配对是否满足,满足加1否则加0 IF('你的表名'[C] = "T" && '你的表名'[D] = "T", 1, 0) )
SUMX遍历表中的每一行,计算当前行的贡献值(0、1或2)- 把所有行的贡献值相加,得到最终总数
注意事项
- 确保列名和表名与你的实际数据完全一致,大小写敏感
- 因为你的列值只有"T"或空值,所以不需要额外判断空值——只要列值不等于"T",条件就不成立
内容的提问来源于stack exchange,提问作者Cheries
相关产品推荐
相关产品推荐

