DAX使用TOPN结果筛选表格时仍返回全部行问题求解
问题原因
你当前的度量值在逐行计算时受到了表格行上下文的筛选影响:当度量值被放在以国家为行维度的表格中时,每行的计算环境默认已经筛选了当前行对应的单个国家,你定义VAR _Countries时调用的VALUES(DimCountries[Country])在这个环境下只会返回当前行的1个国家,TOPN运算的对象只有1个值,自然每行都会判定当前国家属于前4的范围,最终所有国家都会返回对应数值。
修复方案
方案1:修改度量值逻辑
调整TOPN的计算范围为全量国家,不符合条件的行返回空值即可:
Top 4 Fully Vaccinated 3 = VAR _Countries = TOPN(4, ALL(DimCountries[Country]), [Fully Vaccinated %], DESC) RETURN IF( SELECTEDVALUE(DimCountries[Country]) IN _Countries, [Fully Vaccinated %], BLANK() )
方案2:使用视觉对象筛选(更简便)
不需要额外编写度量值,直接给当前表格视觉对象添加筛选规则:
- 把
[Fully Vaccinated %]字段拖入视觉对象筛选面板 - 筛选类型选择「前N个」,N值设置为4,排序依据选择
[Fully Vaccinated %]降序即可自动过滤出前4个国家。
内容的提问来源于stack exchange,提问作者Camus
相关产品推荐
相关产品推荐

