1、初识VLOOKUP函数
VLOOKUP 是在表格的首列查找指定的值,并由此返回表格当前行中其他列的值。
我们可以用一种简单的方法先记住VLOOKUP函数的参数:
=VLOOKUP(需要找的内容,用来查找的数据表,返回数据表中第几列的内容,匹配的方式)
要注意的是:其中需要找的内容一定是在数据表的最左列,查找结果要精确匹配的话,第四个参数要写FALSE或是0。
接下来用几个示例来进一步说明VLOOKUP函数的用法。
下图为某公司的员工信息表,有N多行数据,我们需要找出某员工的一些记录。
2、查找指定姓名的职务信息
我们将需要查找的姓名记录在单元格F3中,G3单元格公式为:
=VLOOKUP(F3,$B$1:$D$10,3,0)
以姓名所在列开始向右数,员工职务在第3列,故第三个参数为3。
因为我们想要精确的找到丘处机的职务,即第四个参数采用精确查找的查找方式,所以需要写为FALSE,或者简写为0。
如果需要了解该员工的详细记录的话,可以继续在其他单元格里写公式,当然第三个参数会有变化,比如要查询部门信息,就应该写成2。
那如果想更轻松的去书写公式,有没有更好的方法呢?
回答是肯定的,只要找到一种能帮我们自动返回列序号的函数就可以了。
3、查找指定姓名的全部信息
现在,咱们需要分别查询丘处机的部门和职务信息。
为了能够在写好一个公式后,用复制的方法快速把其他公式写完,我们用COLUMN函数帮我们来数VLOOKUP的第三个参数——列序号:
=VLOOKUP($F3,$B$1:$D$10,COLUMN(B1),0)
COLUMN函数可以返回指定单元格的列号。
公式中使用了COLUMN|B1),计算结果就是B1单元格的列号2。
COLUMN函数的参数使用了相对引用,向右复制的时候,就会变成COLUMN(C1),计算结果就是C1单元格的列号3,这样就给了VLOOKUP函数一个动态的第三参数。
最后,将COLUMN函数与VLOOKUP拼合在一起,再把公式复制到其他单元格,就可以很容易的查找到该员工的全部资料了。
4、查找模糊条件的信息
VLOOKUP函数的第一参数可以使用通配符。
如下图中,F3单元格给出了部门关键字,G3就可以根据这个关键字查找到数据表中第一条符合这个条件的信息。
=VLOOKUP(F3&"*",C2:D10,2,0)
这样咋一看,咱们可能觉得VLOOKUP函数的第一参数还是挺随和的。那是不是真的像咱们想的那样呢?
5、查找内容区分格式
一起看下图:
F3单元格是员工的工号,G3单元格使用以下公式用于返回该工号的员工姓名:
=VLOOKUP(F3,A1:D10,2,0)
咱们看公式本身是没有问题的,但是却返回了一个错误值,这是什么原因呢?
看出问题来了吗?
需要查找的值和数据表中的格式一个是文本,一个是常规,VLOOKUP函数较真儿了——不一样,就是不一样。
6、查找内容区分格式
前面咱们说的都是精确匹配,近似匹配方式在什么情况下会用到呢?
近似匹配主要用于数值类的查询,如下图所示,A~C列是一些业务流水记录。现在要统计出每个月最后一笔业务金额。
首先,在E3单元格输入4月份的月末日期“4-30”,然后下拉,在填充选项中选择“按月填充”。
接下来选中E3:E6,设置数字格式,自定义为“m月”。
在F3单元格输入以下公式,下拉:
=VLOOKUP(E3,A:C,3)
VLOOKUP函数使用近似查询时,要求查询区域的首列必须是升序排序的,在找不到关键字“4-30”这个日期时,就以比这个日期小,并且与这个日期接近的记录来进行匹配。这样就找到每个月的最后一笔记录了。
最后咱们来做一下总结:
VLOOKUP函数五个特点
1、VLOOKUP函数查找值支持使用通配符("?"号和"*"号)进行查询,但查找值不能使用数组作为参数来生成内存数组。
2、第4个参数决定了是精确还是近似查找方式。
如果为0(或FALSE),用精确匹配方式进行查找,而且支持无序查找;如果为1(或TRUE),则使用近似匹配方式进行查找,要求第2个参数的首列或首行按升序排列。
3、第3个参数中的列号,不能理解为工作表中实际的列号,而是指定返回值在查找范围中的第几列。
4、如果查找值与数据区域关键字的数据类型不一致,会返回错误值#N/A。
5、如果有多条满足条件的记录时,只能返回第一个满足条件的记录。