花了3个小时,我帮你梳理了VLOOKUP函数的所有技巧!

大家好,我是雅客。
VLOOKUP函数是我们在职场当中非常好用的神器之一,它有多种的使用方法,也有很多的坑,我们花了3个小时,帮你梳理了VLOOKUP函数使用的所有方法,以及可能你使用过程可能会遇到的坑。
如果你想学会VLOOKUP函数,看这一篇文章就足够了!
这篇文章有点长,在这里我们就为各位准备了这篇文章的结构图。
01
使用条件

要想了解一个函数,我们就需要清楚知道,在什么样的情况下,我们可以使用VLOOKUP函数,也就是VLOOKUP函数使用的条件是什么?
VLOOKUP函数使用的条件有三个:
1、有两张工作表
2、表一当中缺失的内容,能够在表二里面找到
3、两张表有共通的字段
只要满足上面的三个条件,我们就可以使用VLOOKUP函数,缺一不可。
我们来看一个具体的案例:
上面这个案例当中,就有两张表,左边这张是员工信息表,右边这张是工资表。
而且两张表都有共通的字段,就是【编号】
另外,右边这张工资表缺失的工资信息,能够在左边这张表当中找到。
满足了上面这三个条件,我们就可以使用VLOOKUP函数。
02
函数参数

VLOOKUP函数的表达式是:

VLOOKUP(查找的值,查找区域,返回列号,查找模式)
我们来看一个具体的案例:
在上面这个案例当中,我们通过函数公式:=VLOOKUP(F3,B3:D18,3,0)
查找出编号为CP006员工的工资为4760。
那么这个公式怎么理解呢?

【F3】:代表我们要查找的值
【B3:D18】:代表我们查找的数据区域范围,注意这里不包含标题。
【3】:代表返回的列号。
这里要注意,这个列号是我们选定区域的列号,不是Excel表的列号。
我们选定的区域是编号-部门-工资,一共是有3列,我们查找的值【工资】在该区域的第三列,所以返回的列号为3。
如果是按照表格的列号来看,工资所在的列是D列,D列是第四列,如果返回的列号录入为4,那么公式的结果就会出错。
【0】:代表查找的模式,其中0代表精确查找,1代表模糊查找。
这里涉及到两个定义,解释一下:
精确查找:就是查找的数是一对一的关系,A查找的就是A,B查找的就是B,两个数是完全相同的。
模糊查找:查找的是近似关系,A可以查找B,B可以查找C,不是一一对应的关系的。
以上就是VLOOKUP函数各个参数的定义以及使用的方法。
03
常用使用场景

1、根据员工编号,查询员工手机号码
在下面这个列表当中,我们要如果要根据员工编号,查询员工的手机号码,那么则可以在J3单元格录入公式:
=VLOOKUP(H3,$B$3:$E$18,4,0)
这个公式表示:
1、查找H3单元格的值,也就是查询员工编号。
2、在B3到E18区域查找,就是在左侧的表格内查找,这里同样不包括标题。
3、查找的结果在第4列,也就是我们要查找的是手机号码。
4、最后是0,表示精确查找。
录入完以上公式,我们再往下进行录入,即可把所有的员工的手机号码查询出来。
2、根据学生编号,查询学生档案信息

在下面的工作表中,我们要根据学生的编号,查询得到后续的学生档案信息,而且学生编号是乱序的,想一个个地去找不太可能。

在下面的工作表中,我们要根据学生的编号,查询得到后续的学生档案信息,而且学生编号是乱序的,想一个个地去找不太可能。

这个时候我们就可以使用VLOOKUP函数来实现批量查询。

我们在J24单元格录入函数公式:=VLOOKUP($I24,$B$24:$G$31,2,0)
这个函数公式表示:查找I24单元格的值,在B24到G31区域中查找,返回结果在第二列,以精确模式来查找。
随后我们往右边拖动公式的时候,记得修改下结果返回的列号就可以了。
这样我们就完成了查找的值不在查找范围内的第一列信息的效果。

04
VLOOKUP函数常见的错误

错误一:查找的值不在查找范围内的第一列

如下图所示,我们要查找雅客的工资是多少,通过VLOOKUP函数,我们得到了一个错误值。

其中的函数表达式为:=VLOOKUP(B7,E7:H8,2,0)

这里为什么会出错了呢,因为我们查找的姓名,不是在查找范围内的第一列。

我们查找的区域E7到H8,第一列是序号,而我们查找的是姓名,所以它就产生了错误。

我们把查找的区域调整一下,将公式中原本的E7:H8改成G7:H8,那么就可以解决这个错误问题。

错误二:查找的值或者范围没有进行锁定

查找的值或者范围,没有进行锁定,也是导致VLOOKUP函数查找出错的常见问题。

比如在下面这个表中,因为我们没有对查找的值进行锁定。所以后续字段在查找的时候,就以前面一个单元格的值来进行查找。

这个时候查找的值就已经不是我们预想的值了,所以VLOOKUP函数查找就会出错。

遇到这种需要横列或者纵列拖动公式的情况,你应该先检查一下查找的值有没有锁定。
怎么锁定呢?
就是通过光标选中公式中的该单元格,然后按键盘上的F4键来进行切换,在这里我们只要锁定列就可以了,行不用锁定,所以我们就让美元符号出现在字母前面。
锁定了列之后,我们再往右边拖拉公式,查找的值就不会再进行移动了。

错误三:返回的列号不正确引起的错误

返回的列号不正确,也会引起VLOOKUP函数在查询的时候出错。

比如还是上面的例子,我们录入完第一个公式的时候,往右边去拖拉公式,结果你会发现,后面得到的所有结果,都是一样的。

这是怎么一回事呢?
其实就是由于VLOOKUP函数的第三个参数,它不是引用的参数,而是一个固定的值,固定的值是不会随着我们拖拉公式,产生改变的。
所以后面所有的结果,都是返回第二列,那么结果自然会出错。
在查询的字段信息比较少的情况下,我们可以通过手动更改第三个参数的值,来让它返回正确的列号。
但如果查找的字段过多,我们就可以借助其他函数,来实现引用的效果了,这个后续会再跟大家介绍。
错误四:查找的值与区域的值格式不统一

查找的值与区域的值格式不统一,这种错误,常常出现在一些学员的表格上。
比如下图,明明公式是没有问题的,查找的值跟区域的值都一样,为什么会产生错误呢?
在该案例当中,数据公式确实没有错。
问题就出在,B5单元格的格式是文本格式,要查询的区域E5:H6当中的E6单元格是数字格式这里。
一个是文本格式,一个是数字格式,系统就会判断他们是两个不同的值,那么结果就自然会出错。
修正的方法就是:把B5单元格的格式改为数字格式,那么就可以让结果显示正确了。
错误五:单元格内有空格、换行等情况。

如果单元格内有空格和换行的情况,就跟上面的问题一样,不容易察觉,但这也是导致VLOOKUP函数出错的原因。
如下图所示,这两个公式看起来也是没啥问题,可结果却是错误的。

问题的根源就出在B6单元格的值,多了一个换行符,导致该单元格与E7单元格的格式不同,结果就出错了。
解决的方法就是:把B6单元格的换行符删除掉,如果换行、空格的情况比较多,可通过查找替换的功能,查找换行符或空格,替换为那里不填写,那么就可以实现批量地修改。
错误六:单元格内有类空格但非空格的字符

如下图所示,下面这个表格,跟上面几个错误也是同样,公式是正确的,但查询的结果却出错了,那么多半是格式问题。

细心的朋友,可以看到在B5单元格,数字2的左上角,又一个绿色的光标,这绿色的光标,就代表该单元格可能是文本格式。
我们点击该单元格,你会发现在公式栏中,在数字2的前面还有一个英文的单引号,而该单引号在默认情况下,都是会隐藏的。

这个就是导致最终查询结果出错的原因。
解决的方式:利用查找替换功能,把单引号的字符都替换为空值,那么结果即可查询正确。

  错误七:模糊查找引起的错误

VLOOKUP函数的最后一个参数是查找模式,在不填写的情况下,默认是按照模糊查找的方式来查找的。

所以下面这个案例,就出现了一个这样的错误。
明明在数据源当中没有序号3,但是却能查找到对应的工资出来。
为什么会产生这样的问题呢?

究其根源,就是该同学在录入公式的时候,忘记VLOOKUP函数还有第四个参数。
而第四个参数,正是决定VLOOKUP函数使用精确查找还是模糊查找的重要条件。
如果你不录入第四个参数,系统就会默认按照模糊查找的模式来查找,那么最终看似也能把结果算出来,但很可能你得到的都是错误的答案。
所以一定要记住,VLOOKUP函数是有四个参数的。

错误八:不支持方向查找引起的错误

在VLOOKUP函数当中,不支持反向的查找,因为它违反了我们上面提到的第一个错误。
我们来看下面这个案例:
在这个公式当中,我们要根据员工的姓名,查找出他所在的部门。
而在数据源表中,部门是排在姓名的前面的。
我们以往通过VLOOKUP函数来查找,都是按照从左往右的方向来查找,在这里则是要反其道而行,从右往左进行查询,那么结果自然就出错了。
如果你硬是想要逆序查找,也不是不能,可以结合其他函数来实现,这个我们也是会在后面的内容当中,进行介绍。
06
VLOOKUP函数高阶应用

通过上面内容的学习,你已经初步掌握了VLOOKUP函数的使用方法了,接下来我们就来跟各位介绍一下VLOOKUP函数的进阶用法!
高阶应用1:区间查找

我们都知道,VLOOKUP函数查找的模式,在大众心目中都是一对一查找的,A查找的就是A,B查找的就是B。
但其实Vlookup函数可以实现这样的精确查找之外,它还可以实现模糊查找的功能。
要查找的值和查找区域的值未必都是要一一对应关系的。
我们来看下面这个案例。
在上面这个案例当中,我们要根据销售人员的销售额,自动匹配他们能够得到的提成比率。
而每个档位能够拿到的提成比率区间,则是在左边的这个表当中。
0-10000,提成比率为0
10000-20000,提成比率是3%
20000-30000,提成比率是4%
……
后面的以此类推
最高提成比率能够拿到10%。
对于这样的查找,我们如果按照过往的方式来统计,很有可能就会用到IF函数来进行判断。
但其实在这个案例当中,我们用VLOOKUP函数会快10倍!
首先我们列出每个档次的最小值。
比如:
0-10000的最小值是0。
10000-20000的最小值是10000。
20000-30000的最小值是20000。
我们在H7单元格就可以录入函数公式:
=VLOOKUP(G7,$C$7:$D$13,2,1)
这个函数公式表示的就是模糊查找,它会自动根据你的最低值,给你匹配相应的提成比率,这个就是区间查找的用法。
与这个案例类似的,你可以学生的成绩,自动给他们匹配考试的评级等。
高阶应用2:区间查找
有时候,数据量太大,我们可能已经不记得某些产品它的全称是什么了?
在不记得产品名称全称的时候,我们如何进行数据的查找和引用呢?
这时候我们就可以用到Excel当中的通配符【*】
这个【*】的通配符代表的就是任意字符串的含义。
比如:一个人,这三个字,我们就可以用一个【*】来表示。
我们来看一个具体的案例。
在这个案例当中,我们要通过我们记得的部分字段,比如【ABC】来查找出产品名称中包含【ABC】的内容,我们应该如何设置呢?
我们就可以在G8单元格录入公式:
=VLOOKUP('*'&F8&'*',$B$8:$C$14,2,0)
这个公式表示,查找包含F8单元格字符串内容的价格。
其中:'*'&F8&'*' 表示的就是分别在F8单元格的内容前后,加上一个任意字符串的通配符,来表示在F8内容的前后还有其他信息。
通过这样的方式,我们就能够实现模糊查找。
高阶应用3:区间查找
在查找的过程当中,我们可能不仅有一个条件,可能有两个或者两个以上条件,要满足这两个条件,才去匹配我们想要值,那么VLOOKUP函数能不能实现多条件查找呢?
正常情况下是不可以的,但我们可以VLOOKUP函数升级,给它添加一个武器。
比如在上面这个案例当中,我们要根据产品的日期和单号,来去查找该产品的入库数量和入库型号。
我们这里就需要用到多条件的查找。
多条件查找的解决方法跟单条件查找的模式基本一致,只是这中间我们要做一个转换,我们需要把多条件变成单一条件。
比如,原本可能是A、B这两个条件,我们通过连接符,连接AB,那么【AB】就变成的一个值。
同样,要查找的数据区域,也是可以通过连接符来进行连接,这样我们就实现了多条件与单条件的转换。
我们在I7单元格录入函数公式:
=VLOOKUP(G7&H7,IF({1,0},$B$7:$B$16&$C$7:$C$16,$D$7:$D$16),2,0)
该公式有些长,而且还用到了数组函数的概念。
没关系,我们拆分来看。
=VLOOKUP(G7&H7,$B$7:$B$16&$C$7:$C$16,2,0)
其中上面这段,表示的就是我们前面所讲的,将多条件通过连接符合并,变成单条件,但这时候,你会发现,该公式缺少结果所在的行列。
所以我们在里面就嵌套了一个IF{1,0}的数组。
1和0在Excel当中,也可以用来表示是与否的关系,也就是做出一个判断。
如果是1,表示结果成立返回的值,如果是0,表示结果不成立返回的值。
通过这个条件的判断,我们把Vlookup函数的查找区域以及结果区域分别放置在成立返回的值以及不成立返回的值,那么就能够把该公式补充完整。
所以最终的公式就是:
=VLOOKUP(G7&H7,$B$7:$B$16&$C$7:$C$16,2,0)。
07
VLOOKUP函数与其他函数的结合

单一个VLOOKUP函数其实已经蛮强大了,但我们还可以结合其他函数,来给VLOOKUP函数赋能,实现他原本实现不了的功能。
组合函数一:MATCH函数
MATCH函数的作用在于,查找某个字段在它所在字段当中的序号。
表达式为:MATCH(查找的值,查找的区域,查找模式)
比如在下面这个案例当中,我们查找【班级】字段在所在字段列表当中的第几列,我们就可以使用函数:
=MATCH(D23,B23:G23,0)
得到的结果就是3,表示班级在所有字段当中的第三列。
这个功能有什么用呢,它就可以解决VLOOKUP函数第三个参数不能引用的问题。
在前面这个案例当中,正是VLOOKUP函数第三个参数不能引用,所以才导致结果错误。
我们可以借助MATCH函数,先计算出每个字段位于字段列表当中的第几个,再嵌套到VLOOKUP函数里面,这样我们就不用手动更改第三个参数了。
最终公式为:=VLOOKUP($I24,$B$24:$G$31,MATCH(J$23,$I$23:$N$23,0),0)
其中:MATCH(J$23,$I$23:$N$23,0)部分,则是计算每个字段位于字段列表当中的第几个。
这样我们就通过函数让第三个参数具备了引用的属性。
组合函数二:COLUMN函数

如果你觉得上面一个组合函数太难了,那么这个简单的函数一定要学会。
COLUMN函数的作用是计算某个单元格所在的列号。
比如:
=COLUNM(B48)=2
=COLUNM(A12)=1
=COLUNM(C:C)=3
它返回的结果是单元格所在的列号,跟行号没有关系,A列就是1,B列就是2,C列就是3,以此类推。
这个函数同样可以解决VLOOKUP函数第三个参数不能引用的问题。
在之前的案例中,我们只需将第三个返回的列号,改成嵌套的COLUNM函数即可。
最终公式为:=VLOOKUP($I24,$B$24:$G$31,COLUMN(B2),0)
其中COLUMN(B2函数的作用就是返回该列所在的序号。
组合函数三:IF函数

下面是我们的财务报表,现在如果我们要根据上期余额,查找出对应的科目,通过Vlookup函数来计算,系统就是提示错误。
因为它违背了Vlookup函数的使用条件:查找的值,必须在查找范围的第一列。
但我们可以看到,查找的值,上期余额是在查找范围内的最后一列,所以如果我们硬要用VLookup函数去查找,就会提示错误。
既然不能逆序查找,我们就可以想办法,将这两列的数值位置进行调换。
怎么转换呢?前面我们就提到了一种方法,就是通过CHOOSE函数与VLOOKUP函数结合,利用Choose函数可以选择返回的区域的效果来调换位置。
另外一种方法,就是我们今天要提到的,通过IF函数来实现转换。
1、IF函数的运用原理
在企图用IF函数来实现位置调换的时候,我们需要理解IF函数使用的原理,哪怕我们以为对IF已经非常熟悉了。
IF函数的表达式为:IF(判断条件、条件成立返回值,条件不成立返回值)
比如下面这个案例:根据国家规定,2020年男性退休年龄为60岁,女性退休年龄为50岁。
我们在公式栏当中录入函数公式:=IF(B15='男',60,50)
这个公式表示:判断B15单元格的值是否是男,如果是男,那么就显示为True,如果是True,那么就返回条件成立返回的值60.
如果是FALSE,那么就返回条件不成立返回的值50.
所以B16单元格的公式第一步运算后的结果就是:=IF(TRUE,60,50)
C16单元格第一步运算后的结果就是:=IF(FALSE,60,50)
在Excel当中,还有一个潜规则,Ture可以用1表示,False可以用0表示。
所以上面两个公式,又可以写为:
=IF(1,60,50)
=IF(0,60,50)
但是,IF函数不仅可以返回1个单元格的值,也可以返回多个单元格的值。
=IF({1,0},60,50),结果返回60
=IF({0,1},60,50),结果返回50
所以在这其中,我们不难发现,1和0的两个数字的位置,能够影响结果返回的值。
如果1在前面,那么就返回第二个参数;
如果1在后面,那么就返回第三个参数;
利用这个规律,我们就可以解决Vlookup函数不支持逆序查找的问题了。
2、VLOOKUP逆序查找
我们在G3单元格录入函数公式:=VLOOKUP(F3,IF({1,0},D3:D9,C3:C9),2,0)
录入完公式后,记得按Ctrl SHIFT ENTER三个按键进行确认,因为这是数组函数。
我们将公式拆开来看,就是下面这样的。
=VLOOKUP(F3,{999,'现金';123,'银行存款';445,'建设银行';245,'保证金账户';633,'应收账款';234,'其他应收款';562,'固定资产'},2,0)
其中中间的'现金';123,'银行存款';445,'建设银行';245,'保证金账户';633,'应收账款';234,'其他应收款';562,'固定资产“
你可以把它理解为,就是两列数据,一列是科目,一列是上期余额,科目排在前面,上期余额排在后面。
而函数公式当中的:IF({1,0},D3:D9,C3:C9)
这一部分则表示,将D3到D9和C3到C9两列的位置进行调换。
D3和D9原本是排在后面的,现在显示到前面,C3和C9原本是在表格前面的,现在显示到后面。
通过这两列数据进行位置的调换,那么剩下的就可以按照Vlookup函数的方式,进行数据的查找了。
08
VLOOKUP的优势

看了这么多VLOOKUP函数的用法,我们来总结一下使用VLOOKUP函数的优势。
优势1:可以批量查询合并数据

VLOOKUP函数最吸引职场人的一点就是可以可以批量地查询以及合并数据,无论你是几百条还是几千条数据,无论你的字段排序有多乱,它都可以批量帮你找出来。
优势2:数据更新会产生联动效应

VLOOKUP函数的的第二大优势就是数据数据更新的时候会产生联动效应,用牵一发而动全身来形容它也不为过。
所以VLOOKUP函数也多用在财务系统的构建,通过VLOOKUP函数把多张报表串联起来,形成一张超级大的信息网络。
09
VLOOKUP的劣势

劣势1:查询方向比较单一
通过前面的案例大家也可以看到,VLOOKUP函数查询的方向一般来说只能自左往右,自上而下。
如果想要实现逆序查找,那么则要借助其他函数。
劣势2:不支持多条件查找

如果想要进行多条件查询,VLOOKUP函数本身也是不支持的,同样也是需要借助外力,这对于小白来说,比较困难。
劣势3:返回的列号不能引用
返回的列号不能引用,也是VLOOKUP函数的一大弊端,常常需要手动更改或者借助其他函数来实现, 不能一步到位。
10
VLOOKUP的未来

虽然VLOOKUP函数在此之前一直受到职场人的宠爱,但VLOOKUP函数的未来可能会逐渐淡出我们的视线。
因为Excel当中有更加强大的PV和PQ功能,不用录入公式,就能实现VLOOKUP函数的功能。
在未来,还有XLOOKUP函数,作为VLOOKUP函数的增强版,解决了VLOOKUP函数过往所解决不了的问题,使用起来更加方便。
但对于初级的小白来说,VLOOKUP函数还是我们学习Excel必备的函数之一,它能够帮助我们提升工作效率,实现多表联动,也是我们办公的好帮手!
扫码添加小助手Linda
回复关键词【练习142】领取

(0)

相关推荐

  • 使用vlookup函数时出现#n/a如何处理

    在Excel中当我们使用vlookup函数时会可能出现#N/A 错误,意思是 Not Applicable(不适用,即值不可用).那么为什么会出现#N/A 错误呢?通常,VLOOKUP 函数返回 #N ...

  • 这些Excel公式的错误写法,你有几个?

    很多人在输入Excel公式时,经常会出现各种错误,多数是对公式理解错误造成的.这里列举了我们经常遇到的一些错误形式,供大家借鉴. 1. 不存在的运算符 直接看这3个公式,我们很清楚它们的意图,分别是比 ...

  • 花了3个小时,我帮你梳理了7个文本函数的所有技巧!

    ✎ 大家好,我是雅客. 文本函数是Excel函数体系当中,非常重要的一个组成部分,可以完成文本数据信息的提取,从而帮助我们更快地完成信息的录入. 下面我们就给大家盘点一下,常用的一些文本函数,以及他们 ...

  • 花了3个小时,我帮你整理了20个超级实用的技巧,效率提升300%

    ✎ 大家好,我是雅客. 今天我们给大家介绍一下Excel当中非常好用的5个技巧,如果你平常经常用Excel,那么掌握这5个技巧更是能够帮你提升工作效率! 01 一秒快速求和 我们经常在使用excel的 ...

  • 我利用周末休息时间,花了六个小时看了市场...

    我利用周末休息时间,花了六个小时看了市场近五千只股票发现只要做好以下几百支股票就行了,大家请查阅,上部分(上)也直接给大家整理好了图,请看图!看完记得收藏! 1.白酒强势股:贵州茅台.五粮液.泸州老窖 ...

  • 花了半个小时搞定了

    forcode:我的华为P9 plus用了4年半了,微信从来没有卸载过,所有聊天记录都还保存着,因为有一些比较重要的工作方面的聊天记录,不希望失去,所以从来没卸载过微信.但是,我发现微信已经占据了我3 ...

  • 我整整花了3个小时整理出了各大板块的龙头...

    我整整花了3个小时整理出了各大板块的龙头股,趁最后一天假期好好专研,对你后期的选股操作能够起到很大的帮助,好好收藏,拿走不谢! 今天把4000多只股票都详细专研了一下,把最有投资价值的公司,以及龙头个 ...

  • 我花了三个小时整理出来的最新养老概念股一...

    记下优质的好公司,人口红利一直都在,未来十年经久不衰的公司.记得收藏好! 一.开能健康. 今日涨停,公司的原能细胞产业园已经实现了良好的规模效应,其中配有老年公寓.健康会所.医养康复中心.健康养生大学 ...

  • 就在刚刚我花了三个小时整理出了一些相关民...

    就在刚刚我花了三个小时整理出了一些相关民营医院的公司名单!大家记得收藏! 明天就要公布人口数据了,人口老龄化已然是定局,人口老龄化加剧,以中老年人为需求主体的康复医疗需求不断增加,行业空间巨大.近年康 ...

  • 炒股知识,花了3个小时收集,最全的!没有...

    炒股知识,花了3个小时收集,最全的!没有之一!想要在股市持续获利,入门知识必须懂! 没有基础,何来进阶?舍本逐末,求而不得!一定要收藏起来学习! 只懂表面,不懂原理,只会让人越炒越没有安全感!很多人都 ...

  • 花了24个小时,翻遍A股4000多家公司...

    花了24个小时,翻遍A股4000多家公司,发现一个非常现实的情况,指数虽然还在原地踏步,但是不少股民账户缩水不少! 小学的时候妈妈送我上学的时候,大盘三千多点,等我上初中了大盘依然还是三千多点,上高中 ...