函数周期表丨筛选丨表丨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的初学者。

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fabric丨白茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值