跳转至

SWITCH 函数

1. 函数概述

SWITCH 是 Excel 用来做“多分支条件判断”的函数。它会先计算一个表达式(expression),然后依次与多个候选值进行匹配:

  • 如果匹配成功:返回对应的结果值
  • 如果都不匹配:返回默认值(如果你提供了默认值);否则返回 #N/A

当你原本需要写很多层 IF(嵌套 IF)时,SWITCH 往往更清晰、更易维护,尤其适合“某个值等于 A/B/C… 时分别返回不同结果”的场景。


2. 基础语法

SWITCH(expression, value1, result1, [value2, result2], …, [default])

说明:valueresult 必须成对出现;最后可选的 default 用于兜底返回。


3. 参数说明

参数 是否必填 含义 备注
expression 要被判断/匹配的表达式或单元格值 先计算一次,然后与后面的 value 逐个比较
value1 第 1 个候选匹配值 expression 做相等比较
result1 第 1 个匹配成功时返回的结果 value1 一一对应
value2, result2 … 更多候选值与对应返回结果 按顺序匹配,命中即停止
default 所有候选值都不匹配时返回的默认结果 不写则不匹配返回 #N/A

匹配规则要点:

  • SWITCH 是“相等匹配”思路:比较 expression = valueN 是否成立
  • value1 开始按顺序匹配,先匹配到的先返回
  • default 建议在业务表格中尽量提供,避免出现 #N/A

4. 基础用法示范

4.1 文本枚举映射

需求:A2 是状态码,返回中文说明。

A 列(状态码) B 列(状态说明)
New 新建
Doing 进行中
Done 已完成

在 B2 输入:

=SWITCH(A2,"New","新建","Doing","进行中","Done","已完成","未知状态")
  • A2 为 New → 返回 新建
  • A2 为其他未列出的值 → 返回 未知状态

4.2 数值分段:等级映射(固定几档)

需求:A2 是评分(1~5),映射为等级文案。

=SWITCH(A2,1,"很差",2,"较差",3,"一般",4,"不错",5,"优秀","无效评分")

这种“离散值映射”是 SWITCH 最典型的用法,比多层 IF 更直观。


4.3 结合表达式:先计算再匹配

需求:A2 为实际得分(可能带小数),希望按四舍五入后的整数档位输出。

=SWITCH(ROUND(A2,0),1,"一档",2,"二档",3,"三档",4,"四档",5,"五档","不在范围")

这里的 expression 使用 ROUND(A2,0),表示先把 A2 四舍五入成整数再匹配。


4.4 处理多个字段组合:用拼接构造“匹配键”

需求:根据“城市 + 会员类型”决定折扣策略。

  • 城市在 A2,会员类型在 B2
  • 不同组合返回不同折扣
1
2
3
4
5
6
=SWITCH(A2&"|"&B2,
"上海|VIP",0.85,
"上海|普通",0.95,
"北京|VIP",0.88,
"北京|普通",0.96,
1)
  • 这里通过 A2&"|"&B2 生成一个组合键(例如 上海|VIP
  • default 返回 1,表示无折扣

4.5 不写默认值的效果:不匹配返回 #N/A

=SWITCH(A2,"A",100,"B",200)

当 A2 既不是 A 也不是 B 时,会返回 #N/A。 如果这是业务表格,通常更建议加上默认值:

=SWITCH(A2,"A",100,"B",200,0)

5. 总结

  • SWITCH 适合处理“一个值对应多个可能结果”的场景,本质是“相等匹配 + 多分支返回”。
  • 相比嵌套 IFSWITCH 的结构更扁平、可读性更强,后期维护(新增分支)更方便。
  • 使用时牢记三点:

    1. valueresult 必须成对
    2. 按顺序匹配,命中即返回
    3. 推荐提供 default,让公式输出更稳定、更可控