liting李

2021-02-05   阅读量: 1133

Power BI

如何使用SWITCH代替IF进行多条件判断

扫码加入数据分析学习群

我们需要通过第一列“日期”计算出第三列“中文季度”。

使用FORMAT函数,我们可以快速计算出1、2、3、4这样的季度格式(第二列):

季度=FORMAT('示例'[日期],"Q")

通常我们中国用户希望用第几季度这样的形式展现,所以我们还需要进行一下转换。先看看IF的公式:

=IF('示例'[季度]="1","第一季度",

IF('示例'[季度]="2","第二季度",

IF('示例'[季度]="3","第三季度",

IF('示例'[季度]="4","第四季度",

BLANK()

)

)

)

)


多层的IF嵌套判断,是不是有点晕?这还只是4个IF判断,如果是进行星期或月份的判断则IF写起来会更容易让人犯晕,甚至出错。

看看SWITCH的写法:

=SWITCH('示例'[季度],

"1","第一季度",

"2","第二季度",

"3","第三季度",

"4","第四季度",


当我们需要使用IF进行多重判断的时候,用SWITCH代替IF能让我们更快速、清楚的书写公式,不必重复书写判断条件。 接下来我们再看SWITCH的另外一种常见用法。SWITCH加TRUE(布尔表达式)。

PowerBIDAXSwitch函数(转载)

我们想对员工的入职年限进行分类。IF的公式如下:

=IF('入职'[入职年限]<1," 1年以内",

IF('入职'[入职年限]<3," 1-3年",

IF('入职'[入职年限]<5," 3-5年",

IF('入职'[入职年限]<10," 5-10年",

"10年以上")

)

)

)

对于这种基于某个区间的判断,我们可以使用SWITCH加TRUE来实现:

=SWITCH(TRUE(),

'入职'[入职年限]<1," 1年以内",

'入职'[入职年限]<3," 1-3年",

'入职'[入职年限]<5," 3-5年",

'入职'[入职年限]<10," 5-10年",

"10年以上")

是不是超级简单?

相比较传统的IF函数,SWITCH更容易书写和阅读。同时由于不需要嵌套多重IF判断,出错概率也更小。

最初SWITCH只是PowerPivot中才有的DAX函数,在EXCEL函数里是没有的。但由于SWITCH的方便简单,在最新的Office 365中,SWITCH已经作为新增函数添加到Excel中了,使用最新版Office 365的小伙伴也可以在Excel 中使用SWITCH函数,用法和PowerPivot里是一样的。


添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
57.1429 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子