如何在DAX中按条件统计非空行,及多列过滤后统计剩余行数
DAX条件计数常见场景解决方案
1. 基于指定条件统计非空行数量
要统计满足指定条件的非空行,核心是用CALCULATE搭配计数函数,同时通过筛选器锁定非空行与目标条件:
- 用
COUNTROWS统计符合条件的行数,需额外添加NOT ISBLANK确保目标列非空:
非空行计数 = CALCULATE( COUNTROWS(df), NOT ISBLANK(df[目标列]), df[分类列] = "指定分类" -- 替换为你的实际条件 )
- 如果只需统计某列非空且符合条件的单元格数量,直接用
COUNTA(它会自动忽略空值):
非空列值计数 = CALCULATE( COUNTA(df[目标列]), df[分类列] = "指定分类" )
2. 多列设置过滤条件后统计剩余行数
当需要同时对两列(或多列)设置过滤规则时,在CALCULATE的筛选参数里用逻辑运算符组合多个条件即可。以下是示例代码:
度量值 = CALCULATE( COUNTROWS(df), df[column1] IN { "col1", "col2", "col3" }, -- column1属于指定值集合 df[column2] <> 0 -- column2不等于0 )
说明:
IN运算符用于指定列值的可选范围,适合多值匹配场景- 若需要严格排除
column2的空值,可追加NOT ISBLANK(df[column2])条件 CALCULATE会先应用所有筛选条件,再统计剩余的行数
内容的提问来源于stack exchange,提问作者symkly
相关产品推荐
相关产品推荐

