在Power BI数据分析中,IF和SWITCH是处理条件逻辑的核心函数。两者虽然功能相似,但在语法结构、性能表现和适用场景上存在显著差异。本文将从典型业务场景出发,深入介绍IF和SWITCH函数。
一、IF
1、语法:
IF(
<逻辑条件>,
<条件为真时的返回值>,
[<条件为假时的返回值>] -- 可选参数
)
2、适用场景:
1、二值判断
销售状态=
IF(
[销售额]>= 10000,
"达标”
"未达标”
2、条件列创建
是否高利润产品=
IF(
RELATED(’产品表’[利润率])>0.3,
"是”,
"否"
)
3、错误处理
安全除法=
IF(
[分母]=0,
0
[分子]/[分母]
)
二、SWITCH
1、语法
SWITCH (
<表达式>,
<值1>,<结果1>,
<结果2>,<值2>,
…,
[<默认结果>] --可选参数
)
2、适用场景
1、多条件精确匹配
地区经理 =
SWITCH(
SELECTEDVALUE('地区表’[大区])
"华北”,"张三”,
"华东”,"李四”
"华南”,"王五”,
"未分配”
)
2、动态指标切换
动态KPI=
SWITCH(
SELECTEDVALUE(’参数表’[指标类型])
"销售额”,[总销售额],
"利润”,[总利润],
"订单量”,[总订单数]
BLANK ()
)
3、表达式匹配(结合 TRUE())
促销评级=
SWITCH(
TRUE (),
[促销销售额占比]>0.3,"A级”
[促销销售额占比]>0.2,"B级”
[促销销售额占比]>0.1,"C级”
"D级”
)
三、IF VS SWITCH
建议:
1、简单二选一 → IF
2、3个以上条件 → SWITCH
3、精确值匹配 → SWITCH
四、高级应用
1、动态时间范围分组
场景:自动化时间智能分组,结合动态日期范围智能分类
2、 动态格式字符串
场景:统一度量值根据数据类型自动切换数字格式,解决多指标混合展示的格式混乱问题
3、安全行级权限控制
场景:基于用户身份动态控制数据可见性,实现字段级安全控制
4、变量缓存
场景:通过VAR避免重复计算关键参数