小伙伴们好啊,今天咱们一起来认识if函数。
这个函数的作用是对指定条件进行判断,然后根据判断结果返回不同的内容,常用写法是这样的:
就相当于是:如果……,那么……,否则……
第一个参数,用大于、小于、等于等形式,来判断某个条件是否成立,判断a2单元格的数值是否大于60,b2单元格的职务是否等于“经理秘书”等等,判断的结果是逻辑值true(条件成立)或是false(条件不成立)。
第二个参数是在条件成立时返回的内容,可以是一个数字、一段字符,或者是一段其他的公式。
第三个参数是在条件不成立时返回的内容,也可以是数字、字符或是一段其他的公式。
举个例子:
要对b2单元格中的分数进行判断,大于60为“合格”,否则为“不合格”。
咱们就可以使用下面这个公式:
=if(b2>60,”合格”,”不合格”)
注意,在公式中直接返回字符时,需要在字符前后加上一对半角的双引号。
如果b2大于60,b2>60部分返回逻辑值true,if函数返回第二参数指定的字符“合格”,否则返回第三参数指定的字符“不合格”。
刚刚这个是单个条件的判断,使用if函数还能完成多个条件的判断。
如下图,要对b列的职务进行判断,如果等于“秘书”,那么补助为1000。如果不等于“秘书”,再继续判断,如果等于“助理”,那么补助为800,否则为0。
前面咱们说过,if函数的第二参数和第三参数,可以是数值、文字,也可以是一段其他的公式。
这里咱们就要将if函数的第三参数也写成一段新的if函数,实现对b列的职务执行两次判断。
=if(b2=”秘书”,1000,if(b2=”助理”,800,0))
最外层的if函数先判断 b2=”秘书” 的返回结果是不是true,如果是true,就返回第二参数指定的数值1000。
如果b2不等于秘书,“ b2=”秘书””得到false,if函数返回第三参数的内容。
哪些才是最外层这个if函数的第三参数呢?
对了,就是标记颜色的这部分 if(b2=”助理”,800,0) 。
在“ b2=”秘书””的判断结果为false时,标记颜色的这部分开始干活了,先来判断“b2=”助理””的条件是否成立,如果这部分条件判断返回的是true,则返回里面这个if函数的第二参数800,否则返回里面这个if函数的第三参数0。
计算过程大致是这样的:
接下来咱们再来看看多列条件的判断。
如下图,如果b列的岗位是秘书,并且c列的入职年限大于1,则补助1000元,否则补助为0。
这里要同时判断两列条件是不是符合,if函数功力有限,需要请天山二佬——and和or函数来帮忙。
and函数和or函数都是对多个参数返回的逻辑值执行判断。
区别在于:
当所有参数返回的逻辑值都为true时,and函数才返回true。
而or函数则是在任意一个参数返回的逻辑值为true时,就返回逻辑值true。
就像下图中,4个护士(参数)分别判断血常规正常吗?心电图正常吗?肝功正常吗?b超正常吗?
当每个护士(参数)的判断都是true时,and医生最终才会下检查结论:ok(true),正常。
下图中,4个护士(参数)分别判断血常规有问题吗?心电图有问题吗?肝功有问题吗?b超有问题吗?
当任意一位护士(参数)的判断是true时,or医生就会下检查结论:ok(true),办理住院手续吧。
回到开始的问题,咱们要对岗位和入职年限两个条件进行判断,只有当 岗位=“秘书”的判断结果为true,并且入职年限>1 的判断结果也为ture,才返回补助1000元,这里要用哪个医生呢?对了,就是and。
d2单元格输入以下公式,向下复制到d8。
=if(and(b2=”秘书”,c2>1),1000,0)
以d2单元格中的公式为例,b2=”秘书”返回的结果是false,c2>1返回的结果是true,and函数最终返回false。if函数根据and函数的结果为依据进一步进行判断,最终返回第三参数0。
假如咱们换一个判断标准,如果 岗位=“秘书”,或者 入职年限>1,就给1000元的补助,只有两项都不符合,补助才是0。
这里的判断要求是多个条件符合其一,只要把上面公式中的and换成or就可以。
=if(or(b2=”秘书”,c2>1),1000,0)
以d2单元格中的公式为例,b2=”秘书”返回的结果是false,c2>1返回的结果是true,or函数最终返回false。if函数根据or函数的结果为依据进一步进行判断,最终返回第二参数1000。
再来说说按多个范围区间判断的问题。
如下图,要根据b列的月收入进行判断。
标准为:
月收入低于10000为贫困型;
月收入在10000至50000为温饱型;
月收入大于50000为小康型。
这里要对b列的数值进行多轮判断,就要用到多个if函数的嵌套了。
咱们先把前面的判断标准整理一下,先判断b2是否小于10000,条件成立返回“贫困型”;如果b2不小于10000,那就继续判断b2是否小于50000,条件成立返回“温饱型”;如果条件仍然不成立,就是月收入大于50000的那些了,返回“小康型”。
把上面这几句话换成if函数的组合,是这样的:
=if(b2<10000,”贫困型”,if(b2<50000,”温饱型”,”小康型”))
其中红色部分的if函数,就是前面这个if函数的第三参数。先判断蓝色部分的条件,蓝色部分的条件不成立时,再判断红色部分。
执行多区间判断时,有一点需要特别注意:前面的判断条件不能包含后面的判断条件。
如果将公式写成下面这样,再看看结果,那就全部脱贫了。
=if(b2<50000,”温饱型”,if(b2<10000,”贫困型”,”小康型”))
为什么出现这种情况呢?
以b3单元格为例,如果先判断2500<50000, 条件肯定是成立的,这时候if函数返回第二参数“温饱型”,后面的就不再判断啦。
刚刚咱们是从第一节车厢开始往后找的,其实也可以从最后一节车厢往前找。
下面这个公式,就是先从最高的标准开始判断,然后逐级向下。
=if(b2>=50000,”小康型”,if(b2>=10000,”温饱型”,”贫困型”))
最后再补充一个小伙伴们经常容易出问题的地方,比如要判断b2的数值是否在10000至50000之间,符合条件返回“温饱型”,不符合条件则返回”待考察”。
下面这个公式结果显然是不对的:
=if(10000
为什么出现误判呢?
其实这不怪if,是咱们的写法有问题了。
上面这个公式中,if函数的第一参数10000
先判断10000
正确的公式应该是这样的:
=if(and(10000
或者:
=if(and(b2>10000,b2<50000),”温饱型”,”待考察”)
都可以返回正确结果。
好了,关于if函数的内容咱们就介绍这些吧,祝各位小伙伴一天好心情!