DAX: 用SWITCH函数替换嵌套IF函数

IF函数和SWITCH函数的应用场景都比较简单,主要是根据设定不同的条件来获取不同的返回结果。两个函数可以相互替换,例如,IF(<logical_test>,<value_if_true>, value_if_false)可以用SWITCH函数改写为,SWITCH(<logical_test>, TRUE(), <value_if_true>, value_if_false)。
很多场景下,需要进行判断的条件只有两三种,因此相对来说IF函数使用的频率更高。但是很多时候,需要判断的条件可能会多余3条,此时,如果还使用IF函数进行书写,就会出现多层嵌套引用的情况,在阅读和书写上都带来不便。
例如下面是一个嵌套了四层IF函数的表达式,其中IF函数的判断条件部分使用了等于表达式:

IF Function =
IF (
    expression = A,
    1,
    IF (
        expression = 2,
        B,
        IF (
            express = 3,
            C,
            IF (
                expression = 4,
                D
            )
        )
    )
)

可以SWITCH函数进行替代。

SWITCH Function =
SWITCH (
    expression,
    1, A,
    2, B,
    3, C,
    4, D
)

如果IF内的判断条件是下面这种大于或者小于这种比较情况。

If function =
IF (
    expression > A,
    1,
    IF (
        expression > B,
        2,
        C
    )
)

则可以用下面这种形式的SWITCH表达式进行替换。

SWITCH function =
SWITCH (
    TRUE (),
    expression > A, 1,
    expression > B, 2,
    C
)

在这个SWITCH表达式中用了TRUE()函数作为条件判断的参数,这就相当于无论这个SWITCH表达式在何种上下文环境中运行,该判断条件的结果都是TRUE。根据SWITCH的运算特点,Power BI会去依次检查其后面设定的看起返回结果是否为TRUE,如果是则返回其对应的参数结果。如果没有符合条件的就返回设定值。这样,通过使用一个TRUE()函数作为条件判断参数,就使得后面的SWITCH表达式实现了前一个IF表达式的功能。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值