ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Excel多条件判断:IF与AND/OR组合嵌套实战教程

Excel多条件判断:IF与AND/OR组合嵌套实战教程 很多人在职场中第一次接触 Excel 函数不是从 VLOOKUP 开始的而是从 IF 开始的。原因很简单业务里到处都是“条件判断”。“业绩达标了就发奖金没达标就不发”“金额超过 5000 走经理审批否则普通审批”“入职满一年并且绩效在 B 以上才有调薪资格”。这些规则用大白话说谁都能听懂但要写成 Excel 公式一部分人就开始犯难了。更常见的情况是很多人学会了 IF 的基本用法一遇到“同时满足两个条件”或“满足其中一个条件”就卡住了。脑子里知道要判断两个东西但不知道公式该怎么写。于是有人写成了IF(A160, B160, 及格, 不及格)Excel 直接报错有人用IF(A160, IF(B160, 及格, 不及格), 不及格)硬套了两层 IF虽然能出结果但条件一多公式就变得又长又乱。这里真正需要补上的不是更多 IF 的嵌套技巧而是 AND 和 OR 两个逻辑函数。本文会从 IF 函数的本质讲起把 AND、OR 单条件场景讲透再进入 IF AND、IF OR 的组合嵌套最后用职场里真实存在的绩效、订单、考勤案例做完整演示。读完你不仅能把公式写对还能知道什么时候该用嵌套 IF什么时候更建议用 AND / OR 来简化逻辑。1. 核心认知IF 函数解决的是“非此即彼”的判断先明确一个判断IF 函数本身只能做“二选一”的判断。不管你要判断的条件有多复杂最终结果只有两种条件成立时返回什么条件不成立时返回什么。IF 函数的语法是这样的IF(判断条件, 条件成立时的返回值, 条件不成立时的返回值)举个例子。销售部门想判断某个客户是否属于“大客户”规则是“订单金额大于 10000 元”。IF(C210000, 大客户, 普通客户)这个公式的逻辑很清楚C2 单元格的金额大于 10000返回“大客户”否则返回“普通客户”。这里的关键认知是IF 函数的第一参数本质上是“一个能计算出 TRUE 或 FALSE 的表达式”。你写的C210000是一个比较运算它计算出的结果要么是 TRUE要么是 FALSE。IF 就是根据这个 TRUE 或 FALSE 决定返回哪个值。想通这一点后面的多条件嵌套就自然了。当你要判断的条件本身很复杂比如“同时满足两个条件”你不能直接把它塞进 IF 的第一参数里。因为C210000 并且 D2已付款这种描述不是 Excel 能直接识别的表达式。你需要在 IF 外面或者在 IF 的第一参数里面借助其他函数把这个“复杂的业务规则”变成一个 TRUE / FALSE 结果。这就是 AND 和 OR 的用武之地。2. AND 与 OR 的作用把多个条件“合并”成一个结果AND 和 OR 本身不是用来返回“是/否”文字的它们的作用是把多个条件组合起来最终输出一个 TRUE 或 FALSE。AND 函数的逻辑是所有条件都成立才返回 TRUE只要有一个不成立就返回 FALSE。AND(条件1, 条件2, 条件3, ...)OR 函数的逻辑是只要有一个条件成立就返回 TRUE全部不成立才返回 FALSE。OR(条件1, 条件2, 条件3, ...)从数学逻辑上看AND 对应“交集”OR 对应“并集”。职场场景里最常见的对应关系是AND所有条件都要满足相当于“同时满足”“并且”。OR满足其中任意一个即可相当于“或者”“任一满足”。用一个例子对比。假设要判断一个员工是否满足“优秀员工”评选条件条件一出勤率大于 95%。条件二绩效等级为“A”。如果用 AND 组合公式是AND(C20.95, D2A)只有两个条件都为 TRUE结果才是 TRUE。如果用 OR 组合公式是OR(C20.95, D2A)只要出勤率高或者绩效是 A结果就是 TRUE。到这里你可能会想这不就是把条件写在 AND / OR 里然后嵌套进 IF 的第一参数吗对Excel 多条件判断的核心套路就是这一句话。3. 同时满足两个条件IF AND 嵌套先看一个职场里非常典型的场景。某公司规定员工入职满一年且绩效考核在 B 级以上才能参与年度调薪。现在有一张员工信息表A 列是工号B 列是入职日期C 列是绩效等级。需要 D 列判断该员工是否有调薪资格。这种“两个条件必须同时满足”的需求对应的就是 AND。3.1 判断员工是否有调薪资格先用 DATEFIF 判断入职年限。如果在 D 列判断假设入职日期在 B2今天日期用 TODAY() 函数获取DATEDIF(B2, TODAY(), Y) 1上面这段公式单独运行结果是 TRUE 或 FALSE。再把绩效等级条件加进去AND(DATEDIF(B2, TODAY(), Y) 1, C2 B)这里要注意绩效等级如果是文本形式比较时要加双引号。如果绩效等级是 A、B、C 这种字母Excel 按文本比较时字母顺序是比较规则的基础但更稳妥的做法是直接写“绩效等级文本等于某个值”。比如绩效等级明确要求“B级以上”而表中等级只有“A”“B”“C”“D”可以这样写AND(DATEDIF(B2, TODAY(), Y) 1, OR(C2A, C2B))这里的 OR 把“A 或 B”合并成一个条件再和“入职满一年”做 AND。这就是 IF AND OR 的最小嵌套模型后面会专门展开。先看标准 IF AND 写法把结果直接显示为“有资格”或“无资格”IF(AND(DATEDIF(B2, TODAY(), Y) 1, C2A), 有资格, 无资格)如果认为绩效 B 也算 B 级以上就把 C2A 改成OR(C2A, C2B)变成IF(AND(DATEDIF(B2, TODAY(), Y) 1, OR(C2A, C2B)), 有资格, 无资格)先不看这个式子有多长只看它的结构外层 IF 负责返回“有资格”或“无资格”。第一参数是 AND组合整体条件。AND 内部有一个 DATEDIF 条件和一个 OR 条件。OR 内部再组合两个绩效等级。这就是一层一层把业务规则翻译成函数的过程。你不需要一次性写出这么长的公式可以先在单独单元格里验证 AND 的结果是不是 TRUE再嵌套进 IF。3.2 如果只看表面很容易会认为 IF 嵌套越多越复杂很多人一看到这种公式就发怵觉得长公式很难懂。其实公式可读性的核心不是长度而是结构。IF(AND(..., ...), 返回值1, 返回值2)这种结构非常固定只要记住“IF 的第一参数里用 AND 表达同时满足”就够了。多个条件同时满足就都写在 AND 里IF(AND(条件1, 条件2, 条件3), 是, 否)需要几个条件就写几个。比如三个条件IF(AND(C2100, D2已付款, E2), 有效订单, 无效订单)第三个条件E2表示 E2 不为空。这样写的好处是逻辑全部集中在 AND 里IF 只是负责按 TRUE / FALSE 返回文字。4. 满足其中一个条件IF OR 嵌套与“同时满足”相反的场景也很常见多个条件里只要满足一个就算达标。这时候该用 OR。4.1 判断是否满足优惠条件假设一个电商场景订单满足以下任一条件就可以享受会员价。条件一会员等级为“金卡”。条件二累计消费金额大于 5000 元。条件三本单金额大于 1000 元。三个条件只要满足其一就返回“会员价”否则返回“标准价”。用 OR 把所有条件包起来再放进 IF 第一参数IF(OR(D2金卡, E25000, F21000), 会员价, 标准价)这里 D2 是会员等级E2 是累计消费F2 是本单金额。 OR 内部三个条件独立判断任何一个为 TRUEOR 返回 TRUEIF 就会返回“会员价”。4.2 用 OR 简化同类判断OR 还有一个非常实用的变体用法当你要判断“某个单元格是否等于多个固定值中的一个”时可以用 OR 替代一层层 IF。举个例子。判断某个部门是否属于“销售体系”规则是部门为“销售一部”“销售二部”“销售三部”时返回“是”否则返回“否”。错误写法是把 IF 一层层套下去IF(A2销售一部, 是, IF(A2销售二部, 是, IF(A2销售三部, 是, 否)))正确且更清晰的做法IF(OR(A2销售一部, A2销售二部, A2销售三部), 是, 否)两种写法计算结果完全一样但 OR 版本短得多后续也更容易维护。如果你从数据验证下拉框里改部门名称只需要改 OR 里的条件即可。这种场景是 OR 最典型的用法多个条件之间是“或”的关系且业务上属于同一类判断。5. 复杂场景IF AND OR 混合嵌套职场里的真实条件常常不只是“同时满足两个条件”或者“满足其中一个条件”这样简单。更常见的是混合逻辑比如“满足 A 且 B或者满足 C”这样的规则。这时候就需要把 AND 和 OR 一起放进 IF 里。先看一个经典场景。某公司设置销售奖金规则方案一销售金额大于 100000并且回款比例大于 80%发放全额奖金。方案二销售金额大于 200000即使回款比例未达到 80%也发放全额奖金。其他情况发放 50% 奖金。翻译成逻辑表达式方案一金额100000 AND 回款80%方案二金额200000整体条件(方案一) OR (方案二)写成 Excel 公式IF(OR(AND(C2100000, D20.8), C2200000), 全额奖金, 50%奖金)这里的结构是外层 IF 是最终判断。第一参数是 OR。OR 的第一个条件是 AND同时满足金额和回款。OR 的第二个条件是单个判断金额大于 200000。这种公式看起来复杂但只要一层层拆开看完全能读懂其实就是“两种达标路线达到任意一种就发全额奖金”。5.1 混合嵌套的拆解方法如果你在写复杂公式时觉得头晕建议不要在单元格里一口气写完。正确做法是先拆条件。假设有四个单元格A2销售金额B2回款比例C2是否新客户是/否D2是否重点客户是/否业务规则销售金额大于 100000同时满足“新客户”或“重点客户”才算有效订单。先写条件 D 部分新客户或重点客户。OR(C2是, D2是)再写整体条件金额大于 100000并且满足上面的 OR。AND(A2100000, OR(C2是, D2是))最后放进 IFIF(AND(A2100000, OR(C2是, D2是)), 有效订单, 无效订单)再复杂一层。假设规则是“金额大于 100000并且满足新客户或重点客户”或者“金额大于 500000 的老客户”。逻辑路线一A2100000 AND (C2是 OR D2是)路线二A2500000 AND C2否整体IF(OR(AND(A2100000, OR(C2是, D2是)), AND(A2500000, C2否)), 有效订单, 无效订单)你会发现复杂公式其实就是从简单子条件一层层组合出来的。写之前先在草稿纸上把条件用括号括起来比在 Excel 里直接写要稳妥得多。6. 职场实战案例与完整公式清单下面给出几个可以直接搬到实际工作中的完整案例。每个案例都会给出表格结构、业务规则和最终公式。6.1 案例一员工绩效评级表格结构A2员工姓名B2销售额C2出勤率D2绩效等级A/B/C/D规则销售额大于 50000且出勤率大于 95%且绩效等级为 A 或 B评级为“优秀”。不满足以上条件评级为“普通”。公式IF(AND(B250000, C20.95, OR(D2A, D2B)), 优秀, 普通)执行逻辑拆解OR(D2A, D2B)绩效等级是否为 A 或 B。AND(..., ..., ...)三个条件同时成立。IF 返回“优秀”或“普通”。6.2 案例二订单折扣计算表格结构A2订单金额B2客户类型VIP/普通C2是否首次合作是/否D2折扣率规则VIP 客户或者首次合作客户并且订单金额大于 2000享受 9 折。其他情况无折扣。注意这里有一个优先级问题业务规则中“并且”只作用于订单金额而“或者”连接客户类型和首次合作。写成公式IF(AND(OR(B2VIP, C2是), A22000), 0.9, 1)这里输出的 0.9 表示打 9 折直接用数字参与后续计算1 表示不打折。如果需要在屏幕上显示“9折”文本可以改为IF(AND(OR(B2VIP, C2是), A22000), 9折, 无折扣)实际工作中建议用数字而不是文本因为折扣率后续还要参与金额计算。如果 D2 里保存的是折扣率可以把公式改成IF(AND(OR(B2VIP, C2是), A22000), 0.9, 1)然后计算折后金额A2*D2这种写法避免把“9折”文本再次转换成数值后续计算更方便。6.3 案例三考勤与补贴发放表格结构A2员工姓名B2当月迟到次数C2当月请假天数D2是否申请补贴是/否规则迟到次数小于等于 2 次且请假天数小于等于 1 天并且申请了补贴发放全额补贴。迟到次数小于等于 2 次但请假超过 1 天发放 50% 补贴。其他情况无补贴。这个案例是一个典型的多层 IF AND 结构因为它有三档结果单靠一个 IF 无法完成。IF(AND(B22, C21, D2是), 全额补贴, IF(AND(B22, C21), 50%补贴, 无补贴))注意这个公式里有两个 IF。外层 IF 先判断最高档条件成立返回“全额补贴”不成立时进入第二个 IF判断第二档条件成立返回“50%补贴”都不成立返回“无补贴”。这是 IF 嵌套处理三档及以上结果的典型结构。同时可以注意到这个公式并没有同时使用 AND 和 OR而是用了两个 AND。如果规则改成“迟到次数小于等于 2 次或者请假天数小于等于 1 天”才进入后续判断那这里就需要 OR。实际场景按业务逻辑来选。6.4 案例四多条件筛选标记表格结构A2产品名称B2库存数量C2在售状态在售/停售规则库存低于 20并且是在售状态标记为“补货提醒”。这里本质上还是两个条件同时满足IF(AND(B220, C2在售), 补货提醒, )如果不需要显示“否”或“”以外的内容可以留空。这里的“”表示返回空文本单元格看起来干干净净。这是职场表格里很常见的小技巧条件不满足时宁可留空也不要返回“不满足”“否”等容易干扰视觉的文字。7. 常见错误为什么你的公式总是返回错误或结果不对7.1 常见错误类型对照表问题现象可能原因排查方式解决方案公式报错“#NAME?”函数名拼写错误或缺少括号检查函数名是否为 IF、AND、OR确认函数名和括号匹配英文括号必须成对公式报错“#VALUE!”文本条件没有加英文双引号查看条件区域是否出现中文引号所有文本条件写成文本比如是、KA数字条件判断结果不对单元格是文本格式无法比较用 TYPE 函数查看单元格类型或看单元格左上角是否有绿三角将文本型数字转换为数值格式或使用 VALUE 函数满足条件却返回“否”比较方向写反比如把写成单步调试 AND / OR 的结果在空白单元格先测试AND(...)返回什么结果返回的是 TRUE / FALSE 而不是“是/否”只写了 AND / OR没有嵌套进 IF检查公式是否缺少最外层 IF用IF(AND(...), 是, 否)包裹嵌套层数过多公式冗长用 IF 一层层做同类判断审视条件之间的逻辑关系用 OR 替代多个 IF 的并联判断或使用 IFS 函数公式返回 0 而不是空白返回空文本时写了 0检查 IF 第三参数需要留空时写不要写 07.2 最常见的三个坑第一个坑文本条件的中英文引号问题。IF(D2是, 合格, 不合格)中文引号“是”会导致公式报错。Excel 公式中所有引号都必须是英文半角引号。如果从网页或微信复制公式到 Excel经常会出现引号被自动换成中文引号的情况。遇到公式突然报错先检查引号。第二个坑直接写多条件没有用 AND / OR 包起来。IF(C210000, D2已付款, 有效, 无效)这个写法是错误的。IF 函数只接受三个参数这里写了四个内容Excel 会提示“此函数输入的参数过多”。正确做法是把两个条件放进 ANDIF(AND(C210000, D2已付款), 有效, 无效)第三个坑条件写反导致“看似正确实际结果错误”。例如“迟到次数小于等于 2 次”有人会写成B22结果变成“迟到次数大于等于 2 次才满足”。这种错误最难排查因为公式不报错但业务结果完全反了。建议写完公式后用一条明显不满足条件的数据测试一下再用一条满足条件的数据测试两条都符合预期公式才基本可靠。8. 最佳实践让逻辑分层避免嵌套地狱8.1 用辅助列拆分长公式很多职场 Excel 表里能看到那种超长公式一个单元格里嵌套了七八个 IF后面同事完全看不懂甚至作者本人过两个月也看不懂。这种“嵌套地狱”的主要成因是把所有逻辑都塞进一个单元格。更推荐的做法是使用辅助列。比如要判断“是否重点客户”规则是累计消费大于 50000或者近一年购买次数大于 10同时客户类型不是“内部员工”。算法很清晰可以直接写成一个公式IF(AND(OR(H250000, I210), J2内部员工), 重点客户, 普通客户)如果觉得还是不直观可以拆成两步。先加一列“是否高价值客户”OR(H250000, I210)再加一列“是否重点客户”IF(AND(K2, J2内部员工), 重点客户, 普通客户)K 列就是辅助列存放的是 OR 的计算结果。两列公式结构一目了然后续排查也只需要检查辅助列是哪一环出了问题。真实业务里我非常建议对复杂的判断逻辑使用辅助列。虽然表面上多占了一列但可读性和可维护性提升非常明显。你甚至可以把辅助列隐藏起来不影响表格美观。8.2 优先用 AND / OR而不是无脑嵌套 IF很多初学者遇到多条件判断第一反应就是套多个 IF。事实上AND / OR 在设计之初就是为了解决“多个条件如何组合”这件事。能用 AND / OR 搞定就不要用多个 IF 硬套。对比两个写法IF(A2A, IF(B2是, 通过, 不通过), 不通过)IF(AND(A2A, B2是), 通过, 不通过)两个公式结果一样但第二个明显更好读。判断逻辑越复杂这种优势越明显。8.3 建议用 IFS / SWITCH 处理多档结果当判断条件不是一个 TRUE / FALSE 问题而是多个档位时比如绩效评级分成“优、良、中、差”可以考虑 IFS 函数。IFS 的语法是IFS(条件1, 返回值1, 条件2, 返回值2, ...)相比多个 IF 嵌套IFS 更扁平读起来更顺。要判断销售额对应评级IFS(B2100000, 优, B250000, 良, B210000, 中, TRUE, 差)最后一个TRUE表示“其他所有情况”相当于 IF 的第三参数。不过要提醒的是IFS 是 Excel 2019 之后版本和 Office 365 才支持的函数。如果是旧版本 Excel或者 WPS 的旧版本IFS 可能不可用。需要根据同事的 Excel 版本情况选择方案。这就是为什么很多老手仍然坚持用 IF AND / OR因为兼容性最好。8.4 条件判断结果建议尽量返回数值职场表格经常要拿结果做后续汇总。比如“是否发放奖金”这一列返回“发放”和“不发放”文本看起来直观但后面如果要做 SUM 求和就傻眼了。更推荐返回 1 和 0IF(AND(C210000, D2已付款), 1, 0)后续数据透视表可以直接对“奖金标记”求和统计多少人达标。如果希望显示直观文字可以再加一个自定义格式或者单独做一列展示文本。总之底层数据用数值展示层用文本是表格设计里更稳妥的思路。9. 从公式到业务多条件判断的思维升级到这里IF、AND、OR 的嵌套用法已经讲得比较完整了。回顾一下IF 负责“根据 TRUE / FALSE 返回结果”。AND 负责“所有条件同时满足”。OR 负责“任一条件满足”。混合条件通过括号组合先内后外逐步拆解。学多条件判断最有价值的不只是记住几个公式写法而是把业务语言翻译成逻辑表达式的过程。拿到一个需求不要急着打开 Excel先在纸上把规则整理出来“同时满足”画成 AND“任一满足”画成 OR多个组合用括号分层。这一步做清楚了写公式就是按图施工难度会大幅下降。如果你手里正好有绩效表、订单表、考勤表需要做条件判断可以拿本文的案例直接改成自己的字段名。先在一个空单元格里测 AND / OR 返回的 TRUE / FALSE再确认最终结果最后再套进 IF。这是最稳妥也是最适合初学者的路线。再往后如果你想继续深入可以关注三个方向一是数据验证与条件格式的联动用判断结果自动标记颜色二是用 SUMPRODUCT 函数实现多条件计数求和三是学习 XLOOKUP / INDEX MATCH 做多条件查找。这些都是在多条件判断基础上自然延伸出来的实用技能对提升职场表格处理能力会有更直接的帮助。
返回列表