Power BI中创建DAX度量值:统计各raw_adm_appl_id下rn_desc=1的raw_stdnt_id总数
按分区筛选并统计符合条件的学生ID总数(DAX度量值)
需求说明:基于包含多个raw_adm_appl_id字段值的数据表,创建DAX度量值,按raw_adm_appl_id分区,筛选每个分区中rn_desc=1的行,统计所有此类行的raw_stdnt_id总数。
可以使用以下DAX度量值实现:
Count_RawStdntID_RnDesc1 = CALCULATE( COUNTROWS(VALUES('你的表名'[raw_stdnt_id])), -- 统计去重后的学生ID总数,无需去重则替换为COUNT('你的表名'[raw_stdnt_id]) FILTER( ALL('你的表名'), '你的表名'[rn_desc] = 1 ), VALUES('你的表名'[raw_adm_appl_id]) -- 按raw_adm_appl_id分区筛选 )
代码说明:
CALCULATE:核心函数,用于修改筛选上下文并执行统计逻辑COUNTROWS(VALUES(...)):统计去重的raw_stdnt_id数量,若业务允许重复计数,直接替换为COUNT('你的表名'[raw_stdnt_id])即可FILTER(ALL(...), rn_desc=1):筛选出所有rn_desc等于1的行VALUES('你的表名'[raw_adm_appl_id]):保留当前上下文的raw_adm_appl_id分区,确保每个分区仅取rn_desc=1的行
也可以用另一种更直观的写法,先筛选符合条件的行再统计:
Count_RawStdntID_RnDesc1 = VAR FilteredRows = FILTER( SUMMARIZE('你的表名', '你的表名'[raw_adm_appl_id], '你的表名'[raw_stdnt_id], '你的表名'[rn_desc]), '你的表名'[rn_desc] = 1 ) RETURN COUNTROWS(FilteredRows)
这个写法先通过SUMMARIZE按所需字段分组,再筛选出rn_desc=1的行,最后统计行数;若需要去重统计学生ID,可将RETURN部分替换为COUNTROWS(VALUES(FilteredRows[raw_stdnt_id]))
内容的提问来源于stack exchange,提问作者Yogesh Thapliyal
相关产品推荐
相关产品推荐

