拓冰建站拓冰建站
首页 / 资讯中心 / 正文

IF函数嵌套AND、OR:Excel多条件判断同时满足与满足其一实战

IF函数嵌套AND、OR函数多条件判断同时满足、满足其一怎么算职场高频案例拆解这次我们来看Excel里最容易被低估的一组组合IF函数、AND函数、OR函数。如果你只会写“IF(A160,及格,不及格)”那说明你还没碰到真正的多条件判断场景。实际工作中判断条件很少只有一个既要看业绩是否达标又要看回款是否完成既要满足学历门槛又要满足工作年限或者多个条件里只要有一个通过就放行。这种时候IF函数单独写不出来必须嵌套AND或OR函数。先说结论AND函数表示“同时满足所有条件”OR函数表示“满足其中一个条件即可”两者都可以直接嵌在IF函数的第一个参数位置形成多条件判断。嵌套逻辑不复杂但实际写公式时容易出现括号配对错误、引用范围错误、判断顺序错误导致返回结果不符合预期。这篇文章会按“基础语法 - 嵌套写法 - 职场案例 - 常见报错与排查 - 性能与维护建议”的顺序展开每个案例都给出可直接复制的公式、判断逻辑说明和踩坑提示。无论你是做销售统计、人事筛选、财务对账还是项目进度跟踪看完之后可以直接套用到自己的表格里。1. IF函数、AND函数、OR函数核心能力速览能力项说明函数类型Excel逻辑函数属于最基础也最高频的函数组合核心用途多条件判断全部满足、满足其一、条件取反支持版本Excel 2010/2013/2016/2019/2021、Office 365、WPS表格均支持嵌套复杂度支持IF函数深层嵌套但建议控制在3-5层以内AND函数所有条件都为TRUE时返回TRUE否则返回FALSEOR函数任一条件为TRUE时返回TRUE全部为FALSE时才返回FALSE与IF配合方式写在IF函数的第一个参数逻辑判断位置典型场景绩效考核、人员筛选、订单审核、成绩评定、库存预警排错难度主要看括号配对和条件区间引用是否正确适合人群日常用Excel做数据统计、报表、人力、财务、运营的办公人员从能力表就能看出这套组合不挑版本也不吃硬件配置核心是理解“条件之间的逻辑关系”。下面先把三个函数的语法拆开讲清楚。2. IF函数基础语法与多条件判断逻辑2.1 单个IF函数的结构IF函数的官方语法是IF(条件判断, 值为TRUE时返回, 值为FALSE时返回)条件判断一个可以计算为TRUE或FALSE的表达式。值为TRUE时返回条件成立时显示的内容可以是文字、数字、公式或单元格引用。值为FALSE时返回条件不成立时显示的内容。最简单的例子IF(B260, 及格, 不及格)如果B2是成绩大于等于60分返回“及格”否则返回“不及格”。这只是单条件判断。2.2 什么是多条件判断多条件判断指判断依据不止一个常见逻辑关系有两类同时满足A条件成立且B条件成立例如“业绩达标且回款完成”对应AND。满足其一A条件成立或B条件成立例如“学历为本科或工作年限满3年”对应OR。IF函数单独无法直接表达“且”和“或”必须借助AND、OR函数。这就是嵌套的起点。2.3 AND函数语法AND(条件1, 条件2, ...)AND函数可以写多个条件最多支持255个条件Excel版本不同有差异但日常够用。所有条件都为TRUEAND返回TRUE只要有一个为FALSEAND返回FALSE。示例AND(C280, D280)当C2和D2同时大于等于80时返回TRUE否则返回FALSE。2.4 OR函数语法OR(条件1, 条件2, ...)OR函数同样支持多个条件。只要有一个条件为TRUEOR返回TRUE所有条件都为FALSE时返回FALSE。示例OR(C280, D280)C2或D2任意一个大于等于80就返回TRUE。2.5 嵌套逻辑多条件判断的完整嵌套公式结构是IF(AND(条件1, 条件2), 所有条件满足时返回, 否则返回) IF(OR(条件1, 条件2), 任一条件满足时返回, 否则返回)理解的关键在于AND和OR的结果是逻辑值TRUE或FALSE而IF的第一个参数恰好需要逻辑值因此可以直接把AND或OR整体嵌入IF函数内部。3. IF函数嵌套AND函数同时满足两个条件的实战写法3.1 场景销售提成考核假设公司规定销售额不低于10万且回款率不低于80%才能拿到全额提成。数据表中A列员工姓名B列销售额万元C列回款率%判断每个人是否能拿全额提成。公式写在D2单元格IF(AND(B210, C280), 全额提成, 不达标)逻辑分析B210销售额是否大于等于10万。C280回款率是否大于等于80%。AND函数把两个条件连起来必须同时满足才返回TRUE。IF根据AND的返回值输出“全额提成”或“不达标”。如果只想返回TRUE/FALSE不返回文字可以直接写AND(B210, C280)这时D列会显示TRUE或FALSE。后续可配合筛选、条件格式使用。3.2 场景员工转正评定某公司员工转正需要同时满足试用期考核分不低于75分且出勤天数不少于22天。数据A列员工姓名B列考核分C列出勤天数公式IF(AND(B275, C222), 同意转正, 暂缓转正)这里AND判断两个条件全部成立返回“同意转正”否则“暂缓转正”。实际使用中需要注意条件里的比较符号不要写反。出勤天数“不少于22天”是“22”不是“22”。边界值非常容易错建议在表外单独测试边界数值。3.3 场景订单是否满足发货条件订单表中有A列订单号B列订单金额C列付款状态已付款/未付款D列库存状态有货/无货要求订单金额大于500且已付款且有货才允许发货。这里的条件有三个AND函数完全支持IF(AND(B2500, C2已付款, D2有货), 允许发货, 待处理)注意文本条件必须用英文双引号引起来比如“已付款”“有货”。如果你在公式里直接写已付款Excel会把它当成名称或公式大概率报错。这个案例说明AND函数不是只能写两个条件多个条件都可以塞进去。但条件越多公式越长后期维护时越容易看错。建议把复杂条件拆成辅助列后面会专门讲。3.4 AND嵌套后返回结果不是TRUE/FALSE有时我们希望返回数字方便后续统计。比如满足条件返回1否则返回0IF(AND(B210, C280), 1, 0)这种写法适合需要对满足条件的人数做SUM求和。也可以用更简洁的写法--AND(B210, C280)两个减号会把逻辑值TRUE/FALSE转成数字1/0。不过这个写法对新手不友好不推荐第一次就用这个先写IF版本理解后再简化。4. IF函数嵌套OR函数满足其中一个条件的实战写法4.1 场景活动参与资格判定某活动规定满足以下任一条件即可参加——会员等级为VIP或累计消费金额大于3000元。数据A列会员姓名B列会员等级C列累计消费金额公式IF(OR(B2VIP, C23000), 可参加, 不可参加)逻辑分析B2VIP判断是否为VIP会员。C23000判断累计消费金额是否大于3000元。OR函数只要有一个条件成立就返回TRUE。这里很容易和AND混淆OR是“或”AND是“且”。在写公式前先想清楚业务规则是“全部满足才通过”还是“任意满足即可通过”。4.2 场景简历筛选招聘岗位要求本科以上学历或者有3年以上相关工作经验任一满足即可进入面试。数据A列姓名B列学历本科、硕士、大专、其他C列相关工作经验年公式IF(OR(B2本科, B2硕士, C23), 进入面试, 待定)这里学历条件写了两个本科或硕士其实可以用一个更高效的写法IF(OR(B2 IN (本科, 硕士), C23), 进入面试, 待定)但Excel中的IN函数实际上是数组写法普通单元格公式不直接支持。新手阶段建议老老实实把条件写全不要追求过于花哨的写法。对于WPS表格和最新版Excel也可以使用新函数IF(OR(ISNUMBER(MATCH(B2, {本科,硕士}, 0)), C23), 进入面试, 待定)这个公式稍微复杂但能表达数组匹配逻辑。如果基础较弱多条件OR不要求一步到位用多个OR拼接也完全可以IF(OR(B2本科, B2硕士, C23), 进入面试, 待定)4.3 场景库存预警仓库管理中当库存数量少于安全库存或该商品处于停产状态时需要触发预警。数据A列商品编码B列当前库存数量C列状态正常/停产公式IF(OR(B2 安全库存, C2停产), 需预警, 正常)注意如果把“安全库存”写成一个单元格区域或已命名的单元格比如D1单元格存储安全库存数值则公式是IF(OR(B2 $D$1, C2停产), 需预警, 正常)这里用绝对引用$D$1防止下拉填充时引用位置变化。这是很多人漏掉的细节。4.4 多个OR条件的边界情况继续讨论“满足其中一个条件”的特殊情况。如果条件是文本匹配需要确认是否区分大小写。Excel的等于判断默认不区分大小写所以“vip”和“VIP”会被认为是相同内容。如果业务上严格区分则需要用EXACT函数。不过大部分场景不区分这一点可以先不用深究。还有一个常见需求OR里面的条件既包含数字区间也包含文本。例如“年龄大于60或体检结果为不合格”IF(OR(C260, D2不合格), 重点关注, 正常)这种写法没有问题Excel会把不同类型的条件分别计算再统一交给OR函数处理。5. IF函数同时嵌套AND和OR复杂多条件判断公式实际职场中并不是只有“全满足”或“满足其一”这种纯粹逻辑。更多时候是混合逻辑多个条件中部分组合必须同时满足部分组合只要满足其中一个就行。5.1 场景项目立项审批某项目立项要求预算金额大于100万且项目风险等级为低或者项目属于战略重点项目。逻辑拆解条件组1预算100万 且 风险低条件组2战略是两个组之间是“或”关系组1成立或组2成立项目通过。公式IF(OR(AND(B2100, C2低), D2是), 立项通过, 待议)其中B2预算金额C2风险等级D2是否战略重点来看这个公式的执行顺序Excel先计算AND(B2100, C2低)得到TRUE或FALSE。再计算D2是得到TRUE或FALSE。OR函数把两个逻辑值合并只要有一个TRUE最终结果就是TRUE。IF根据最终结果输出“立项通过”或“待议”。这里有一个重要的思维转变AND和OR可以互相嵌套不只是IF里面只能放一个。只要最终能计算出一个逻辑值这个逻辑值就可以作为IF的条件。5.2 场景员工绩效评级考核规则业绩完成率100%且客户满意度90%评为“A”业绩完成率80%评为“B”其他情况评为“C”。这个逻辑不是单一IF能完成的需要多层IF嵌套配合ANDIF(AND(B21, C290), A, IF(B20.8, B, C))拆解外层IF判断是否同时满足业绩完成率100%以上、客户满意度90%以上。如果满足返回A。如果不满足进入第二个IF。第二个IF判断业绩完成率是否80%如果满足返回B否则返回C。注意第二个IF不是再判断AND因为此时第一个AND已经失败说明要么业绩没到100%要么满意度没到90%。这个逻辑里只要业绩80%无论满意度多少都返回B。如果你希望“业绩80%且满意度80%”才算B那第二个IF也要写成ANDIF(AND(B21, C290), A, IF(AND(B20.8, C280), B, C))两种规则的结果完全不同。写公式前一定要先确认业务规则到底是怎么定义的。5.3 多层IF嵌套的变形用AND替代部分IF有些场景可以用AND函数替代多层IF。例如条件如果部门是“销售部”且销售额10万奖励1000如果部门是“销售部”但销售额10万奖励200如果部门不是“销售部”奖励0。用IF嵌套写法IF(B2销售部, IF(C210, 1000, 200), 0)这里没有用AND因为外层的IF已经先判断了部门内层IF只需要判断销售额。如果想用AND写可以写成IF(AND(B2销售部, C210), 1000, IF(AND(B2销售部, C210), 200, 0))两种写法结果一样但第一种更简洁。AND的优势是条件组合灵活劣势是当判断路径非常复杂时嵌套层数和条件数量都会增加容易出错。5.4 更多条件时的辅助列思路当条件超过3个建议不要在同一个单元格里堆公式。以“休假审批”为例员工职级为P7及以上或连续工作满5年且本年度未休满10天或部门负责人审批通过。如果硬塞在一个公式里会非常长IF(OR(B2P7, AND(C25, D210), E2通过), 允许休假, 需再审批)这个公式还能接受。但如果再增加两个条件比如“项目处于仅维护期”“员工在核心岗位”公式可读性会快速下降。更稳妥的做法F列写“符合高级条件”OR(B2P7, E2通过)G列写“符合工龄条件”AND(C25, D210)H列最终判断IF(OR(F2, G2), 允许休假, 需再审批)辅助列的优点是可以单步验证哪里错了一目了然。缺点是多占了表格列如果表格需要对外提交可能要把辅助列隐藏或删除。6. 结合GIF动态演示逻辑用实际数据验证公式虽然博客里不能放动态图但可以用静态数据模拟一遍验证过程。假设有以下数据表姓名销售额回款率是否战略客户立项结果张三1285否李四890是王五1570否规则销售额10且回款率80%或战略客户是则立项通过。公式IF(OR(AND(B210, C280), D2是), 通过, 不通过)逐个验证张三销售额1210回款率8580AND结果TRUEOR结果TRUE输出“通过”。李四销售额810为FALSE回款率9080为TRUEAND结果为FALSE但战略客户是OR结果为TRUE输出“通过”。王五销售额1510为TRUE回款率7080为FALSEAND结果为FALSE战略客户否OR结果为FALSE输出“不通过”。这样的手动验证在公式写完后非常有必要尤其当公式里既有AND又有OR时做一遍数据推演能快速发现逻辑理解错误。7. 常见报错与排查方法多条件判断公式出现错误时先看错误类型再对症处理。问题现象可能原因排查方式解决方案返回 #NAME?函数名拼写错误或文本条件未加双引号检查公式中的函数名和引号把“已付款”改为已付款返回 #VALUE!比较符号两侧类型不一致比如文本与数字比较检查条件中的单元格类型统一数据格式确保数字列是数值格式返回 #REF!引用了被删除的行或列检查公式中的引用区域重新选择正确的数据区域括号不匹配嵌套层数过多少写或多写右括号看公式中的括号颜色提示或使用公式编辑器从内向外补全括号或者逐步拆解辅助列结果逻辑和预期相反AND和OR用反了重新阅读业务规则确认是“且”还是“或”把IF(OR(...))改为IF(AND(...))或反过来下拉填充后条件区域错位相对引用导致单元格区域跟着移动检查需要固定的条件区域对固定数值区域使用绝对引用$D$1公式过长难维护多层IF嵌套太多条件过多检查公式长度和嵌套层级将部分条件放到辅助列或改用IFS函数关于括号问题Excel公式编辑栏中鼠标悬停在括号上时会高亮对应的起始或结束括号。多试试这个功能比硬数括号个数快得多。如果当前Excel版本支持IFS函数并且逻辑是“依次判断多个条件”也可以用IFS替代部分多层IF嵌套。例如前面的绩效评级IFS(AND(B21, C290), A, B20.8, B, TRUE, C)IFS函数的逻辑是从第一个条件开始判断如果为TRUE则返回对应值否则继续判断下一个。最后一个条件写TRUE作为兜底。不过IFS不支持“或”关系的简洁表达它更适合顺序判断和AND/OR混合使用时也要先计算好逻辑值。8. 资源占用与性能观察Excel的公式计算几乎不消耗额外系统资源即使有成千上万行数据IFANDOR组合也不会影响运行速度。但需要注意几点整个列都填充公式后如果数据源经常变动Excel会重新计算大量公式叠加时会出现卡顿。建议把计算模式设置为“手动计算”在数据更新后按F9重新计算。不要在一个单元格里写超长公式。超长公式不但难维护出现错误后也难定位。优先用辅助列拆分。如果表格数据量超过10万行建议用“表”功能CtrlT将数据区域转换为表格公式会随数据扩展自动填充减少遗漏。如果要用Power Query或宏处理批量数据可以把判断规则写成自定义列公式但需要熟悉M语言或VBA。日常使用不必走到这一步。对于WPS表格用户这些函数基本兼容。唯一需要注意的是某些新版函数如IFS在WPS中可能版本不一致用之前先测试一下。最稳妥的做法就是使用IFANDOR这是最通用、最不会出错的组合。9. 多条件判断的进阶扩展IF嵌套与SUMPRODUCT当判断结果还要参与统计时不一定非要用IF。比如统计“销售额10且回款率80%的人数”可以用SUMPRODUCTSUMPRODUCT((B2:B10010)*(C2:C10080))这里利用逻辑值乘法的特性TRUE*TRUE1只要有一个FALSE结果是0。SUMPRODUCT会逐行计算并求和。如果还要统计满足条件的人的总销售额SUMPRODUCT((B2:B10010)*(C2:C10080)*B2:B100)这种方法比先用IF生成辅助列再加SUM更快适合数据量较大的场景。不过它需要理解逻辑值参与运算的原理新手可以先不用但要知道有这种用法。另外数组函数时代常用这种技巧Excel 365中也可以用FILTER函数SUM(FILTER(B2:B100, (B2:B10010)*(C2:C10080)))这些都是IFAND/OR的替代方案适合不同场景。日常做判断还是建议先用IFAND/OR把逻辑跑通再优化统计方式。10. 多条件判断的易错点与最佳实践10.1 易错点一把“文本数字”当成数值如果从系统导出的数据里销售额列是文本格式那么“B210”会返回什么Excel在比较时会尝试自动转换但有时隐藏着看不见的不可见字符导致结果不正确。排查方式ISNUMBER(B2)如果返回FALSE说明B2是文本。可以先对整列做分列转换或使用VALUE函数。最简单的方法是选中数据列用“数据 - 分列 - 完成”把文本数字转为真数字。10.2 易错点二不等于条件的误写多条件判断里经常用到“不等于”。Excel的不等号是“”IF(AND(B2已关闭, C20), 处理中, 已完成)注意不要写成“!”那是编程语言里的写法在Excel里不识别Excel的等号用“”不等号用“”。10.3 易错点三OR和AND混用时的优先级Excel中函数嵌套是由内向外计算的。括号里的内容先算最终得到逻辑值后再交给外层IF判断。因此不存在运算符优先级问题只要括号正确执行顺序就确定。但人眼容易看错。建议在公式中使用缩进风格虽然Excel不支持真实缩进但可以通过在公式编辑器中用空格模拟或者写成多行模式IF( OR( AND(B210, C280), D2是 ), 通过, 不通过 )这个写法在Excel 365中是可以直接输入的Excel会自动接受多行公式。旧版Excel需要在“公式 - 公式求值”中检查不能直观显示多行。多行公式的可读性会好很多。10.4 最佳实践一先写辅助列再合并对于初学多条件判断的人不要一上来就追求一个单元格写出所有逻辑。建议先在旁边写几列辅助判断E列B210F列C280G列AND(E2,F2)H列OR(G2, D2是)确认每一步结果正确后再把这些辅助列中的公式合并成一个完整公式。这样做的好处是出错时能定位到具体哪一步逻辑不对。10.5 最佳实践二合理使用条件格式验证结果写完全部公式后可以用条件格式检查判断结果是否合理选中结果列使用条件格式当结果为“通过”时填充绿色。当结果为“不通过”时填充红色。视觉上一眼能看出是否存在异常值例如100行全部“通过”或者大量明显不该通过的数据也被标成“通过”。10.6 最佳实践三保留一份规则说明职场表格会流转多人公式如果不加备注后续维护的人很难快速理解。建议在表格右下角或单独的Sheet页写明判断规则立项通过条件 1. 预算金额 100万 且 风险等级为低 2. 或 属于战略重点项目。 公式IF(OR(AND(B2100, C2低), D2是), 通过, 不通过)这样其他人拿到表格后能快速理解公式含义减少沟通成本。11. IF多条件判断在职场中的实际用法总结最后再梳理一遍实际用法方便收藏后直接查找。11.1 同时满足两个条件IF(AND(条件1, 条件2), 满足返回, 不满足返回)11.2 满足其中任一条件IF(OR(条件1, 条件2), 满足返回, 不满足返回)11.3 三组以上混合条件IF(OR(AND(条件A1, 条件A2), 条件B), 通过, 不通过)11.4 多层分级判断IF(AND(条件1, 条件2), A, IF(条件3, B, C))11.5 返回数字便于统计IF(AND(条件1, 条件2), 1, 0)建议把这几个模板保存到一个空白工作簿里遇到实际业务时直接把条件替换进去即可。12. 后续可扩展方向学会了IFANDOR还可以继续扩展IFS函数多条件顺序判断公式更紧凑。SWITCH函数对固定值进行匹配判断。SUMPRODUCT条件统计计数和求和替代辅助列加SUM的组合。COUNTIFS、SUMIFS分别用于多条件计数和多条件求和。条件格式搭配公式让表格自动变色。数据验证配合公式限制输入的内容满足特定条件。宏VBA批量处理当判断规则需要自动化执行时可以用VBA循环判断但维护成本更高不是日常表格的首选。建议优先掌握COUNTIFS和SUMIFS它们和多条件判断经常一同出现。比如“统计销售额10且回款率80%的人数”COUNTIFS可以直接完成COUNTIFS(B2:B100, 10, C2:C100, 80)再比如“求销售额10且回款率80%的销售总额”可以用SUMIFSSUMIFS(B2:B100, C2:C100, 80)注意这里需要明确求和列和条件列。这两个函数在日常统计中非常实用值得花时间单独学习。回到IFANDOR本身这个组合最大的价值是让人理解“条件逻辑”本身。一旦你能够在业务需求和技术公式之间快速转换Excel办公效率会明显提升。下次遇到“既要…又要…”或“要么…要么…”的规则时不用犹豫先拆分条件再决定放AND还是OR最后用IF包装结果。如果你在写公式时遇到括号报错或结果不对先按照上面第7节的排查表逐步检查多写几次就会形成条件反射。这篇文章里的公式模板可以直接复制到你的Excel中把单元格引用替换成自己的数据区域即可。建议先把一个简单场景跑通再扩展到复杂规则逐步熟悉这套多条件判断的组合拳。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门