赶报表那天卡在if函数多个条件怎么用,对着表格来回删公式,一会报错VALUE!,一会返回的结果完全乱套,折腾快一小时。

最开始想偷懒,直接在一个if里面堆一堆判断,把大于90、大于80、大于60全部塞在第二个参数里,回车直接炸。以为逗号多打了,反复删改符号,越改越乱,单元格的错误提示一直挂在那。

别堆在同一层。

if函数多个条件:嵌套写法实操

当时做成绩评级,A列是分数,规则:90及以上为优秀,80~89良好,60~79及格,低于60不及格。一开始没搞懂顺序,先写了判断大于60,结果所有60分以上全部判定成及格,后面的判断根本不会执行。

后来才反应过来,if嵌套是从上往下依次判断,一旦满足前面条件,公式直接停止运算,后面的条件不会再读取。所以条件必须从高到低排,不能乱序。当时写出来能用的公式是=IF(A1>=90,"优秀",IF(A1>=80,"良好",IF(A1>=60,"及格","不及格"))),敲完回车,单元格一下就出对结果。

还有一种情况不是分级判断,需要同时满足两项要求,就不能单纯嵌套,要搭配AND。当时再加一条规则,分数≥85并且出勤达标才算优秀,直接套AND放第一个判断参数,=IF(AND(A1>=85,B1="出勤"),"优秀","普通")。

if函数多个条件:嵌套与AND/OR对比

写法适用场景注意点
IF嵌套互斥分级判断,分数、等级这类条件顺序不能颠倒,嵌套层数有上限
IF+AND多个条件必须同时成立任意条件不满足,整体判定为假
IF+OR满足任意一个条件即可只要一项成立,整体判定为真

同事看我写嵌套,说新版Excel可以用IFS,不用反复写IF。试了下=IFS(A1>=90,"优秀",A1>=80,"良好",A1>=60,"及格",TRUE,"不及格"),代码看着清爽很多,但发到老版本的办公电脑打开,直接报错,那台电脑是2016版Excel,不支持IFS函数。

之后传文件给别人,就优先写IF嵌套,兼容性会好不少。之前踩过这个坑,做好的表格发给别的部门,对方打开全部公式失效,又重新改一遍。

关掉表格的时候,屏幕右下角的时间已经快到下班点,手里鼠标还停留在公式编辑栏,不想再去改别的单元格。