重点函数 | KEEPFILTERS 用法介绍

本文详细介绍了KEEPFILTERS函数的用法,通过案例解析了如何在筛选器上下文中保留外部筛选器的影响,对比了KEEPFILTERS与ALL、VALUES的区别,强调了其在简化代码和提高执行效率上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


各位读者大家好!

今天的重点函数解析为大家带来的是KEEPFILTERS函数的用法,一起来看看吧!

首先,我们来看下KEEPFILTERS的语法构成,只有一个参数,如下:

KEEPFILTERS(<Exprission>)

对这个函数的用法,描述如下:KEEPFILTERS一个筛选器修饰符,它不会删除筛选器上下文中与KEEPFILTERS参数应用的筛选器冲突的现有列或表筛选器。
感觉还是很抽象,在我们具体阐释该函数的具体用法前,先来看一个案例:计算产品颜色为红色的产品销售额。很多小伙伴都会写出如下度量值:

 AlwaysRed :=
CALCULATE (  
          [SalesAmount],   
          Products[Color]= "Red"
)

在引擎内部,该表达式会被转化为以下表达式:

 AlwaysRed_Filter :=
CALCULATE (
    [SalesAmount],
    FILTER(
        ALL( Products[Color] ),
        Products[Color]= "Red"
    )
)

也就是说,CALCULATE内部的ALL函数去除了外部筛选器对Color列的筛选,对所有外部的筛选全部按照新的筛选器颜色为红色进行计算。
如果不想丢失外部已经存在的筛选器,一个广泛应用的方法是用VALUES取代ALL,代码如下:

 OnlyRed_Values:=
CALCULATE (
    [SalesAmount],
    FILTER(
        VALUES( Products[Color] ),
        Products[Color]= "Red"
    )
)
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值