日常工作中大量操作本质上都是在做判断:这笔订单的金额是否超过了审批门槛、这位员工的出勤天数是否达标、这个学生的分数属于哪个等级区间。这些判断如果靠肉眼逐行比对再手动填写结果,几百行数据至少耗费一小时,而且出错概率极高。Excel 的逻辑函数可以把判断规则写成公式,让每个单元格自动根据条件输出对应的结果,数据更新后判断结果也会跟着变化,不需要重复操作。
IF 是 Excel 中使用频率最高的逻辑函数,几乎所有需要“根据条件输出不同结果”的场景都用得到它。
IF 函数的结构是三个参数,用逗号隔开:
=IF(条件, 条件成立时的结果, 条件不成立时的结果)
第一个参数是判断条件,写法和数学里一样,用 >、<、=、>=、<=、<> 这些比较运算符。第二个参数是条件为真(成立)时单元格显示的内容。第三个参数是条件为假(不成立)时显示的内容。
一份期末考试成绩表,B 列是分数,C 列需要显示“及格”或“不及格”(60 分为及格线)。在 C2 单元格输入:
=IF(B2>=60, "及格", "不及格")
公式的含义是:如果 B2 的值大于等于 60,C2 显示“及格”;否则显示“不及格”。输入完成后向下拖动填充柄,C 列每一行都会根据对应的分数自动显示判定结果。
再看另一个场景——库存预警。D 列是当前库存数量,E 列需要判断是否需要补货(库存低于 20 件就需要补货):
=IF(D2<20, "需补货", "库存充足")
这两个案例的核心逻辑完全相同,只是条件和输出文本不同。掌握了 IF 函数的三参数结构,遇到任何“二选一”的判断场景都能直接套用。

点击下载模板:IF及格判断-练习模板.xlsx
IF 函数的第二个和第三个参数可以是文本、数值或其他公式。如果输出的是文本,必须用英文双引号包裹;如果输出的是数值或计算公式,直接写即可,不需要加引号。
成绩判定往往不只是“及格”和“不及格”两种结果。很多学校的评定标准是四级制:90 分及以上为优秀,80 到 89 分为良好,60 到 79 分为及格,60 分以下为不及格。
两种结果用一个 IF 就够了,四种结果需要把多个 IF 嵌套在一起——在“条件不成立时的结果”这个位置再放一个 IF 函数,层层递进判断:
=IF(B2>=90, "优秀", IF(B2>=80, "良好", IF(B2>=60, "及格", "不及格")))
拆开来看这个公式的判断顺序:
判断是按照从前到后的顺序执行的,一旦某个条件成立就立刻输出结果,不再往下判断。所以条件的排列顺序很重要——必须把最严格的条件放在最前面。如果把 >=60 放在第一个,那所有 60 分以上的人都会被判定为“及格”,永远不会出现“良好”和“优秀”。

点击下载模板:IF嵌套等级评定-练习模板.xlsx
IF 嵌套两三层还能勉强看清逻辑,一旦超过三层,公式就变成了一长串括号套括号,写的时候容易丢括号,改的时候更痛苦。
假如判断等级从四级变成六级(A+、A、B+、B、C、D),嵌套写法变成这样:
=IF(B2>=95,"A+",IF(B2>=90,"A",IF(B2>=80,"B+",IF(B2>=70,"B",IF(B2>=60,"C","D")))))
五层嵌套,五个右括号连在末尾,中间改一个条件就要小心翼翼地数括号。这种情况下用 IFS 函数会清晰很多。
IFS 是专门为多条件判断设计的函数,用来替代多层 IF 嵌套。它的写法更扁平,不需要层层嵌套,每一组“条件-结果”并列排开,一目了然。
=IFS(条件1, 结果1, 条件2, 结果2, 条件3, 结果3, ...)
IFS 按照从左到右的顺序依次检查每个条件,第一个为真的条件对应的结果会被输出,后面的条件全部跳过。
上面用 IF 嵌套写的四级成绩判定,用 IFS 改写后是这样的:
=IFS(B2>=90, "优秀", B2>=80, "良好", B2>=60, "及格", B2<60, "不及格")
四组条件-结果并列排开,没有任何嵌套,修改某个等级的分数线时直接定位到对应的位置改就行,不需要数括号。
六级制的写法同样清晰:
=IFS(B2>=95,"A+", B2>=90,"A", B2>=80,"B+", B2>=70,"B", B2>=60,"C", B2<60,"D")
IFS 函数要求至少有一个条件为真,如果所有条件都不成立,公式会返回 #N/A 错误。为了避免这种情况,最后一组条件通常写成一个“兜底条件”——用 TRUE 作为条件,确保一定会被匹配到:=IFS(B2>=90,"优秀", B2>=80,"良好", B2>=60,"及格", TRUE,"不及格")。TRUE 永远为真,放在最后相当于“以上条件都不满足时,执行这个”。
如果使用的是较老版本的 Excel(2016 及以前),只能用 IF 嵌套。如果版本支持 IFS,超过三个判断等级时建议优先使用 IFS。
IF 函数的第一个参数只能写一个条件。但实际业务中经常需要同时满足多个条件,或者满足多个条件中的任意一个——这就需要 AND 和 OR 函数。
AND 函数接收多个条件作为参数,只有当全部条件都为真时,AND 才返回 TRUE;只要有任何一个条件为假,AND 就返回 FALSE。
=AND(条件1, 条件2, 条件3, ...)
AND 函数本身只输出 TRUE 或 FALSE,单独使用的价值有限。它真正的威力在于放进 IF 函数的条件位置,实现“多条件同时满足才执行”的判断:
=IF(AND(条件1, 条件2), 全部满足时的结果, 未全部满足时的结果)
实际场景:一份员工季度考核表,公司规定“出勤天数达到 60 天以上”并且“绩效评分达到 80 分以上”的员工才能获得季度奖金。C 列是出勤天数,D 列是绩效评分,E 列需要显示“发放”或“不发放”:
=IF(AND(C2>60, D2>=80), "发放", "不发放")
只有当 C2 大于 60 并且 D2 大于等于 80 同时成立时,E2 才显示“发放”。任何一个条件不满足——出勤够了但绩效不够,或者绩效够了但出勤不够——都显示“不发放”。

点击下载模板:AND双条件考核-练习模板.xlsx
OR 函数的逻辑和 AND 正好相反:只要有一个条件为真,OR 就返回 TRUE;所有条件都为假时,OR 才返回 FALSE。
=OR(条件1, 条件2, 条件3, ...)
同样放进 IF 函数中使用:
=IF(OR(条件1, 条件2), 任一满足时的结果, 全不满足时的结果)
实际场景:一份商品信息表,公司规定库存低于 10 件或者上架时间超过 180 天的商品需要做促销清仓处理。E 列是库存数量,F 列是上架天数,G 列需要显示“需促销”或“正常销售”:
=IF(OR(E2<10, F2>180), "需促销", "正常销售")
库存低于 10 件——需要促销;上架超过 180 天——也需要促销;两个条件满足其中任何一个,G2 都显示“需促销”。只有库存充足并且上架时间还不长时,才显示“正常销售”。

点击下载模板:OR促销判断-练习模板.xlsx
用一组具体数值演示两者的差异:
第一行两个条件都满足,AND 和 OR 都返回 TRUE。第二三行只有一个条件满足,AND 返回 FALSE 而 OR 返回 TRUE——这就是两者的关键区别。第四行两个条件都不满足,AND 和 OR 都返回 FALSE。
某些复杂的业务规则会同时涉及“并且”和“或者”两种逻辑。
场景:公司差旅报销规则——部门经理级别以上可以报销头等舱,普通员工如果单次出差超过 8 小时或目的地距离超过 800 公里也可以报销头等舱,其余情况只能报销经济舱。
假设 B 列是职级(经理/主管/普通员工),C 列是出差时长(小时),D 列是目的地距离(公里),E 列要输出“头等舱”或“经济舱”:
=IF(OR(B2="经理", AND(C2>8, D2>800)), "头等舱", "经济舱")
OR 里面放了两个条件:第一个是“职级为经理”,第二个是 AND(C2>8, D2>800)——“时长超过 8 小时并且距离超过 800 公里”。只要这两个大条件中有一个成立,就输出“头等舱”。
AND 和 OR 可以嵌套在彼此内部,组合出任意复杂的逻辑。但嵌套超过两层之后,公式会变得难以阅读。遇到非常复杂的判断规则时,建议拆分成多个辅助列,每列负责一个子条件的判断,最后再用一个 IF 汇总所有辅助列的结果,这样每个公式都很短、很容易理解。
ISODD 和 ISEVEN 是两个判断奇偶性的函数,功能非常单一:ISODD 判断一个数是否为奇数,ISEVEN 判断一个数是否为偶数。
=ISODD(数值)
=ISEVEN(数值)
如果括号内的数值符合判断条件(ISODD 对应奇数,ISEVEN 对应偶数),函数返回 TRUE,否则返回 FALSE。小数会被截断为整数部分再判断——ISODD(3.7) 判断的实际上是 3,返回 TRUE。
这两个函数单独使用的场景不多,更常见的是配合 IF 函数实现按奇偶分组的逻辑。
场景一:一份活动报名表,A 列是报名序号(1、2、3、4……),需要把参加者按序号奇偶分成两组——奇数号分到 A 组,偶数号分到 B 组:
=IF(ISODD(A2), "A组", "B组")

点击下载模板:ISODD奇偶分组-练习模板.xlsx
场景二:生产车间的工位编号从 1 到 50,奇数工位周一做设备保养,偶数工位周二做设备保养,C 列需要显示保养日:
=IF(ISEVEN(A2), "周二", "周一")
场景三:仓库货架编号规则——奇数排走左侧通道,偶数排走右侧通道。拣货路线规划表中需要根据货架排号标注通道方向:
=IF(ISODD(B2), "左侧通道", "右侧通道")
ISODD 和 ISEVEN 的参数必须是数值或引用数值的单元格。如果传入文本(如“abc”)或空单元格,函数会返回 #VALUE! 错误。使用前确保目标列的数据确实是数字格式。
逻辑函数的核心价值是把人的判断过程转化为公式。IF 处理二选一和多等级判断,IFS 让多条件判断更清晰,AND 和 OR 解决多条件组合的问题,ISODD 和 ISEVEN 处理奇偶分组。这些函数互相配合,可以覆盖日常工作中绝大多数需要自动判断的场景——订单审批、绩效评定、库存预警、人员分组、资格校验,都能用几个逻辑函数组合出来。