编按:IF函数常常作为工作中处理条件判断问题的首选!可是当面对需要判断的条件越多时,用IF函数写的公式就越长;越长的IF公式,写的时候需要注意的小细节就越多。这让很多小伙伴常常被困在研究长串嵌套公式的细节里,拖延了下班时间。其实,你早该淘汰这种笨拙的方法了…
工作半天,快到午休的时间了,公司同事们要么计划着中午吃什么好吃的,要么商量着吃完饭去哪儿逛一逛,只有小张一个人愁眉不展,完全没有心思想这些。只因为上午领导给他布置了一项任务——完成公司全体员工的统计,需要将员工的年龄划分成不同的年龄段,然后再按年龄段进行统计。领导说下午上班的时候就要用这个数据,可是直到同事们都出去了,小张还没把它搞定。现在的小张,已经处于崩溃的边缘了。数据如下图所示,A列为员工姓名,B列为员工年龄,C列为要计算的员工年龄段。公司全部员工的年龄范围是18岁至60岁,根据公司要求,需要将员工的年龄段具体划分为:18-20岁,21-25岁,26-30岁,31-35岁,36-40岁,41-45岁,46-50岁,51-55岁,56-60岁,一共9个年龄段。他的办法就是用IF函数一层一层地嵌套,对年龄区间依次进行判断。先判断员工年龄是否在18-20岁这个区间,如果在,则返回“18-20岁”,如果不在18-20岁这个区间,则判断员工年龄是否在21-25岁这个区间,如果在,则返回“21-25岁”,如果不在21-25岁这个区间,则判断员工年龄是否在26-30岁这个区间……然后就这样一个区间一个区间判断下去,直到完成所有年龄段的判断。IF函数是Excel中的基础函数了,小张原以为这是一个简单的事儿。可是,小张在写IF函数的过程中,他感觉简直不能更崩溃了。- 因为IF函数嵌套的层数太多,经常写着写着,就忘记写到哪一层了;- 随着嵌套层数的增加,函数中的括号越来越多,一不小心少写或多写一个,就出错;- 年龄段的返回值需要用引号括起来,引号中还要汉字,所以就要在汉字和英文输入法间来回切换,也很麻烦;- 还有就是,没写完的函数,在Excel中不能进行保存,如果一不小心碰到其他的单元格,则前面辛辛苦苦写下的嵌套函数就白写了。总之,种种意想不到的状况,导致小张一上午就把屁股“粘贴”在工位上了,心塞!临近下午上班时间,同事们陆续回来后,悲催的小张才终于把公式写出来了,大家感受一下:=IF(AND(B2>=18,B2<=20),"18-20岁",if(and(b2>=21,B2<=25),"21-25岁",if(and(b2>=26,B2<=30),"26-30岁",if(and(b2>=31,B2<=35),"31-35岁",if(and(b2>=36,B2<=40),"36-40岁",if(and(b2>=41,B2<=45),"41-45岁",if(and(b2>=46,B2<=50),"46-50岁",if(and(b2>=51,B2<=55),"51-55岁","56-60岁< span="">"))))))))那么,有没有什么函数,能够高效地解决小张面临的这个问题呢?当然有了!答案就是那个人见人爱、花见花开的函数界的“大众情人”——VLOOKUP函数。不过,更确切地说,应该是VLOOKUP函数的模糊查询功能。只需要在C2中输入 “=VLOOKUP(B2,E:F,2,1)”即可。下面,大家就来具体学习一下公式是如何通过VLOOKUP模糊查询功能来实现小张需求的。关于模糊查询,有一个很简单但是很重要的概念:查询小于等于某值的最大值。可能有一点绕,小伙伴们可以多读几遍这句话,并把它记牢。打一个形象的比方,如果有重要的宾客来公司访问,在理论上应由公司一把手接待,如果一把手在的话,则由他接待;如果偏巧一把手不在的话,那么应由职位上小于等于一把手的那个领导——也就是公司二把手接待,说白了,就是“老大在家找老大,老大不在找老二”。对模糊查询的概念有了理解之后,接下来,就该研究研究如何操作了。熟悉VLOOKUP函数的小伙伴们都知道,VLOOKUP函数的第一参数,是查询值,在本例中,即为B列中的员工年龄;VLOOKUP的第四参数,是查询方式,其为0时,是精确查询,其为1时,是模糊查询,因为要本例中我们要使用的是VLOOKUP函数的模糊查询功能,所以第四参数为1。现在,四个参数就已经确定了两个。接下来,大家来看一下第二、第三参数应该是什么?大家知道,VLOOKUP函数的第二参数是查询区域,而第三参数是返回值在查询区域中的列序号,所以,只要第二参数(即查询区域)确定了,第三参数就应运而生了。所以,问题就转化为,我们要构建一个查询区域来作为VLOOKUP函数的第二参数。如果这个查询区域构建出来,就可以顺利解决小张面临的问题了。笔者构建了一个查询区域,如下图中E列、F列所示。E列中的数据为分段点,它的值,分别是各个年龄段的起始值。F列中的数据为分段点对应的就是分段内容,在本例中即为年龄段。这里面有一个逻辑,就是如何将分段点和分段内容对应起来。分段内容是一种标识,它用来标识各分段点所对应的区间段,一般来说,分段内容标识的是分段点(注意:包含此分段点)至下一个分段点(注意:不包含此分段点)之间的数据。以18这个分段点为例,它对应的是从18岁至下一个分段点21之间的所有年龄,即 18岁、19岁、20岁,亦即18-20岁。以此类推,21对应的是21岁、22岁、23岁、24岁、25岁,亦即21-25岁……56对应的即为56岁、57岁、58岁、59岁、60岁,亦即56-60岁。下面,大家再从各个员工年龄的角度,来看一下构造出的查询区域和VLOOKUP函数之间的关系,如下图所示。假设大家要查找的员工年龄是18岁,那么查找的是小于等于18的最大值,即为18,亦即实际查找值为18,则对应的年龄段是18-20岁;假设我们要查询的员工年龄是19岁,那么查询的是小于等于19的最大值,即为18,亦即实际查找值为18,则对应的年龄段是18-20岁;其余以此类推。好了,弄清模糊查询的逻辑和查询区域的构建方法之后,接下来,大家只要写一下VLOOKUP函数的公式就行了。在C2中输入 “=VLOOKUP(B2,E:F,2,1)”,然后下拉复制填充,即可得到员工的年龄段,如下图所示。这样,通过VLOOKUP函数,就轻松地解决了小张面临的问题。而且采用这种方式,不仅写函数的时候轻松,而且函数的扩展性非常好。例如,假设公司中的员工有61-65岁的员工,如果想要对他进行年龄段判断的话,只需要再加增加一个新的分段点和对应的年龄段即可(函数不用动),如下图所示。VLOOKUP函数的模糊查询功能是对数值型数据进行分段的一个非常重要的函数,它广泛地应用于账龄、工龄、年龄、成绩、销售数量、销售金额、天数等数值型数据的分段问题中。最后,再给大家留一个小小的练习作业:请用VLOOKUP函数的模糊查询,来计算月份对应的季度。答案就提前公布在下方了,小伙伴们,赶快来练习一下吧!
想要全面系统学习Excel,不妨关注部落窝教育《一周Excel直通车》视频课或者《Excel极速贯通班》。
主讲老师:滴答