资讯动态

Excel多条件判断:IF嵌套AND与OR函数写法详解

发布时间:2026/9/1 8:59:08 来源:尧图企业网站定制
IF函数、AND函数、OR函数是Excel里面做多条件判断最基础、也最容易出问题的一组函数。单独用IF判断一个条件大多数人都能写出来一旦业务要求变成“同时满足两个条件才算达标”或者“满足其中一个条件就通过”公式就开始频繁出错常见表现是结果全是0、结果反了、或者直接弹出错误值。这篇文章会把IF嵌套AND、IF嵌套OR的完整写法和职场实际场景拆开讲适合经常做绩效核算、销售统计、库存分类、名单筛选、考核评级的办公人员。我会从最基础的三函数分工讲起再依次讲同时满足、满足其一、混合嵌套、多档位判断最后给出排查顺序和优化思路。1. 先把IF、AND、OR三个函数的职责分清楚写嵌套公式时很多人的第一个问题不是不会用某个函数而是把三个函数的职责搞混了。IF负责的是“分流”AND和OR负责的是“条件打包”。先理解这一点后面所有嵌套都不会乱。1.1 IF函数一个“二选一”的开关IF函数的结构是IF(条件, 条件成立时返回的值, 条件不成立时返回的值)。三个参数里第一个参数是逻辑判断第二个和第三个参数可以是数值、文本、单元格引用甚至可以是另一个函数。Excel执行的时候会先计算第一个参数结果要么是TRUE要么是FALSE然后根据TRUE或FALSE决定返回第二个还是第三个参数。例如IF(A260, 及格, 不及格)A2是成绩大于等于60就返回“及格”否则返回“不及格”。这个例子看起来简单但它是理解嵌套的基础。IF只是负责“根据TRUE/FALSE做二选一”至于这个TRUE/FALSE是怎么来的Excel并不关心它可以是直接比较可以是单元格里的TRUE/FALSE也可以是AND、OR、NOT这些函数算出来的结果。这里有一个新手常犯的错误在IF的第一个参数里写一段完整公式却忘记比较比如IF(A2B2, ...)。如果A2B2的结果是数字Excel在逻辑上下文里会把0当成FALSE、非0当成TRUE看起来有时能出结果但逻辑很不清晰也容易出现误判。规范做法是明确写出比较运算符比如A2B2100。1.2 AND函数多个条件必须全部成立AND函数的结构是AND(条件1, 条件2, ...)最多可以写255个条件。它返回的结果只有两种所有条件全部为真返回TRUE只要有一个条件为假返回FALSE。AND函数单独使用的情况很少因为单独返回的TRUE/FALSE在表格里直接展示意义有限。它最常见的用法就是塞进IF的第一个参数用来充当“多条件开关”。比如IF(AND(B210000, C222), 2000, 0)含义是B2的业绩达到10000并且C2的出勤天数达到22两个条件同时成立结果给2000否则给0。这里AND起到的就是把两个条件打包成一个TRUE/FALSE结果的作用。1.3 OR函数任意一个条件成立即可OR函数的结构是OR(条件1, 条件2, ...)参数数量和AND一样。只要其中一个条件为真返回TRUE只有所有条件都为假才返回FALSE。它和AND正好相反一个偏向“全部”一个偏向“任意”。例如IF(OR(D2VIP客户, E25000), 享受折扣, 不享受)只要D2是VIP客户或者E2订单金额达到5000就返回“享受折扣”。这里OR就相当于把两个条件合并成一个“有任意一个成立”的逻辑判断。1.4 为什么职场报表里很少只用一层IF单一IF只能处理一个“要么A要么B”的判断。职场里的规则通常不是单一维度比如“业绩达标且出勤达标才能发奖金”是两个维度再比如“销售部且业绩达标或客户好评率高被评为优秀”就混合了AND和OR。如果只用一层IF只能把条件写得很长而且逻辑很难读。真正解决问题的不是写一个更长的IF而是把多个条件先交给AND或者OR做逻辑组合再把组合结果交给IF。这也是整篇文章的核心思路IF负责分流AND、OR负责条件打包。2. 同时满足两个条件IF嵌套AND的典型写法2.1 先拿绩效奖金场景做例子假设有一张员工月度考核表A列员工姓名B列业绩金额C列出勤天数。规则是业绩大于等于10000同时出勤天数大于等于22天奖金2000否则没有奖金。这个需求的关键词是“同时”也就是两个条件必须全部满足所以要用AND。在D2单元格输入IF(AND(B210000, C222), 2000, 0)然后下拉填充到其他行。这里B2、C2是相对引用每行会自动变成B3、C3逻辑保持一致。2.2 Excel执行顺序从里到外先算条件再分流很多人在这个公式上出问题是因为没有理解执行顺序。Excel会先计算AND(B210000, C222)得到TRUE或FALSE然后再把这个结果交给IF。如果AND的结果是TRUEIF返回第二个参数2000如果是FALSEIF返回第三个参数0。换句话说AND输出的不是“符合条件之后的具体奖金”而是“条件是否成立”的开关。这个顺序在混合嵌套里更重要遇到AND里面再套OR的公式Excel仍然是先算最里层再一层层往外算。2.3 条件数量增加时AND参数怎么扩AND不限制只能写两个条件。比如规则变成“业绩大于等于10000出勤大于等于22天并且当月无客户投诉”那就在AND里面追加一个条件IF(AND(B210000, C222, D2无投诉), 2000, 0)写法上没有变化只是参数从两个变成三个。实际使用时不用怕条件多AND的长处就是接收多个参数。但要注意条件越多后面排查起来越麻烦所以条件超过三个时我更建议先拆成辅助列这个后面会专门讲。2.4 很容易踩的三个坑第一个坑是条件顺序写反。比如把“不满足时返回2000”和“满足时返回0”写反结果会完全相反。第二个坑是文本条件没有加英文双引号写成D2无投诉公式会报#NAME?错误。第三个坑是中文输入法下输入了中文逗号、中文括号公式会被当成文本直接不计算。这类问题从表面看是“公式不对”实际上大多数是输入法习惯问题。写完公式先不要急着下拉填充先看这一行结果是否符合预期再检查单元格里的公式是否显示为文本。注意如果公式显示为文本大概率是公式前面多了空格、单引号或者把中文括号写进去了。先解决输入法问题再去查函数逻辑。3. 满足其中一个条件IF嵌套OR的写法3.1 用会员优惠场景说明假设一家零售公司做促销客户类型是VIP客户或者单笔订单金额大于等于5000就享受折扣。这里判断规则是“或者”也就是满足其中任意一个就算。用OR就很直接IF(OR(D2VIP客户, E25000), 享受折扣, 不享受)如果D列客户类型写的是“VIP客户”不管订单金额多少都返回“享受折扣”如果订单金额达到5000不管是不是VIP也返回“享受折扣”。只有两个条件都不满足才返回“不享受”。3.2 OR和AND的判断结果对比把OR和AND放在一起看差异非常清楚。条件1条件2AND结果OR结果TRUETRUETRUETRUETRUEFALSEFALSETRUEFALSETRUEFALSETRUEFALSEFALSEFALSEFALSE记住这个表就不会把AND和OR用混。AND喜欢“全真”OR喜欢“有真”。实务里我判断用哪个函数就看业务语句里是“并且”还是“或者”。“并且”用AND“或者”用OR。3.3 OR的多个条件和范围引用的注意事项OR函数理论上可以写很多个条件写法是OR(A2A, B2B, C2C, ...)。但有一点要特别注意如果直接把一个范围引用塞进OR去套条件比如OR(A2:A100产品A)在旧版Excel里可能会返回不可预期的结果。这不是OR本身的问题而是数组计算结果在不同版本里的行为不一样。稳妥的做法是要么把范围引用换成逐格判断要么用SUMPRODUCT、COUNTIF这类专门处理范围统计的函数。单个单元格的条件判断用OR没问题跨越一整列做条件判断先想清楚自己到底是要标记每一行还是要做汇总统计。3.4 OR嵌套IF之后别在第三个参数上犯糊涂IF嵌套OR时最容易忽略的是“不符合条件”的返回值。业务里“不享受折扣”必须明确写出来不能空着不写。如果IF的第三个参数省略Excel会返回FALSE表格里会出现一堆FALSE后续做筛选、做计数都会出问题。建议每个参数都写明确哪怕结果就是空也写成。这样表格展现更干净后面处理数据的人也不会被一堆FALSE和0搞晕。4. 混合多条件AND、OR一起嵌套再加多层IF4.1 销售部且业绩达标或好评率高怎么读公式公司评选月度优秀员工规则是部门必须是销售部并且满足以下两个条件之一——业绩大于等于10000或者客户好评率大于等于95%。这句话里既有“并且”又有“或者”。公式这样写IF(AND(A2销售部, OR(B210000, C20.95)), 优秀, 待改进)读的时候从最里层开始先看OR(B210000, C20.95)是否成立再把OR的结果和A2销售部一起放进AND。两个条件都成立就返回“优秀”否则返回“待改进”。这个公式是职场里非常典型的“混合判断”。难的不是单个函数而是搞清楚先组合谁、再组合谁。先把逻辑树画出来角色是销售部并且结果是业绩达标或者好评率达标。对应的公式里“销售部”用AND的第一参数“业绩或好评率”用OR整体作为AND的第二参数。4.2 多档位奖金IF嵌套IF的写法与顺序业务里经常有“三档、四档”的判断比如业绩大于等于20000评级“高”大于等于10000评级“中”否则评级“低”。写成IF(A220000, 高, IF(A210000, 中, 低))这个公式里IF的第三个参数不再是一个固定值而是另一个完整IF。Excel会先判断A220000成立就返回“高”不成立再进入下一个IF判断A210000。顺序非常关键必须从高档往低档写。如果反过来写成IF(A210000, 中, IF(A220000, 高, 低))业绩30000的人因为先满足A210000会直接返回“中”而不是“高”。这个坑在实操里出现频率非常高。判断顺序要遵守“先高后低”或者“先窄后宽”永远不要把宽泛条件放在前面。4.3 括号怎么才能不写错混合嵌套以后括号数量会明显增加。一个建议是写公式时从最外层开始把每个函数的开括号和闭括号数量对整齐。以混合公式为例IF(AND(A2销售部, OR(B210000, C20.95)), 优秀, 待改进)拆开看IF有一个开括号、一个闭括号AND有一个开括号、一个闭括号OR有一个开括号、一个闭括号。开括号总数等于3闭括号总数也等于3。Excel在输入公式时会用不同颜色标出匹配的括号。当光标停在某个括号上时对应的开头或结尾括号会高亮。如果公式一直报“输入公式中存在错误”优先检查括号数量是否一致。如果括号多到眼晕可以在公式编辑栏里选中一段子公式按F9查看它的计算结果看完按Esc退出千万不要按回车。按了回车选中部分会被替换成计算结果原来的公式结构就被破坏了。5. 结果不对时按这个顺序排查5.1 先用“公式求值”看执行过程在Excel里选中带公式的单元格点击“公式”选项卡下的“公式求值”会一步一步显示公式的计算过程。对多条件嵌套公式来说这个功能能直接看到AND、OR每轮算出来是TRUE还是FALSE比对着公式猜快得多。也可以用F9查看选中片段的即时结果但一定要记住看完按Esc。这两个工具结合起来基本能把嵌套逻辑里的问题定位到具体某一层。5.2 常见错误值对照表现象可能原因处理方式#NAME?函数名拼错或者文本条件缺少英文双引号检查函数名和字符串引号#VALUE!比较的单元格里是文本或混合了错误值检查单元格数据类型结果全是0条件区间写反或者数字被存成了文本检查运算符和数据类型结果全部是“不满足”条件判断方向反了检查、是否写反公式显示为文本公式前有空格、单引号或括号是中文括号重新输入公式5.3 排查顺序从外到内从数据到公式遇到多条件判断结果不对我一般按下面顺序来看结果是什么是错误值、固定值还是和预期相反看公式是否被当成文本单元格左上角有没有绿色三角公式栏里有没有多余字符看括号数量数开括号和闭括号是否一致看条件引用的单元格值是不是文本型数字空格、换行符会不会干扰判断看比较方向、、是否符合业务要求看AND、OR位置有没有把逻辑关系反过来。实际排查时前两步排除了问题基本就定位在数据格式和逻辑方向上。不要一上来就怀疑函数不支持大多数多条件判断问题都出在输入和格式上。5.4 下拉填充后结果不对怎么办如果第一行公式正确下拉之后后面的行结果错乱重点检查引用方式。同行内比较通常B2、C2这种相对引用没问题如果公式里引用了另一个固定单元格比如固定目标值放在F1单元格下拉时必须写成$F$1否则每一行都会往下偏移一格。绝对引用和相对引用用错最容易造成“第一行对、后面全错”的情况。检查时点开几个出错行的公式逐个看引用单元格是不是已经跑偏了。6. 职场建议公式不是越长越好6.1 复杂逻辑先拆辅助列一个公式里嵌套四五个函数看起来能力很强但维护和复核的人会非常痛苦。如果条件超过两三个我建议先在旁边加辅助列把条件判断拆开。比如先建一列“业绩是否达标”IF(B210000, 1, 0)再建一列“出勤是否达标”IF(C222, 1, 0)最后主判断列写IF(AND(D21, E21), 2000, 0)。辅助列的好处是每一步都看得见出错时能立刻知道是哪一段条件不对。很多公司报表审核时也更容易接受辅助列而不是一个几百字符的长公式。确认逻辑没问题后可以把辅助列隐藏或者粘贴成数值不影响使用。6.2 新版Excel可以试试IFS函数如果Excel版本支持IFS函数多档位判断可以写得更简洁IFS(A220000, 高, A210000, 中, TRUE, 低)IFS会按顺序判断遇到第一个满足条件就返回对应值。最后一个条件写TRUE相当于兜底。需要注意IFS在Excel 2019、Office 365以及较新的WPS版本里才可用旧版本会把IFS识别为#NAME?错误。落地之前先确认同事的版本别写完了发过去打不开。6.3 多条件统计场景用COUNTIFS、SUMIFS更合适有些需求看起来像多条件判断实际是多条件统计。比如“统计业绩达标且出勤达标的人数”如果用IF嵌套会先加一列标记再计数效率低。直接用COUNTIFSCOUNTIFS(B2:B100, 10000, C2:C100, 22)类似的汇总满足多个条件的金额可以用SUMIFS。选函数前先想清楚目标如果是要给每一行贴标签用IF、AND、OR如果是要做汇总统计用COUNTIFS、SUMIFS这类自带范围筛选的函数更合适。6.4 阈值经常变动时把条件写成单元格引用判断条件里的阈值比如10000、22、0.95尽量不要直接写在公式里。把它们放到单元格里比如F1放业绩阈值、F2放考勤阈值公式写成IF(AND(B2$F$1, C2$F$2), 2000, 0)这样下个月调整标准时只改单元格里的数值不用改公式。公司制度经常变动把阈值外置是减少维护成本最实际的办法。做报表的人最怕的就是每个月翻公式改数字改成单元格引用以后交接成本也会低很多。IF、AND、OR这套组合关键不在于会写多少个嵌套而在于先把业务条件翻译成清晰逻辑哪些条件是“并且”哪些是“或者”判断顺序是从高到低还是从小到大。先把小样例跑通再往整张报表套。多条件判断出问题时也先从数据和逻辑方向排查别急着把函数换成更复杂的版本。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价