今天和大家分享在 PowerPivot 中使用 SWITCH 代替 IF 进行多条件判断。

    我们先来看一个简单的例子:

    使用SWITCH代替IF进行多条件判断 - 图1

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

    使用 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”,”第四季度”,

    BLANK()

    )

    这是 SWITCH 的标准写法:

    SWITCH(expression,
    value1, result1,
    value2, result2,


    else

    )

    当我们需要使用 IF 进行多重判断的时候,用 SWITCH 代替 IF 能让我们更快速、清楚的书写公式,不必重复书写判断条件。


    接下来我们再看 SWITCH 的另外一种常见用法。SWITCH 加 TRUE(布尔表达式)。

    使用SWITCH代替IF进行多条件判断 - 图2

    我们想对员工的入职年限进行分类。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 里是一样的。

    这就是今天分享的内容,更多 PowerPivot 信息欢迎试听学习我们的视频课程–
    Excel Power Pivot 数据建模分析(基础篇)。点击 “阅读原文” 可直达云课堂。

    *PowerPivot 工坊原创文章,欢迎转载,请注明出处 。


    延伸阅读:

    一张图看懂微软 PowerBI 系列组件

    亮瞎双眼的 Power BI 可视化图表

    Power BI 在运营分析中的应用介绍

    当 Power BI 遇上恐怖主义

    当 Power BI 遇上欧洲杯


    如果您想深入学习微软 Power BI,欢迎登录网易云课堂试听学习我们的 “从 Excel 到 Power BI 数据分析可视化”系列课程。点击左下角 “阅读原文” 可直达云课堂。或者关注我们的公众号(PowerPivot 工坊)后猛戳”在线学习”

    使用SWITCH代替IF进行多条件判断 - 图3


    长按下方二维码关注 “PowerPivot 工坊” 获取更多微软 PowerBI、PowerPivot 相关文章、资讯。欢迎小伙伴儿们转发分享~

    使用SWITCH代替IF进行多条件判断 - 图4
    https://mp.weixin.qq.com/s?__biz=MzI4NTEzNzQ2NQ==&mid=2650500629&idx=1&sn=d0d5a43b79c69b07a40b97fe0c3e217c&chksm=f3ff0143c4888855b95b2e644b79df8030fb8c6e4e5fabf90e8b26f9fe0d2f002b0243b5a89b&scene=21#wechat_redirect