PowerBI/DAX之理解IF与SWITCH

本篇文章将介绍IF与SWITCH函数的各种用法,这两个函数属于逻辑函数,虽然比较简单,但却是不可或缺的。


IF函数

语法:

IF( <logical_test> , <value_if_true>  [, <value_if_false>] )

作用:检查第一参数的判断结果,如果为 TRUE,则返回第二参数的值,如果为FALSE则返回第三参数的值。其中,第三参数可省略,默认为空。

DAX中的IF函数完全继承于Excel,而且也比较简单,因此就不再啰嗦,我们直接通过一个例子来学习。用到的计算列表达式如下:

销售额是否大于100 = IF('订单表'[销售额]>100,"是","否")

价格区间 = 
IF('订单表'[销售额]<40,"0-40",
IF('订单表'[销售额]<80,"40-80",
IF('订单表'[销售额]<120,"80-120",
IF('订单表'[销售额]<160,"120-160",
IF('订单表'[销售额]<200,"160-200","≥200")))))

结果如下图所示:

此外,IF函数有一个特性,那就是当第二参数与第三参数同时存在逻辑值与空值时,会把空值强制转换成逻辑值FALSE。下面用一个例子来说明这一点,用到的计算列表达式如下:

2-销售额是否大于100 = IF('订单表'[销售额]>100,"是",BLANK())

3-销售额是否大于100 = IF('订单表'[销售额]>100,TRUE(),BLANK())

结果如下图所示:


SWITCH函数

语法:

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

作用:对给定的第一参数的表达式的值,依次判断是否与<value>参数相等,然后返回第一个相等的<value>所对应的<result>,若与所有的<value>都不相等,那么就返回<else>参数,<else>参数可省略,默认为空。

下面通过一个例子来学习,用到的计算列表达式如下:

产品是否属于智能设备 = 
SWITCH(
    '产品表'[产品名称],
    "智能手表","智能手表属于智能设备",
    "智能手环","智能手环属于智能设备",
    "VR眼睛","VR眼睛属于智能设备",
    "否"
)

单位利润是否大于50 = 
SWITCH(
    '产品表'[单位利润]>50,
    TRUE(),"是",
    FALSE(),"否"
)

结果如下:

此外,SWITCH的各个value参数都是表达式,第一参数的表达式的值是与value参数的表达式的值进行判断的,因此,SWITCH的用法比较灵活。下面来看一个SWITCH函数的非常规用法的例子,用到的计算列表达式如下:

利润区间 = 
SWITCH(
    TRUE(),
	'产品表'[单位利润]<10 , "0-10",
	'产品表'[单位利润]<20 , "10-20",
	'产品表'[单位利润]<30 , "20-30",
	'产品表'[单位利润]<40 , "30-40",
	'产品表'[单位利润]<50 , "40-50",
	"≥50"
)

结果如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

PowerBI | 夕枫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值