首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

函数周期表丨筛选丨值丨KEEPFILTERS

KEEPFILTERS函数

如果说,CALCULATE函数和CALCULATETABLE函数是霸道的话,那么KEEPFILTERS函数就是温柔。

CALCULATE函数,本身的作用我们都知道,就是修改上下文形成新的上下文,会覆盖原有列的所有上下文,以CALCULATE函数的结果作为新的上下文。

其本身行为是霸道的,KEEPFILTERS函数就是为了弥补这种霸道而产生的。

用途:将CALCULATE函数本身的覆盖上下文修改为追加上下文。

语法

参数

表达式:任意表达式。

返回结果

例子

模拟数据:

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

结果:

这段CALCULATE的代码,将条件限定为“白茶”,因此白茶这一条件直接覆盖了当前列中的其他筛选条件,只显示这一项。

对比一下结果:

而使用KEEPFILTERS函数的结果,是将“白茶”这一条件,追加到当前筛选中。

CALCULATE是找到“白茶”这个人,在你们团队,那么你们团队就一起处罚;

而KEEPFILTERS是追加筛选是什么意思?就是我找到“白茶”这个人了,和其他人无关,只对“白茶”进行处罚。

虽然白茶说的话可能粗糙一点,但是意思差不多。

可能还是不太好理解,我们再添加两组代码进行对比:

代码1:

代码2:

代码3:

代码4:

结果:

分别进行解释:

SUM本身受到上下文的影响,因此会自动呈现每个筛选条件的数值;

CALCULATE例子只有一个筛选条件为“白茶”,这个条件覆盖了当前的筛选,导致每行的条件都是“白茶”;

KEEPFILTERS例子将“白茶”这一条件,追加到当前筛选中,二者取交集,因此只有“白茶”呈现;

CALCULATE例子2先是受到内部优先级影响,运行VALUES函数,其次“白茶”这一条件围绕着VALUES函数进行,二者取交集,呈现“白茶”结果。

因此,虽然KEEPFILTER例子结果与CALCULATE例子2结果是一样的,但是运行逻辑不同。

前者是内部条件与外部筛选取交集;

后者是内部条件取交集,不涉及外部。

白茶是用CALCULATE函数进行举例的,对于CALCULATETABLE函数效果也差不多,这里就不赘述了。

小伙伴们GET了么?

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

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201011A0BRMD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券