PowerBi中SWITCH怎么使用?

194 阅读1分钟

💡SWITCH() 是 DAX 中的“多条件判断函数”,类似于 Excel 或编程语言里的 switch-caseif-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...)