函数周期表丨筛选丨表丨ALLEXCEPT

ALLEXCEPT函数

ALLEXCEPT函数属于“筛选”类函数,隶属于“表函数”,在ALL函数系列家族中,其地位是不可或缺的。

EXCEPT翻译成中文是什么意思?表示:除了的意思。因此,这个函数所表达的意思顾名思义,“除了…剩下的都…”。联想起ALL函数的特性,这个函数表示除了某一项受到筛选之外,其他的项目全部清除筛选。

用途:特别适用于组内占比的计算。

语法

DAX=
ALLEXCEPT(<表>,<列>[,<列>[,…]])

参数

表:要清除筛选器的表。

列:(可重复)位于第一参数表中,需要保留筛选的列。除了这一列之外,其他列全部不受筛选影响。

注意:不能使用表的表达式和列的表达式。

返回结果

除了保留筛选器的那一列,清除了其他筛选条件的一个表。

例子

模拟数据:

这是白茶随机模拟的一份数据。

例子1:

ALLEXCEPT例子1 =
ALLEXCEPT ( '例子', '例子'[类别] )

结果:

因为当前上下文环境为行上下文,默认筛选条件为空,结果返回为剔除了保留筛选的列一个表。

例子2:

ALLEXCEPT例子2 =
SUM ( '例子'[销售] ) / CALCULATE ( SUM ( '例子'[销售] ), ALLEXCEPT ( '例子', '例子'[类别] ) )

结果:

除了[颜色]这一列保留筛选之外,清除其他筛选条件,因为当前上下文每组颜色都有多个选项,所以可以利用其特性求组内占比。

这也是ALLEXCEPT函数的主要用途。

例子3:

ALLEXCEPT例子3 =
SUM ( '例子'[销售] ) / CALCULATE ( SUM ( '例子'[销售] ), ALLEXCEPT ( '例子', '例子'[销售] ) )

结果:

当前保留筛选的条件项目发生变化,除了[销售]数据这一列之外的筛选上下文都清除了,所以返回结果为每个数据除以总数据的结果。

那么,ALLEXCEPT函数与ALL函数、ALLSELECTED函数的结果有什么区别么?

对比代码1:

对比ALL =
SUM ( '例子'[销售] ) / CALCULATE ( SUM ( '例子'[销售] ), ALL ( '例子' ) )

对比代码2:

对比ALLSELECTED =
SUM ( '例子'[销售] ) / CALCULATE ( SUM ( '例子'[销售] ), ALLSELECTED ( '例子' ) )

结果如下:

当日期受到筛选时,ALLEXCEPT的两个例子和ALL函数例子并未受到影响,对于ALLEXCEPT函数来说,没有触发被筛选的条件;而ALL是屏蔽掉了当前的所有筛选。只有ALLSELECTED函数结果受到影响。

当颜色受到筛选时,ALL函数依然不受影响,原理同上;ALLSELECTED函数受筛选影响变化。

表面上看,ALLEXCEPT函数的两个例子结果都没啥变化,但是仔细看总计栏会发现,例子2实际上受到了颜色变化的影响,因为其触发了筛选条件列;而例子3总计发生变化,说明其未受到筛选影响,没有触发筛选条件列。

小伙伴们❤GET了么?

白茶会不定期的分享一些函数卡片

(文件在知识星球[PowerBI丨需求圈])

这里是白茶,一个PowerBI的初学者。

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。

Fabric丨白茶 文章被收录于专栏

数据分析进阶之路,带你深入了解可视化技巧。

全部评论

相关推荐

09-30 20:49
湖南工学院 Java
SP小夜:举报了哥,你什么都没做错,全怪我那令人作呕的嫉妒和卑微的自尊心,看见你的文字我完全破防了,我直接丢盔弃甲了,看见你这图的那一秒,我满头大汗,浑身发冷,亿郁症瞬间发作了,生活仿佛没了颜色,像是被抓住尾巴的赛亚人,带着海楼石的能力者,抽离尾兽的人柱力,像是没了光的奥特曼,彻底断绝了生的希望。我几乎都快羡慕得疯了,倒在床上蒙住被子就开始抱着枕头尖叫流泪,嘴里一边喊着卧槽卧槽,一边又忍着,我边发边哭,打字的手都是抖的,后来我的手抖得越来越厉害,从心头涌起的思想、情怀和梦想,这份歆羡和悔恨交织在一起,我的笑还挂在脸上,可是眼泪一下子就掉下来了。求你了别发了,我生活再难再穷我都不会觉得难过,只有你们发这种东西的时候,我的心里像被刀割一样的痛,打着字泪水就忍不住的往下流。每天早上7点起床晚上9点睡觉,年复一年地学到现在,憧憬着一个月赚上万块的幸福生活,憧憬着美好阳光的未来。我打开了手机,看到你的图,我感到了深深的差距,我直接跳进了家门口的井里。
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务