Power BI表变量不响应筛选:唯一值标记列更新异常
解决切片器筛选后flag不更新的问题
问题根因
你写的flag是计算列,这类列在数据导入模型时就固定下来了,不管后面用切片器怎么筛选,它都不会重新计算。要让它跟着筛选结果动态更新,得把逻辑改成度量值——度量值会实时响应筛选上下文的变化。
修改后的DAX代码
1. 保留原RAND计算列(无需改动)
RAND = [PROPOSITION_CD] + RAND()
2. 新建flag度量值(替换原来的计算列)
flag = VAR 当前行RAND = MAX('Sheet2'[RAND]) VAR 筛选后的分组表 = FILTER( ALLSELECTED('Sheet2'), 'Sheet2'[PRPSTN_DS] = MAX('Sheet2'[PRPSTN_DS]) && 'Sheet2'[PROPOSITION_CD] = MAX('Sheet2'[PROPOSITION_CD]) ) VAR 分组内最小RAND = MAXX( TOPN(1, 筛选后的分组表, [RAND], ASC), [RAND] ) RETURN IF(当前行RAND = 分组内最小RAND, 1, 0)
关键改动说明
- 用
ALLSELECTED('Sheet2')替代原代码里的全表引用,确保计算时只使用切片器筛选后的数据集 - 度量值依赖聚合上下文,所以用
MAX()提取当前行的字段值 - 把
SUMX换成MAXX,更精准地获取分组内目标行的RAND值
使用方法
将这个flag度量值拖入你的表格视觉对象中,当你用切片器筛选INT0T、INT0W时,每组剩余的行都会自动标记为1,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Richard Grant
相关产品推荐
相关产品推荐

