如何在保留筛选上下文的同时按组统计唯一ID - DAX
Power BI度量值解决方案:保留切片器筛选,忽略视觉内日期上下文统计
直接使用以下DAX度量值,替换对应表名和列名即可满足需求:
CLOSED 唯一ID统计 = VAR 当前状态 = SELECTEDVALUE('你的数据表'[Status]) VAR 筛选后ID集合 = CALCULATETABLE( VALUES('你的数据表'[ID]), '你的数据表'[Status] = "CLOSED", REMOVEFILTERS('日期表'[Date]) -- 替换为视觉对象中使用的日期列 ) RETURN IF(当前状态 <> "CLOSED", BLANK(), COUNTROWS(筛选后ID集合))
关键逻辑说明
- 判断当前行状态:通过
SELECTEDVALUE获取表格视觉对象当前行的状态,若不是CLOSED则直接返回空白,符合Nina行显示空白的场景。 - 精准清除日期上下文:
REMOVEFILTERS('日期表'[Date])仅清除表格视觉对象内的日期筛选,不会影响外部切片器的日期和Region筛选——这是解决你之前用ALL/ALLSELECTED导致筛选失效的核心,这类函数容易过度清除筛选上下文。 - 统计唯一ID:用
VALUES提取状态为CLOSED的唯一ID集合,再通过COUNTROWS统计数量,确保计数的是去重后的ID。
注意事项
- 替换代码中的
'你的数据表'为实际数据表名称,'日期表'[Date]为你在视觉对象中使用的日期列(如果日期列在同一张数据表里,就写'你的数据表'[Date])。 - 若Region是单独维度表,无需额外处理,外部切片器的Region筛选会自动保留。
- 验证场景:
- Nina行状态为"In Progress" → 返回空白
- Maxim行状态为CLOSED → 统计切片器日期范围内的唯一CLOSED ID数量(结果为1)
- Huashu行状态为CLOSED → 统计对应数量(结果为2)
内容的提问来源于stack exchange,提问作者Mati Gouda
相关产品推荐
相关产品推荐

