在日常办公和职场数据处理中,判断“满不满足条件”是最常见的需求。比如:业绩是否达标、考勤是否异常、库存是否需要补货、客户是否满足回款标准。刚开始接触 Excel 的同学,通常只会用单个 IF 函数做简单判断;但一旦条件变成“同时满足两个条件”或“满足其中一个条件”,公式就不知道该怎么写了。
这篇文章专门围绕 IF 函数、AND 函数、OR 函数展开,讲清楚多条件判断的两种核心逻辑:
- 同时满足两个条件:用 IF 嵌套 AND 函数。
- 满足其中一个条件:用 IF 嵌套 OR 函数。
我会从最基础的函数语法讲起,再结合职场中的实际案例,一步一步拆解公式写法,最后整理常见报错和最佳实践。即使你之前完全没有用过 IF 函数,跟着这篇文章也能把多条件判断写明白。
1. 为什么需要 IF、AND、OR 多条件判断
1.1 职场中的多条件判断场景
先看几个真实工作场景:
- 场景一:销售部规定,只有当月销售额大于等于 10 万,且回款率大于等于 80%,才能拿满额提成。这里有两个条件,并且是“同时满足”,属于 AND 逻辑。
- 场景二:行政部规定,员工当月累计迟到 3 次,或累计请假超过 2 天,就需要在月度例会上说明原因。这里满足任意一个条件就触发,属于 OR 逻辑。
- 场景三:人事部做绩效评级时,除了考核得分,还要参考考勤和项目完成情况,不同条件组合得到不同等级。
如果只用单个 IF 函数,只能处理“一个条件是或否”的情况,例如“销售额是否大于 10 万”。一旦条件增加到两个以上,单个 IF 就会显得力不从心。
1.2 三个函数的定位与关系
- IF 函数:负责“判断并返回不同结果”,是整体公式的外层框架。
- AND 函数:负责判断“多个条件是否全部成立”,返回 TRUE 或 FALSE。
- OR 函数:负责判断“多个条件中是否有任意一个成立”,返回 TRUE 或 FALSE。
一个比较容易理解的比喻是:IF 函数就像公司门口的保安,AND 和 OR 则是保安手里的检查清单。
- AND 清单:必须所有项目都打勾,才能放行。
- OR 清单:只要有一个项目打勾,就能放行。
把这三个函数组合起来,就能应对绝大多数职场数据处理需求。
2. 环境准备与 Excel 版本说明
2.1 软件环境
本文示例适用于以下软件环境:
- Microsoft Excel 2016、2019、2021、365
- WPS 表格(个人版或专业版)
- Google Sheets
IF、AND、OR 是 Excel 中最基础的逻辑函数,几乎所有支持公式的表格软件都内置了这几个函数,不需要额外安装插件。
2.2 函数可用性说明
以下三个函数在旧版本 Excel 中同样可用:
| 函数 | 作用 | 最低版本要求 |
|---|---|---|
| IF | 条件判断 | Excel 2003 及更早版本已经支持 |
| AND | 多条件同时成立 | Excel 2003 及更早版本已经支持 |
| OR | 多条件任意成立 | Excel 2003 及更早版本已经支持 |
需要说明的是,Excel 365 和 Excel 2019 中新增了 IFS、IFERROR 等函数,它们能简化某些场景,但本文以通用性最强的 IF + AND + OR 组合为主,确保你在任何版本中都能使用。
2.3 中英文函数名与参数分隔符
在中文版 Excel 中,函数名一般显示为 IF、AND、OR;但在某些汉化版本或 WPS 中,也支持输入“如果”“并且”“或者”这类中文函数名。为了兼容性和可读性,建议统一使用英文函数名。
另一个容易踩坑的点是参数分隔符:
- 中文系统 Excel 默认使用逗号
,分隔参数。 - 部分欧洲语言环境的 Excel 使用分号
;分隔参数。
如果你在输入公式时报错,可以检查一下分隔符是否需要换成英文输入法下的分号。
3. IF 函数基础:先掌握单条件判断
3.1 IF 函数语法
IF 函数的语法非常简单:
IF(判断条件, 条件成立时返回的值, 条件不成立时返回的值)参数解释:
| 参数 | 含义 | 是否必填 |
|---|---|---|
| 判断条件 | 一个返回 TRUE 或 FALSE 的逻辑表达式 | 必填 |
| 成立时返回的值 | 条件为 TRUE 时显示的结果 | 必填 |
| 不成立时返回的值 | 条件为 FALSE 时显示的结果 | 可省略,省略时返回 FALSE |
3.2 单条件判断示例
假设表格中有一列销售额数据:
| 员工 | 销售额 |
|---|---|
| 张三 | 120000 |
| 李四 | 80000 |
现在想要判断“销售额是否达标,达标线为 10 万”。
=IF(B2>=100000, "达标", "未达标")在 C2 单元格输入上面的公式,结果如下:
| 员工 | 销售额 | 判断结果 |
|---|---|---|
| 张三 | 120000 | 达标 |
| 李四 | 80000 | 未达标 |
这里有一个细节:条件B2>=100000是一个逻辑表达式,Excel 会先计算它是否成立,然后再交给 IF 函数决定返回哪个结果。
3.3 使用 IF 函数的注意事项
第一,IF 函数返回的可以是文本、数字、公式计算结果,也可以直接返回另一个单元格引用。例如:
=IF(A2>=60, "及格", "不及格")第二,IF 函数可以嵌套使用,最多支持 64 层嵌套(旧版本是 7 层)。虽然嵌套功能强大,但超过 3 层后公式阅读难度会明显增加,后面我会讲如何优化。
第三,判断条件中的文本需要用英文双引号括起来,数字不需要引号。
4. AND 函数与 OR 函数:多条件判断的基础单元
4.1 AND 函数语法
AND 函数的作用是判断多个条件是否同时成立。语法为:
AND(条件1, 条件2, ...)只有所有条件都为 TRUE 时,AND 函数才返回 TRUE;只要有一个条件为 FALSE,AND 函数就返回 FALSE。
简单示例:
=AND(10>5, 3>1)返回结果为 TRUE,因为两个条件都成立。
再看另一个示例:
=AND(10>5, 3<1)返回结果为 FALSE,因为第二个条件不成立。
4.2 OR 函数语法
OR 函数的作用是判断多个条件中是否有任意一个成立。语法为:
OR(条件1, 条件2, ...)只要有一个条件为 TRUE,OR 函数就返回 TRUE;只有所有条件都为 FALSE 时,OR 函数才返回 FALSE。
简单示例:
=OR(10>5, 3<1)返回结果为 TRUE,因为第一个条件成立。
再看一个所有条件都不成立的示例:
=OR(10<5, 3<1)返回结果为 FALSE。
4.3 为什么 AND 和 OR 常常配合 IF 一起使用
AND 和 OR 单独返回值时,只会输出 TRUE 或 FALSE。但在实际工作中,我们希望看到的是“达标”“预警”“合格”等业务提示,而不是干巴巴的 TRUE 和 FALSE。
于是标准写法变成:
IF(AND(条件1, 条件2), 结果1, 结果2)或:
IF(OR(条件1, 条件2), 结果1, 结果2)这样既完成了多条件判断,又给出了业务人员能直接读懂的结果。
5. IF 嵌套 AND 函数:同时满足两个条件
5.1 公式结构拆解
先看整体结构:
IF(AND(条件1, 条件2), 符合条件时的结果, 不符合条件时的结果)最容易理解的方式是“由内向外”看公式:
- 先看 AND 部分:
AND(条件1, 条件2)判断两个条件是否同时成立。 - AND 返回 TRUE 或 FALSE。
- IF 再根据 TRUE 或 FALSE,返回对应的结果。
如果条件 A 和条件 B 同时成立,就返回结果一;否则返回结果二。
5.2 实例:销售额与回款率双达标
现在举一个销售场景。业务规则如下:
- 销售额大于等于 100000;
- 回款率大于等于 80%;
- 两个条件同时满足,标记为“双达标”,否则标记为“需跟进”。
数据表如下:
| 员工 | 销售额 | 回款率 | 判定结果 |
|---|---|---|---|
| 张三 | 120000 | 0.85 | ? |
| 李四 | 90000 | 0.90 | ? |
| 王五 | 150000 | 0.70 | ? |
在 D2 单元格输入公式:
=IF(AND(B2>=100000, C2>=0.8), "双达标", "需跟进")计算逻辑如下:
- 张三:销售额 120000 >= 100000,回款率 0.85 >= 0.8,AND 返回 TRUE,结果为“双达标”。
- 李四:销售额 90000 < 100000,AND 返回 FALSE,结果为“需跟进”。
- 王五:销售额 150000 >= 100000,但回款率 0.70 < 0.8,AND 返回 FALSE,结果为“需跟进”。
最终结果:
| 员工 | 销售额 | 回款率 | 判定结果 |
|---|---|---|---|
| 张三 | 120000 | 0.85 | 双达标 |
| 李四 | 90000 | 0.90 | 需跟进 |
| 王五 | 150000 | 0.70 | 需跟进 |
这个案例体现了 AND 的“一票否决”特性:即使销售额很高,只要回款率不达标,整体结果仍然是不达标。
5.3 扩展到三个及以上条件
AND 函数支持多个条件同时判断。例如要求同时满足销售额 >= 100000、回款率 >= 0.8、客户满意度 >= 0.9,写法如下:
=IF(AND(B2>=100000, C2>=0.8, D2>=0.9), "优秀", "待改进")参数依次用逗号隔开即可,逻辑仍然是“所有条件全部成立才返回 TRUE”。
6. IF 嵌套 OR 函数:满足其中一个条件
6.1 公式结构拆解
整体结构如下:
IF(OR(条件1, 条件2), 符合条件时的结果, 不符合条件时的结果)OR 部分只要有一个条件为 TRUE,OR 就返回 TRUE,IF 就返回第一个结果;只有所有条件都不成立时,才返回第二个结果。
以“预警”类场景为例:
- 当月迟到次数大于 3;
- 当月请假天数大于 2;
- 满足任一条件,标记为“需说明原因”;
- 两个条件都不满足,标记为“正常”。
数据表如下:
| 员工 | 迟到次数 | 请假天数 | 判断结果 |
|---|---|---|---|
| 张三 | 5 | 1 | ? |
| 李四 | 2 | 3 | ? |
| 王五 | 1 | 1 | ? |
在 D2 单元格输入公式:
=IF(OR(B2>3, C2>2), "需说明原因", "正常")计算结果:
- 张三:迟到次数 5 > 3,OR 返回 TRUE,结果为“需说明原因”。
- 李四:迟到次数 2 不大于 3,但请假天数 3 > 2,OR 返回 TRUE,结果为“需说明原因”。
- 王五:两个条件都不满足,OR 返回 FALSE,结果为“正常”。
最终结果:
| 员工 | 迟到次数 | 请假天数 | 判断结果 |
|---|---|---|---|
| 张三 | 5 | 1 | 需说明原因 |
| 李四 | 2 | 3 | 需说明原因 |
| 王五 | 1 | 1 | 正常 |
这个案例体现了 OR 的“宽进”特性:只要有一个条件成立,结果就被触发。
6.2 三个及以上条件的 OR 写法
OR 函数同样支持多个条件,例如满足以下任一条件就标记为“重点客户”:
- 累计消费金额 >= 50000;
- 最近 30 天有下单;
- 会员等级为“金牌”。
=IF(OR(B2>=50000, C2="是", D2="金牌"), "重点客户", "普通客户")三个条件用逗号分隔,任意一个为 TRUE,OR 就返回 TRUE。
7. 综合实战:IF 嵌套 AND、OR 的职场应用
只看单个案例可能还不够,下面安排几个更贴近实际工作的完整案例,把 IF、AND、OR 组合起来用。
7.1 场景一:销售提成比例计算
业务规则:
- 销售额 >= 100000 且回款率 >= 80%,提成比例为 8%;
- 销售额 >= 100000 但回款率 < 80%,提成比例为 5%;
- 销售额 < 100000,提成比例为 3%。
这个规则里,条件有优先级关系,可以先用 IF 一层层判断。
数据表:
| 员工 | 销售额 | 回款率 | 提成比例 |
|---|---|---|---|
| 张三 | 120000 | 0.85 | ? |
| 李四 | 120000 | 0.70 | ? |
| 王五 | 80000 | 0.90 | ? |
先判断销售额是否达标,再判断回款率,公式如下:
=IF(AND(B2>=100000, C2>=0.8), 0.08, IF(AND(B2>=100000, C2<0.8), 0.05, 0.03))这里用到了 IF 的嵌套结构:外层 IF 判断“高销售额 + 高回款率”的情况,如果不是,再判断“高销售额 + 低回款率”的情况,最后的 0.03 是前面所有条件都不满足时的兜底结果。
计算结果:
- 张三:销售额 120000,回款率 0.85,满足第一个条件,提成比例 8%。
- 李四:销售额 120000,回款率 0.70,不满足第一个条件,但满足第二个条件,提成比例 5%。
- 王五:销售额 80000,不满足销售额条件,进入兜底,提成比例 3%。
实际工作中,提成比例计算后通常还要乘以销售额,可以写成:
=B2 * IF(AND(B2>=100000, C2>=0.8), 0.08, IF(AND(B2>=100000, C2<0.8), 0.05, 0.03))7.2 场景二:绩效考核评级
业务规则:
- 考核得分 >= 90,评级为“A”;
- 考核得分 >= 80 且 < 90,评级为“B”;
- 考核得分 >= 60 且 < 80,评级为“C”;
- 考核得分 < 60,评级为“D”。
这个场景里,“得分 >= 80 且 < 90”就是一个典型的 AND 逻辑。
在 Excel 中,可以按从高到低的顺序写:
=IF(B2>=90, "A", IF(AND(B2>=80, B2<90), "B", IF(AND(B2>=60, B2<80), "C", "D")))也可以简化写法——因为前面的 IF 已经筛选掉了 >=90 的情况,所以第二个条件直接写B2>=80即可:
=IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=60, "C", "D")))两种写法结果一样,第一种更容易让新人理解条件边界,第二种更简洁。实际工作中,如果评分规则经常调整,建议用带 AND 的写法,逻辑更明确。
7.3 场景三:库存预警提示
业务规则:
- 库存余量 < 50,或保质期剩余天数 < 30,标记为“需补货或处理”;
- 否则标记为“正常”。
这个场景适合使用 IF 嵌套 OR。
数据表:
| 商品 | 库存余量 | 保质期剩余天数 | 预警结果 |
|---|---|---|---|
| 商品A | 20 | 60 | ? |
| 商品B | 100 | 20 | ? |
| 商品C | 200 | 90 | ? |
在 D2 单元格输入:
=IF(OR(B2<50, C2<30), "需补货或处理", "正常")结果:
- 商品A:库存余量 20 < 50,满足第一个条件,预警。
- 商品B:库存余量 100 不满足,但保质期剩余 20 < 30,满足第二个条件,预警。
- 商品C:两个条件都不满足,正常。
7.4 场景四:IF + AND + OR 三者联合嵌套
最后一个案例,把三个函数全部用上。
业务规则:
- 如果(销售额 >= 100000 且回款率 >= 80%),或者该客户为“VIP”,则标记为“优质客户”;
- 否则标记为“普通客户”。
公式如下:
=IF(OR(AND(B2>=100000, C2>=0.8), D2="VIP"), "优质客户", "普通客户")执行顺序是:
- 先执行 AND(B2>=100000, C2>=0.8);
- 再执行 OR(AND的结果, D2="VIP");
- 最后 IF 根据 OR 的结果输出。
这就是典型的“同时满足”与“满足其一”混合使用。理解这个执行顺序后,无论规则多复杂,都能拆成“条件 + 条件”的组合。
8. 常见错误与排查思路
多条件判断写多了,难免会遇到报错。下面整理几个高频问题。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 公式提示“您为此函数输入的参数过多” | 括号位置错误,AND 或 OR 的括号没有正确闭合 | 检查括号配对,从最内层开始数 |
| 公式返回 #NAME? | 函数名拼写错误,或文本没有加英文双引号 | 检查单词拼写,检查文本引号 |
| 公式返回 #VALUE! | 比较的单元格内容不是数字 | 确认单元格为数值格式,删除多余文本 |
| 条件判断结果与预期相反 | 逻辑方向写反,例如大于写成了小于 | 重新阅读业务规则,确认比较符号 |
| 结果全部返回同一个值 | 条件中使用了错误的单元格区域,或多条件之间没有正确组合 | 用公式求值工具逐步检查 |
| 公式下拉后引用错位 | 相对引用和绝对引用使用不当 | 根据需求添加美元符号 $ 锁定行或列 |
8.1 括号配对错误
嵌套函数最容易出现括号问题。比如:
=IF(AND(B2>=100000, C2>=0.8, "双达标", "需跟进")这段公式缺少 AND 的右括号,正确的写法是:
=IF(AND(B2>=100000, C2>=0.8), "双达标", "需跟进")排查括号时,可以从最内层开始按括号配对标识检查。大多数 Excel 版本在编辑公式时,会用不同颜色显示配对的括号,可以借助这个功能快速定位。
8.2 文本与数字混用
如果单元格里保存的是文本型数字,例如 “100000” 前面带了中文单引号,或者数字区域左上角有绿色小三角,那么>=100000的比较结果可能不符合预期。
处理办法:
- 使用 VALUE 函数转换文本型数字为数值;
- 选中单元格,点击左侧错误提示,选择“转换为数字”;
- 养成输入数据时避免文本型数字的习惯。
8.3 嵌套层级超过限制
旧版 Excel 限制 IF 嵌套 7 层,新版本限制 64 层。虽然在实际业务中很少会写 7 层以上,但一旦超过,建议优先思考是不是公式结构设计不合理。
简化嵌套的方法之一是使用 Excel 2019 及以后版本的 IFS 函数,例如:
=IFS(B2>=90, "A", B2>=80, "B", B2>=60, "C", B2<60, "D")但需要注意,IFS 函数在 Excel 2016 及更早版本中不可用。如果你的公司电脑还是旧版本,不要冒险使用。
8.4 使用公式求值检查问题
Excel 的“公式求值”功能是排查多条件判断问题的重要工具。
操作步骤:
- 选中包含公式的单元格;
- 点击“公式”选项卡;
- 选择“公式求值”;
- 点击“求值”按钮,逐步查看每一步计算结果。
这样可以清晰地看到 AND 和 OR 返回的是 TRUE 还是 FALSE,从而判断是条件写错还是结果返回逻辑写错。
9. 最佳实践与工程建议
9.1 复杂公式先拆分,再组合
不要一上来就写一个很长的嵌套公式。建议先在旁边用辅助列分别计算:
- 辅助列1:销售额是否达标,公式
=IF(B2>=100000, TRUE, FALSE); - 辅助列2:回款率是否达标,公式
=IF(C2>=0.8, TRUE, FALSE); - 最终列:
=IF(AND(D2, E2), "双达标", "需跟进")。
逻辑验证无误后,再把辅助列公式合并成一个公式。这样做的好处是:
- 表格每一步逻辑可读;
- 定位问题更容易;
- 与业务同事确认规则时也更直观。
9.2 条件优先级按从高到低排列
当多个 IF 嵌套时,建议先写“最严格”或“最特殊”的条件,再写一般条件。例如绩效评级时,先判断 >=90,再判断 >=80,避免把低等级条件覆盖高等级条件。
9.3 文本型结果尽量统一
Excel 公式返回的文本结果最好统一,避免“达标”“达标 ”“已达标”这类相似但不完全一致的写法。否则后续用 COUNTIF、VLOOKUP、数据透视表统计时,容易出现漏统计的问题。
建议提前约定结果词:
统一使用:达标 / 未达标 统一使用:正常 / 需跟进 统一使用:A / B / C / D9.4 数据源规范比公式更重要
多条件判断的前提是源数据干净、规范。以下习惯能减少大量公式排错时间:
- 日期统一为日期格式,不要混用文本日期;
- 数字列保持数值格式,不要混入单位;
- 文本列不要前后加多余空格;
- 不要用合并单元格存储明细数据。
9.5 多条件判断的扩展学习方向
掌握 IF + AND + OR 之后,可以继续学习以下内容:
- COUNTIFS、SUMIFS:按多个条件计数和求和;
- IFERROR:配合 IF 公式处理错误值;
- IFS:新版本 Excel 中替代多层 IF 嵌套的函数;
- 数据验证与条件格式:让多条件判断结果自动变色;
- 动态数组公式:Excel 365 中更灵活的计算方式。
如果你经常处理数据分析类工作,建议把 COUNTIFS 和 SUMIFS 一起学习,它们和多条件判断是同一类思维,学会一个就能举一反三。
如果你正在学习 Excel 函数,建议不要只复制文章里的公式,而是打开一张空表,把案例数据录入进去,亲手写一遍公式。遇到报错也不用着急,用“公式求值”功能逐步观察计算过程,很快就能理解 ENTER 背后发生了什么。
熟练掌握了 IF 嵌套 AND 和 OR 之后,绝大多数职场表格里的条件判断需求都能独立解决。遇到更复杂的规则,也只需要坚持“先把条件拆开、再组合”的思路,一步一步完成即可。