小伙伴们好啊,今天咱们说一个看起来特别简单,但是用处特别大的函数——IF。 如果有妹纸问你,这个周末准备怎么过? 你会说:看天气情况吧,不同的天气,我的选择也不一样。 每个包含“如果……那么……否则……”的句子,在Excel的公式中,都可以使用IF函数将其翻译成Excel的“语言”,改写成Excel的“公式”,就是: IF(周末是晴天吗?和朋友去郊游,去书店看书) 当然,这不是一个正确的Excel公式,但却是IF函数思考和处理问题的逻辑。在这个“公式”中,IF函数就扮演了“如果……那么……否则……”这组关联词的作用,而Excel处理IF函数的过程,就像你在岔道口选择道路一样。 每个IF函数,都像一条一分二的岔道。公式每次走到IF的岔道口,都会对设置的条件进行判断,再根据判断的结果是TRUE还是FALSE,决定下一步前进的方向。 当你需要在多种结果中选择一个时,可以让IF函数替你完成。 例如,要为B2中的学生成绩评定等次,等次只有两种:“及格”和“不及格”。评定的标准为:如果分数达到60分,那么评定为及格,否则评定为不及格。 如果想让IF函数替你解决这个问题,公式可以写为: Excel收到你输入的公式后,便会按你指定的评定标准去评定成绩的等次。 无论是用语言,还是文字,在描述一个问题时,都应该注意语序。“如果”和“那么”的后面应该是什么内容,并不是随意的,否则会影响表达效果。 “如果”的后面是要判断的条件,“那么”的后面是条件成立时返回的结果,“否则”的后面是条件不成立时返回的结果。只有按这个规则去设置IF的各个参数,Excel才会明白你的意图。 IF共有3个参数,每个参数扮演不同的角色,只有参数设置正确,Excel才会明白你的意图。 单个的函数作用和功能都是比较单一的,在解决实际问题时,往往需要多个函数嵌套使用,接下来再和大家分享几个常用的IF函数嵌套组合。熟悉这些嵌套函数的使用,提高效率一丢丢还是有可能的。 如下图,要对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函数最终返回TRUE。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<B2<50000,'温饱型','待考察') 为什么出现误判呢? 其实这不怪IF,是咱们的写法有问题了。 上面这个公式中,IF函数的第一参数10000<B2<50000,运算过程为: 先判断10000<B2,结果得到逻辑值TRUE,然后再使用TRUE与50000进行比较。根据Excel中的潜规则,逻辑值是大于任何数值的,所以这一步就会返回逻辑值FALSE,而IF函数也最终返回第三参数的内容了。 正确的公式应该是这样的: =IF(AND(10000<B2,B2<50000),'温饱型','待考察') 或者: =IF(AND(B2>10000,B2<50000),'温饱型','待考察') 除了上面这些基础的内容,IF函数函数还被广泛应用到数组公式中,这些内容咱们就留着以后再说啦。 好了,今天的内容就是这些,祝各位小伙伴一天好心情! 图文制作:罗国发 祝洪忠 本文部分素材选自图书《别怕,Excel函数其实很简单》 |
|
来自: hercules028 > 《excel》