Excel SWITCH+TRUE+AND/OR:多条件判断,比 IF 嵌套更简单!
你是不是被 IF 嵌套搞到头晕?算绩效等级写IF(A2>90,"优秀",IF(A2>80,"良好",...)),嵌套 5 层就乱;多条件判断 “工龄≥5 年且业绩≥10 万”,公式写得比数据还长?
今天要安利的 “SWITCH+TRUE+AND/OR” 组合,堪称 Excel 的 “多条件判断神器”——TRUE 激活条件匹配,AND/OR 组合多条件,SWITCH 按顺序返回结果,不用嵌套,条理超清晰,比 IF 快 10 倍!
先看效果:从 “IF 嵌套” 到 “条理化判断”
没组合使用时,多条件判断像 “绕迷宫”,写错一个括号就全错:
需求 | 手动操作(麻烦到崩溃) |
按 “工龄 + 业绩” 评员工等级 | 1. 写 IF 嵌套:IF(AND(A2≥5,B2≥10),"S级",IF(AND(A2≥3,B2≥8),"A级",...));2. 嵌套 4 层,括号配对到眼瞎 |
按 “分数范围” 定考试评级 | 1. 用 IF 逐段判断:IF(B2≥90,"优秀",IF(B2≥80,"良好",IF(B2≥60,"及格","不及格")));2. 改等级标准,得逐句改公式 |
用 SWITCH+TRUE+AND/OR 后,公式一输,逻辑超清晰:
需求 | 公式 | 结果(精准判断) |
工龄 + 业绩评等级 | =SWITCH (TRUE,AND (A2≥5,B2≥10),"S 级",AND (A2≥3,B2≥8),"A 级","B 级") | S 级 / A 级 / B 级 |
分数定考试评级 | =SWITCH (TRUE,B2≥90,"优秀",B2≥80,"良好",B2≥60,"及格",TRUE,"不及格") | 优秀 / 良好 / 及格 / 不及格 |
关键优势:条件按顺序排列,像 “列清单” 一样清晰;改条件不用动嵌套结构,直接增删行,再也不用数括号!
先搞懂基础:为什么要 “SWITCH+TRUE+AND/OR”?
三个函数分工配合,完美解决 “多条件判断” 难题:
- TRUE:让 SWITCH 从 “匹配固定值” 变成 “匹配条件是否成立”(如判断 “B2≥90” 是否为 TRUE),相当于 “条件激活器”;
- AND/OR:AND 判断 “多个条件同时成立”(如工龄≥5 且业绩≥10),OR 判断 “多个条件任一成立”(如工龄≥5 或业绩≥10),相当于 “多条件组合器”;
- SWITCH:按顺序检查条件,第一个成立的条件对应结果,最后可加 “默认结果”(所有条件不成立时返回),相当于 “结果分配器”。
核心逻辑:
=SWITCH(TRUE, 条件1, 结果1, 条件2, 结果2, ..., 默认结果)
→ 先激活条件匹配,再按顺序判断条件,成立就返回对应结果,一步实现 “多条件 + 无嵌套” 判断!
3 个实战场景,覆盖工作 90% 需求
场景 1:员工绩效评级 —— 按 “工龄 + 业绩” 多条件判断
HR 要按 “工龄≥5 年且业绩≥10 万→S 级;工龄≥3 年且业绩≥8 万→A 级;其他→B 级” 评绩效,用 SWITCH+TRUE+AND:
数据源(A-B 列,工龄、业绩):
工龄(年,A 列) | 业绩(万元,B 列) |
6 | 12.5 |
4 | 7.8 |
3 | 8.2 |
2 | 9.5 |
公式:=SWITCH(TRUE,AND(A2>=5,B2>=10),"S级",AND(A2>=3,B2>=8),"A级",TRUE,"B级")
- 条件 1:AND (A2>=5,B2>=10)→工龄≥5 且业绩≥10→成立返回 “S 级”;
- 条件 2:AND (A2>=3,B2>=8)→工龄≥3 且业绩≥8→成立返回 “A 级”;
- 默认结果:TRUE→所有条件不成立时返回 “B 级”。
工龄(A 列) | 业绩(B 列) | 公式 | 绩效等级(C 列) |
6 | 12.5 | =SWITCH (TRUE,AND (A2>=5,B2>=10),"S 级",AND (A2>=3,B2>=8),"A 级",TRUE,"B 级") | S 级 |
4 | 7.8 | 同上 | B 级(业绩不足 8 万) |
3 | 8.2 | 同上 | A 级 |
2 | 9.5 | 同上 | B 级(工龄不足 3 年) |
亮点:条件像 “清单” 一样列出来,想加 “工龄≥8 年且业绩≥15 万→SS 级”,只需在条件 1 前加AND(A2>=8,B2>=15),"SS级",,不用改后续结构,超灵活!
场景 2:考试成绩评级 —— 按 “分数范围” 分段判断
老师要按 “分数≥90→优秀;80≤分数 < 90→良好;60≤分数 < 80→及格;分数 < 60→不及格” 定评级,用 SWITCH+TRUE:
数据源(A-B 列,姓名、分数):
姓名(A 列) | 分数(B 列) |
张三 | 92 |
李四 | 85 |
王五 | 58 |
赵六 | 76 |
公式:=SWITCH(TRUE,B2>=90,"优秀",B2>=80,"良好",B2>=60,"及格",TRUE,"不及格")
- 按 “从高到低” 顺序判断:先看是否≥90,再看≥80(自动排除≥90 的情况),依次类推;
- 不用写 “80<=B2<90”,因为前面条件已过滤高分数,逻辑更简洁。
姓名(A 列) | 分数(B 列) | 公式 | 成绩评级(C 列) |
张三 | 92 | =SWITCH (TRUE,B2>=90,"优秀",B2>=80,"良好",B2>=60,"及格",TRUE,"不及格") | 优秀 |
李四 | 85 | 同上 | 良好 |
王五 | 58 | 同上 | 不及格 |
赵六 | 76 | 同上 | 及格 |
实用价值:改评级标准(如≥85→优秀),只需把 “B2>=90” 改成 “B2>=85”,不用动后续条件,比 IF 嵌套改起来快 5 倍!
场景 3:订单发货判断 —— 按 “库存 + 付款状态” 多条件组合
电商要按 “库存≥订单量且已付款→优先发货;库存≥订单量且未付款→待付款;库存 < 订单量→缺货” 判断发货状态,用 SWITCH+TRUE+AND/OR:
数据源(A-C 列,订单号、库存、付款状态):
订单号(A 列) | 库存(B 列) | 付款状态(C 列) |
001 | 50 | 已付款 |
002 | 30 | 未付款 |
003 | 15 | 已付款 |
004 | 20 | 已付款 |
公式:=SWITCH(TRUE,AND(B2>=C2,C2="已付款"),"优先发货",AND(B2>=C2,C2="未付款"),"待付款",TRUE,"缺货")
- 条件 1:AND (B2>=C2,C2="已付款")→库存够且已付款→优先发货;
- 条件 2:AND (B2>=C2,C2="未付款")→库存够但未付款→待付款;
- 默认结果:库存不够→缺货。
订单号(A 列) | 库存(B 列) | 付款状态(C 列) | 公式 | 发货状态(D 列) |
001 | 50 | 已付款 | =SWITCH (TRUE,AND (B2>=C2,C2="已付款"),"优先发货",AND (B2>=C2,C2="未付款"),"待付款",TRUE,"缺货") | 优先发货 |
002 | 30 | 未付款 | 同上 | 待付款 |
003 | 15 | 已付款 | 同上 | 缺货(库存不足) |
004 | 20 | 已付款 | 同上 | 优先发货 |
管理优势:多条件逻辑清晰,运营看公式就知道判断规则,不用反复问 “为什么这个订单没发货”,沟通效率翻番!
避坑指南:这 3 个错误新手必犯
- 条件顺序写反,导致判断出错
成绩评级写成SWITCH(TRUE,B2>=60,"及格",B2>=80,"良好",...)(先判断≥60,再判断≥80),会导致 85 分也被标 “及格”。记住:按 “从严格到宽松”“从高到低” 排序条件,先判断范围小的(如≥90),再判断范围大的(如≥80)。 - 漏加默认结果,条件不成立返回 #N/A
只写SWITCH(TRUE,条件1,结果1,条件2,结果2),没加最后 “TRUE, 默认结果”,当所有条件不成立时,会返回错误值 #N/A。一定要加默认结果(如 TRUE,"其他"),覆盖所有情况。 - AND/OR 的条件写反,逻辑不成立
想判断 “工龄≥5 且业绩≥10”,写成OR(A2>=5,B2>=10)(用 OR 代替 AND),会导致 “工龄 5 年但业绩 8 万” 也被标 “S 级”。记住:多个条件必须同时满足用 AND,任一满足用 OR,别混淆逻辑关系。
最后送 3 个万能公式模板
直接套用,效率拉满:
- 多条件等级判断(如工龄 + 业绩):=SWITCH(TRUE,AND(条件1列>=条件1,条件2列>=条件2),"结果1",AND(条件1列>=条件3,条件2列>=条件4),"结果2",TRUE,"默认结果")(如 = SWITCH (TRUE,AND (A2>=5,B2>=10),"S 级",AND (A2>=3,B2>=8),"A 级",TRUE,"B 级"))
- 分数范围评级:=SWITCH(TRUE,分数列>=90,"优秀",分数列>=80,"良好",分数列>=60,"及格",TRUE,"不及格")
- 库存 + 状态判断:=SWITCH(TRUE,AND(库存列>=订单量列,状态列="已付款"),"优先发货",AND(库存列>=订单量列,状态列="未付款"),"待付款",TRUE,"缺货")
现在打开你的 Excel,找一组需要多条件判断的数据试试这个组合,是不是瞬间觉得 “公式逻辑变清晰了”?不用再跟 IF 嵌套的括号较劲,条件像列清单一样简单,改规则、加条件都超方便,工作效率直接翻倍!
觉得有用的话,点赞收藏,转发给总在写 IF 嵌套的同事!你平时还遇到过哪些复杂的多条件判断难题?评论区告诉我,教你用这组函数解决!