发布时间:2022-11-08 文章分类:Excel函数 投稿人:赵颖 字号: 默认 | | 超大 打印

IF函数似乎是每个使用Excel的人都必须掌握的函数了,如果连IF函数都不会,真的不好意思说自己会用Excel呢。

不过从平时群里的提问来看,关于IF函数的用法,确实还存在着一些小问题,今天就再来说说IF函数的本质和多个IF嵌套时需要注意的问题吧。

IF函数的本质

在实际使用中,往往需要根据某个判断或者比较得到不同结果,例如:当成绩大于或等于60分时,结果为及格,当成绩小于60分时,结果为不及格。通过比较运算或者判断可以得到一个逻辑值(详见手册第2课),IF函数的功能就是根据逻辑值来得到不同的结果。

IF函数需要三个参数,完整的格式为:

=IF(要判断的条件,条件成立时显示的内容,条件不成立时显示的内容)。

第一参数可以是逻辑值或者是数字,当数字为0时,视为FALSE,当数字非零时,视作TRUE;

第二个和第三个参数可以是任意内容,常量或者公式,当第一个参数为TRUE时,IF得到第二个参数的内容,否则得到第三个参数的内容,如图所示。

IF函数你都不会用,还敢说熟练使用Excel?

IF函数就好像一个假设句,满足某个条件就这样,否则就那样。

例如成绩大于或等于60分为及格,小于60为不及格,这句话我们换成假设句就是:如果成绩大于60,及格,否则不及格。

将这个假设句代入IF函数就是:

IF(成绩大于或等于60,及格,不及格)

假如成绩在A2单元格,公式为:

=IF(A2>=60,”及格”,”不及格”),如 -2所示。

IF函数你都不会用,还敢说熟练使用Excel?

IF函数的本质是按照第一参数设置的条件对数据进行分类。

例如想得到两种结果,及格或不及格,就需要把数据分成两部分,条件可以是A2>=60,也可以是A2<60。

条件不相同时,公式也要做对应的调整,上图中的公式也可以写成:=IF(A2<60,”不及格”,”及格”),如下图所示。

IF函数你都不会用,还敢说熟练使用Excel?

当条件涉及数字的比较时,临界值一定要特别注意,例如:成绩大于60及格,小于60不及格,这样分类就有问题,60分的算及格还是不及格?

两个IF如何嵌套

通常使用一个IF函数可以根据条件得到两种结果,如果需要得到三种结果,例如:成绩大于或等于85为优秀,小于85大于或等于60为合格,小于60为不合格,就需要使用两个IF函数来实现。

对于新手来说,嵌套使用两个IF时经常出错,以下介绍一个能有效避免出错的方法。

还是以三种结果为例,首先简化为两种情况,判断是否及格,优秀也看作是及格,公式为:

=IF(A2>=60,”及格”,”不及格”)

然后再去判断是否为优秀,公式为:

IF(A2>=85,”优秀”,”及格”)

将后面这个IF替换第一个IF的第二参数,完成后的公式为:

=IF(A2>=60,IF(A2>=85,”优秀”,”及格”),”不及格”)

验证这个公式的结果正确,如图所示。

IF函数你都不会用,还敢说熟练使用Excel?

公式=IF(A2<60,”不及格”,IF(A2<85,”及格”,”优秀”))

与公式=IF(A2<60,”不及格”,if(a2>=85,”优秀”,”及格”))都可以达到同样的结果,但后面一个公式看上去总是感觉有点别扭,因为使用了不同的比较运算符,同时返回的三种结果不是按顺序排列的。

在使用多个IF进行嵌套时,尽量使用相同的比较方式,结果也按照升序或者降序排列是一种很好的习惯。

公式=IF(A2>=60,”及格”,IF(A2>=85,”优秀”,”不及格”))表面看上去没什么问题,但是结果总是无法得到“优秀”,如图所示。

IF函数你都不会用,还敢说熟练使用Excel?

这种错误是使用IF嵌套时很容易发生的,原因在于当条件是A2>=60的时候,数据被分成两组,大于或等于60的都是第二参数,小于60的都是第三参数。在这个公式中,第三参数才去判断是否大于或等于90,显然不会有满足条件的结果,所以不可能出现优秀。

这是常犯的一种逻辑顺序错误,可以遵循规律避免错误:用大于号时条件降序,用小于号时条件升序。意思是使用“>”或“>=”比较时,条件按85→60递减的顺序;使用“<”或“<=”比较时,条件按60→85递增的顺序。

提示:使用多层IF嵌套时,要求有非常清晰的逻辑,此时往往需要转换思路,用其他函数取代多个IF嵌套的公式,后文在介绍相关函数时会有对应的案例。