Power BI DAX 如何用单度量值实现学校类数据筛选及pre内容分组
解决方案
完全可以在单个度量值中实现你要求的全部逻辑,以下分两种常见使用场景给出对应代码:
场景1:仅需要统计elementary+middle school的总数
直接基于你原来的度量加筛选条件即可,自动过滤掉pre类和high school的记录:
Results = CALCULATE( COUNTA('table_level'[level]), 'table_type'[type] = "school", 'table_level'[level] IN { "elementary", "middle school" } )
场景2:需要同时统计「elementary+middle school」和「含pre的Other分组」两个值
可以直接在单个度量中完成两类数据的计算,支持放到矩阵/表格中按分组展示:
GroupedLevelCount = // 固定筛选school类型的数据源 VAR FilterSchool = FILTER('table_type', 'table_type'[type] = "school") // 统计含pre的Other分组数量 VAR CountOther = CALCULATE( COUNTA('table_level'[level]), FilterSchool, CONTAINSSTRING(LOWER('table_level'[level]), "pre") ) // 统计目标层级的数量 VAR CountTarget = CALCULATE( COUNTA('table_level'[level]), FilterSchool, 'table_level'[level] IN { "elementary", "middle school" } ) // 根据需要返回对应值,如果你有自定义的分组维度可以配合SWITCH动态返回 RETURN CountTarget + CountOther // 如果需要单独返回Other的数量,直接替换上一行为 CountOther 即可
代码说明
- 用
LOWER()统一转换字段值为小写后再匹配pre,避免大小写格式不一致导致的匹配遗漏 - 自动过滤不需要的high school层级,不会计入任何统计结果
- 两表的关联关系会在CALCULATE筛选时自动生效,不需要额外写关联逻辑
内容的提问来源于stack exchange,提问作者bluePearl
相关产品推荐
相关产品推荐

