💡SWITCH() 是 DAX 中的“多条件判断函数”,类似于 Excel 或编程语言里的 switch-case 或 if-else if,用来处理多种情况的判断和返回值,写起来比很多 IF() 嵌套清晰很多!
✅ 基本语法:
SWITCH(<表达式>, <值1>, <结果1>, <值2>, <结果2>, ..., [<else结果>])
或者更通用的写法(表达式为 TRUE()):
SWITCH(TRUE(), 条件1, 结果1, 条件2, 结果2, ..., 默认结果)
🔍 示例一:按销售额等级分类
销售等级 =
SWITCH(
TRUE(),
Sales[Amount] > 10000, "高",
Sales[Amount] > 5000, "中",
Sales[Amount] > 0, "低",
"无销售"
)
👉 这段的意思是:
- 金额 > 10000:返回 "高"
- 金额 > 5000:返回 "中"
- 金额 > 0:返回 "低"
- 否则返回 "无销售"
🎯 示例二:根据产品类别显示不同文本
类别备注 =
SWITCH(
Product[Category],
"电子产品", "此类产品高利润",
"食品", "注意保质期",
"服装", "换季促销",
"其他"
)
👉 按 Product[Category] 的值匹配对应的输出文本。
✅ SWITCH() vs IF()
| 用途 | 推荐函数 | 原因 |
|---|---|---|
| 简单判断(是/否) | IF() | 可读性好 |
| 多种条件判断 | SWITCH() | 结构更清晰,不易嵌套混乱 |
🔥 常见应用场景:
| 场景 | 用法说明 |
|---|---|
| 评分分类 | 按数值区间返回“优秀”“良好”等文字 |
| 动态颜色字段 | 返回 "Red"/"Green" 用于条件格式设置 |
| 多分类图表分组 | 按不同值分组显示 |
| 自定义标签或描述 | 产品、客户、城市等维度的文本说明 |
🧠 小技巧:
- 想判断条件时,一般建议写成
SWITCH(TRUE(), 条件1, 结果1, ...) - 想判断“某列值等于某个值”,就直接写
SWITCH(列名, 值1, 返回1, 值2, 返回2...)