您的位置:首页 > 科技 > 能源 > 简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别

简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别

2024/11/19 4:17:28 来源:https://blog.csdn.net/y523648/article/details/142252714  浏览:    关键词:简单示例,搞懂PowerBI的ALL(),ALLEXCEPT()和ALLSELECTED()的区别

假设我们有如下数据,我们来统计下各班级的人数

我们在报表页里加上 班级=’二班‘ 的筛选条件,此时PowerBI已经自动为我们显示了各班级人数:一班有3人,二班有1人。

根据我们的筛选条件,我们的统计人数应该是按照筛选器,得到1人(二班)的统计结果

我们分别用

ALL(table)

ALL(table[Column])

ALLEXCEPT(table, [Column])

ALLSELECTED(table[Column])

来测试下它们的区别。

DAX代码如下:

ALL_Measure = CALCULATE(COUNTROWS('表'),ALL()) ALL姓名_Measure = CALCULATE(COUNTROWS('表'),ALL('表'[姓名]))
ALL班级_Measure = CALCULATE(COUNTROWS('表'),ALL('表'[班级]))ALLEXCEPT_姓名_Measure = CALCULATE(COUNTROWS('表'),ALLEXCEPT('表','表'[姓名]))
ALLEXCEPT_班级_Measure = CALCULATE(COUNTROWS('表'),ALLEXCEPT('表','表'[班级]))ALLSELECTED_姓名_Measure = CALCULATE(COUNTROWS('表'),ALLSELECTED('表'[姓名]))
ALLSELECTED_班级_Measure = CALCULATE(COUNTROWS('表'),ALLSELECTED('表'[班级]))

结果如下:

我们发现,只有

ALL('姓名')   //与筛选器(班级)不同列

ALLEXCEPT('班级')  //与筛选器(班级)相同列

ALLSELECTED('班级'), ALLSELECTED('姓名')

是受到了筛选器(班级)的影响。

所以我们可以简单的得出以下的结论:

ALL()  --> 不受任何筛选器影响

ALL(列)  ---> 指定列与筛选列不同时受影响

ALLEXCEPT(列) ---> 指定列与筛选列相同时受影响

ALLSELECTED(列)  ---> 无论指定列与筛选列是否相同,都受影响

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com