IF函数大家都会用,简单的是与否判断没问题。
但是遇到多条件判断,比如分数分等级:90分以上优秀,80-90良好,60-80及格,60以下不及格...
很多人就开始晕了,括号套括号,一不小心就错了。
今天把IF的多条件用法讲透,看完再也不会错。
先复习基础:单条件判断
基础语法:
=IF(条件,条件成立显示什么,不成立显示什么)
例子:60分及格
=IF(A2>=60,"及格","不及格")
很简单,大部分人都会。
进阶:多条件区间判断,怎么套?
还是那个分数分等级的例子:
怎么写?
其实就是:第一次判断不满足就接着判断,一直分到最后。
公式写出来就是这样:
=IF(A2>=90,"优秀",IF(A2>=80,"良好",IF(A2>=60,"及格","不及格")))
怎么看懂括号?
一对括号包一个IF,顺序从上到下:
- 1. 第一个IF判断是不是优秀,是的话返回优秀,不是走下一个IF
- 2. 第二个IF判断是不是良好,是的话返回良好,不是走下一个IF
- 3. 第三个IF判断是不是及格,是的话返回及格,不是就是不及格
写作技巧:从高分往低分写(或者反过来)
记住一点:判断从区间一端开始往另一端走,逻辑不会乱。
从高到低:先判断最高的90,再80,再60,最后剩下就是不及格。
从低到高也可以:
=IF(A2<60,"不及格",IF(A2<80,"及格",IF(A2<90,"良好","优秀")))
结果一样,看你习惯。
多个条件同时满足,怎么写?
要求:业绩大于10万 并且 是销售部,才算达标。
两个条件要同时满足,怎么办?
用AND()包起来:
=IF(AND(业绩>10万,部门="销售部"),"达标","不达标")
写成实际公式:
=IF(AND(B2>100000,A2="销售部"),"达标","不达标")
AND就是"并且",所有条件都成立才返回真。
多个条件满足一个就行,怎么写?
要求:业绩大于10万 或者 工龄满5年,就算优秀。
只要满足一个就行,用OR():
=IF(OR(B2>100000,C2>=5),"优秀","不优秀")
OR就是"或者",只要有一个条件成立就返回真。
IF+ISNUMBER/ISTEXT,判断数据类型
你要判断单元格里是不是数字,就这么写:
=IF(ISNUMBER(A2),"是数字","不是数字")
判断是不是文本:
=IF(ISTEXT(A2),"是文本","不是文本")
实用场景:VLOOKUP之前判断是不是数字,提前找错。
IFERROR,前面说过,这里再强调
配合IF使用,出错了显示默认值:
=IFERROR(VLOOKUP(...),"未找到")
出错就显示"未找到",不显示错误码。
IFS函数,多条件不用嵌套,更简单
如果你用的是新版本Excel(2019以后,或者365),有个更好用的IFS。
不用嵌套括号了,直接写条件+结果:
刚才的分数例子,用IFS写:
=IFS(A2>=90,"优秀",A2>=80,"良好",A2>=60,"及格",A2<60,"不及格")
是不是清爽多了?不用数括号了。
记住:顺序还是要对,从上到下判断,满足第一个就返回。
SWITCH函数,匹配固定值,更清爽
如果你的条件是匹配固定值,比如:
1 → 星期一2 → 星期二3 → 星期三...
用SWITCH比IF清爽太多:
=SWITCH(A2,1,"星期一",2,"星期二",3,"星期三",4,"星期四",5,"星期五",6,"星期六",7,"星期日")
一目了然,不容易错。
避坑提醒
- 1. 括号要配对:几个IF就要几个右括号,漏了就报错,写的时候从左往右数一遍
- 2. 顺序不要乱:区间判断一定要从一端往另一端排,跳着写逻辑就错了
- 3. 文本要加引号:返回文本结果,一定要加英文双引号,不然报
#NAME?错 - 4. 嵌套不要太深:IF嵌套超过三层,可读性就很差了,能拆就拆成多个单元格,或者用IFS
💡 总结
| |
|---|
| IF(条件,对,错) |
| |
| IF(AND(条件1,条件2),...) |
| IF(OR(条件1,条件2),...) |
| IFS(条件1,结果1,条件2,结果2...) |
| SWITCH(值,匹配1,结果1...) |
IF是Excel最基础也最常用的函数,把这些用法吃透,大部分判断场景都搞定了。
其实不难,多写两次就熟练了。
💬 互动时间
你遇到过最复杂的IF嵌套有多少层?评论区晒晒。
话题标签:#IF函数 #Excel函数 #Excel教程 #办公技巧