同事做绩效表,A 列是分数,要在 B 列显示等级:90 分以上优秀,75 分以上良好,其余合格。他把三个条件一股脑塞进一个 IF,回车弹出「此公式有问题」。这类if函数三个条件怎么填的问题,关键在顺序。

三个结果只需要两层嵌套

IF 的结构是 IF(条件, 成立时返回, 不成立时返回),第三个参数里再放一个 IF,就形成了嵌套。上面这个需求写成 =IF(A2>=90,「优秀」,IF(A2>=75,「良好」,「合格」)),实际输入时把「」换成英文半角双引号。两层就够,因为最后一个分支兜底,不需要再判断。

条件顺序不能反

写成 =IF(A2>=75,「良好」,IF(A2>=90,「优秀」,「合格」)) 就错了。95 分先撞上大于等于 75,直接返回良好,后面那层永远轮不到。判断区间要从大到小或者从小到大排好,保证前面的条件不会把后面的结果吃掉。

真有四个结果怎么办

如果还要加一档「不及格」,就在最后兜底的位置再套一层:=IF(A2>=90,「优秀」,IF(A2>=75,「良好」,IF(A2>=60,「及格」,「不及格」)))。层数越多越容易漏括号,写完数一数左括号和右括号是不是一样多。Excel 2019 以后可以用 IFS,写法是 IFS(A2>=90,「优秀」,A2>=75,「良好」,A2>=60,「及格」,TRUE,「不及格」),读起来清楚不少。

排错先看这三处

公式不报错但结果不对,先看引号是不是中文的,再看比较符有没有写反,单元格是不是文本格式也别漏。文本格式的数字参与比较,结果经常出人意料。if函数三个条件怎么填,说到底就是排好顺序、套对层数、括号配对,剩下的交给下拉填充。

公式往下拖,A2 会变成 A3、A4,这是相对引用在起作用。如果等级标准写在另外的单元格里,比如 F1 是 90、F2 是 75,就要用 $F$1 这样的绝对引用,不然拖到下一行标准也跟着跑。分数列有空值时,IF 会把它当 0 处理,直接判成不合格,最好在外面再包一层空值判断挡一下。Excel 的嵌套层数上限是 64 层,正常表格远用不到,别为了炫技把公式写成迷宫。