在Excel里用到的IF函数嵌套其实就是在给IF函数加上参数的过程当中完成了一种多层次的条件判断,并不是简单的叠加,在此过程中形成一条条逻辑阶梯:首先看最高等级的条件是否被满足了,如果被满足了就直接给出相应的结果;如果没有被满足的话就会进入到下一级别的判断之中去继续往下走直到最后出现默认值为止。比如成绩等级计算公式为=IF(A2>=90,“优秀”,IF(A2>=80,“良好”,IF(A2>=60,“及格”,“不及格”))),三重嵌套就可以表示出四种情况的存在并且非常清楚地反映了业务规则。官方允许的最大深度为64层但是实际操作中一般不会超过三层或者五层之间,在此基础上还可以加入AND/OR来处理复杂的条件组合关系,在最新版中推荐使用IFS代替深层嵌套以达到更好的效果。

一、标准嵌套的操作流程:由简单到复杂
打开Excel工作表,在要填写公式的单元格内按下等号之后就开始编辑公式了。比如对于成绩等级划分来说,首先输入最外面一层的IF函数:=IF(A2>=90,“优秀”,然后在第二个参数的位置上再嵌套一层IF函数:=IF(A2>=80,“良好”,接着再嵌套一层IF函数:=IF(A2>=60,“及格”,最后加上一个结束符:“不及格”。每一层的IF后面都要有一个右括号来匹配前面的左括号,并且一共需要三个这样的右括号来关闭三层结构。完成上述操作后按回车键使公式生效并进行计算得出结果。为了防止出错可以一边写作一边数着括号的数量或者利用公式栏右边的“插入函数”按钮帮助自己检查语法层次是否正确。
第二部分是复合条件嵌套技巧,即AND和OR的运用
如果需要同时符合多个条件的话,就用AND函数把所有的条件都包起来。比如评价“双优学生”的公式是=IF(AND(A2>=90,B2>=95),"双优生",IF(AND(A2>=80,B2>=90),"达标生","待提升")),其中AND保证了成绩和出勤率都要达到要求。如果是只要任何一个条件成立就会产生结果的话,就用OR函数代替AND函数,比如=IF(OR(C2<60,D2<60),"有短板",IF(AND(C2>=70,D2>=70),"均衡发展","继续观察")).这里逻辑顺序很重要:高优先级的判断要放在前面,否则低门槛的条件会阻塞后面的判断过程。
第三种方法就是用IFS函数来代替IF函数,并且要找到一个合适的过渡期
如果使用的是Excel 2019或者Microsoft 365版本的话,建议用IFS函数代替复杂的嵌套。它的语法是:=IFS(条件1,结果1;条件2,结果2;……;TRUE,默认值),不需要使用大括号来包裹所有的条件,并且可以将多个条件并排列出。把上面的成绩计算公式改成如下形式:=IFS(A2>=90,“优秀”,A2>=80,“良好”,A2>=60,“及格”,TRUE,“不及格”)之后,不仅可以使公式的长度减少一半左右,而且还可以方便地添加新的判断条件,在最后加上一个逗号和新的一对条件-结果对即可,不用改变原有的括号结构。调试的时候也可以直接在公式编辑框里一行行看各个条件是否符合要求,大大降低了维护的成本。
第四部分 避坑指南:三种常见的错误以及对应的检查方式
最常见的错误就是括号不匹配了,多了一个或者少了一个右括号都会出现#VALUE!错误,在Excel里可以开启公式审核选项卡下的显示公式来快速找出问题;其次是逻辑顺序出错,把大于等于60放在大于等于90前面就会导致高分也被算作及格了,一定要按照阈值从小到大排序;第三种情况是没有给文字加上英文双引号,“优秀”没有加双引号也会出错,在检查的时候可以选择点击含有公式的单元格,按下Ctrl+`打开公式的内容查看窗口,并且使用F9键进行局部计算某一段逻辑的过程中的中间结果。
因此IF嵌套主要是为了实现层次分明、结构清晰的目的,而IFS以及AND/OR组合则是把复杂的判断还原到业务本身上来。






评论区 (0)
暂无评论,快来抢沙发吧!
发表评论