哈喽,大家好呀~
今天来给大家分享一个多条件判断的问题,利用的是VLOOKUP的第四参数, 模糊匹配。
如下图所示,A列为员工姓名,B列为员工年龄,C列为要计算的员工年龄段。
根据公司要求,需要将员工的年龄段具体划分为:1 8 -2 0 岁,2 1-25 岁,2 6 - 30 岁, 31-35 岁,3 6-40 岁,4 1 - 45 岁, 46 - 50 岁,5 1 - 55 岁,5 6 - 60 岁,共计9个年龄段。
新手一般使用IF函数进行层层嵌套。
=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="">"))))))))
别说写这个公式,是不是看到它,就让人绝望?
IF函数的难点: 嵌套的层数太多 ,极易出错。
那么,有没有什么函数,能够高效地解决这个问题呢?
当然有了!答案就是那个人见人爱、花见花开的函数界的「大众情人」——VLOOKUP函数。
更确切地说,应该是VLOOKUP函数的模糊查询功能。
只需要在C2中输入 「=VLOOKUP(B2,E:F,2,1)」即可。
下面,大家就来具体学习一下公式VLOOKUP模糊查询功。
关于模糊查询,有一个很简单但是很重要的概念: 查询小于等于某值的最大值。
这就好比是,如果有重要的宾客来公司访问,在理论上应由公司一把手接待,如果一把手在的话,则由他接待;如果偏巧一把手不在的话,那么应由职位上小于等于一把手的那个领导——也就是公司二把手接待。
「老大在家找老大,老大不在找老二」。
对模糊查询的概念有了理解之后,接下来,就该研究研究如何操作了。
熟悉VLOOKUP函数的小伙伴们都知道,VLOOKUP函数的第一参数,是查询值,在本例中,即为B列中的员工年龄;
VLOOKUP的第四参数,是查询方式, 其为0时,是精确查询 , 其为1时,是模糊查询 ,本例中我们使用的是就是模糊查询功能,所以第四参数为1。
现在,四个参数就已经确定了两个。接下来,大家来看一下第二、第三参数应该是什么?
大家知道,VLOOKUP函数的第二参数是查询区域,而第三参数是返回值在查询区域中的列序号。
笔者构建了一个查询区域,如下图中E列、F列所示。
E列中的数据为分段点,它的值,分别是各个年龄段的起始值。
下面,大家再从各个员工年龄的角度,来看一下构造出的查询区域和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函数的模糊查询,来计算月份对应的季度。答案就提前公布在下方了,小伙伴们,赶快来练习一下吧!
粉丝福利:0元课程,扫码领取学习