讲讲Excel中VLOOKUP查找函数
前面几期我们讲了COUNTIF(S)、SUMIF(S)等统计求和函数以及绝对引用、相对引用的概念。今天我们讲一讲Excel的查找函数。Excel提供了很多查找函数,包括LOOKUP、VLOOKUP、HLOOKUP、XLOOKUP、FILTER等函数。
今天我们就来聊一聊Excel中使用频率最高,也是初学者最开始接触的查找函数——VLOOKUP。
VLOOKUP函数
概念
VLOOKUP的全称是Vertical Lookup(纵向查找),它的作用是在数据表的第一列中查找某个值,然后返回同一行中其他列的内容。
简单点就是告诉Excel一个关键词,Excel去指定的表里找到它,然后把同行另一列的信息带回来给你。
语法结构
公式=VLOOKUP(查找值, 查找区域, 返回列号, 匹配方式)。共有4个参数。
第1个参数:查找值(找什么)
就是你想要查找的关键词。
可以是一个具体的文本(如"张三")、一个数字(如1001),也可以是一个单元格引用(如A2)。
关键点:这个值必须存在于查找区域的第一列中,否则函数会返回#N/A错误。如果这个值在查找区域所在的那一列不是唯一值,那么会返回查找到的第一个的数据。
第2个参数:查找区域(在哪找)
就是VLOOKUP执行查找的范围,比如A2:D100。
如果数据在另一个工作表里,你也可以进行跨表查询,比如Sheet2!A:D,表示在工作簿的sheet2表的A列到D列中查找。
关键点:查找区域里要同时包含你要返回的结果所在那列。
第3个参数:返回列号(第几列)
告诉VLOOKUP要返回区域里的第几列。注意:计数从区域的第一列开始。
举个例子:如果查找区域是B2:E50,那么B列是第1列,C列是第2列,D列是第3列,E列是第4列。
关键点:如果列号写错了(比如超出了区域的总列数),就会返回#REF!错误。
第4个参数:匹配方式(精确找还是大概找)
这个参数决定VLOOKUP是精确查找还是近似查找:
0或FALSE:精确匹配——必须找到完全一致的值才返回结果
1或TRUE(或省略不写):近似匹配——返回小于等于查找值的最大值
绝大多数实际工作中,我们使用精确匹配(0/FALSE) 。近似匹配要求数据区域的第一列已经按升序排列,否则结果不可控。
示例
场景
你有一份员工信息表,A列是工号,B列是姓名,C列是部门,D列是基本工资。现在你要在另一张表中,根据工号自动查出对应的工资。

步骤
第1步:找到你要查找的关键字在哪里(比如A2)。
第2步:在你想要反馈结果的单元格(比如F2),输入公式的开头:
=VLOOKUP(A2,
第3步:框选查找区域Sheet1!$A$2:$D$101:
=VLOOKUP(A2, Sheet1!$A$2:$D$101,
第4步:指定返回第几列。工资在D列,而A2:D101中A是第1列、D是第4列,所以输入4:
=VLOOKUP(A2, Sheet1!$A$2:$D$101, 4,
第5步:设置匹配方式,输入0表示精确匹配:
=VLOOKUP(A2, Sheet1!$A$2:$D$101, 4, 0)

使用技巧
VLOOKUP用起来顺手,但新手常常遇到各种报错。下面是最常见的几种情况:
#N/A错误
这是VLOOKUP最高频的报错。原因是查找值在查找区域的第一列里不存在。
排查方法:
1.用筛选功能在查找区域第一列搜一下这个值,确认它是否真的存在
2.检查有没有多余空格——可以用TRIM函数清理一下
3.检查数据格式是否一致——比如"123"作为文本和123作为数字,在VLOOKUP看来是两个不同的值
#REF!错误
这是因为返回列号大于查找区域的总列数。比如查找区域选了B:D三列,但返回列号写了4。
解决方法:重新确认查找区域有几列,把列号改到有效范围内。
单元格引用
如果公式中没有注意相对引用和绝对引用,就容易得到错误结果。比如向下拖动公式时,相对引用会让查找区域跟着偏移,导致每一行实际查找的范围都不一样。
解决方法:
把查找区域的引用改为绝对引用——在行号和列号前加$符号,比如$A$1:$D$100。或者直接使用整列引用,比如A:D。
总结
VLOOKUP虽然强大,但也有一些不足之处:
比如只能从左到右查找,每次只能查找一列值,不能实现多列条件的匹配。
下期我们再讲一讲新版本Excel中的XLOOKUP函数,能够实现多条件查找,而且不用固定从左至右查找。
夜雨聆风