2023年12月17日发(作者:)

VLOOKUP函数的八大经典用法,使用方法及实例详解,记得收藏

VLOOKUP函数,在EXCEL表格里使用频率特别高的一个函数公式,有多种用法,可以用来单一条件查询数据,或是多条件查询,既可一对一查询,也可一对多查询,区间查询,模糊查询等等,除了查询数据之外,还可以将两个表格的数据进行匹配,使用用途多多,下面我们就来看看这个函数到底该如何使用。

功能:用于查找指定值所对应的另一个值。。

结构:=VLOOKUP(查找值,查找范围,第几列,匹配方式)

说明:1、第一参数:查找值,即按什么查找,在第二参数查找范围中要位于第一列,可以直接输入文本或是单元格引用;

2、第二参数:查找范围,即查找的数据区域,建议设置为绝对引用,如果需要拖动公式时,区域固定不会因为拖动公式而变化从而造成结果不正确;

3、第三参数:第几列,也就是返回的结果在查找范围也就是第二参数中位于第几列,包含隐藏的列;

4、第四参数:匹配条件,若为0或FALSE代表精确匹配,1或TRUE代表模糊匹配;

5、查找值在数据表中多次出现,导致有多个结果,正常情况下函数仅会返回第一个找到的结果。

下面我们通过一些例子来具体看看这个函数如何使用。

方法一:常规查询

如图所示,在表格的右侧通过编号查询左侧表格编号对应的数量。

函数公式:=VLOOKUP(G2,B2:C18, 2,0)

公式解读:第一参数G2是查找值,也就是产品编号。

第二参数B2:C18是查找范围,以产品编号作为第一列。

第三参数2指返回的结果是第2列,即数量列。

第四参数0也就是精准匹配。

方法二:整行查询

通过产品编号,查询左侧表格里对应编号的数量、单价、金额。

公式:=VLOOKUP($G$2,$B$2:$E$18,COLUMN(B2),0)

这个和上个例子比较接近,多了两列查询结果,为避免一直修改公式,故这里使用函数“COLUMN(B2)”取代直接输入列号,这样往右拖动公式就会自动更新列号。

公式解读:

参数1“$G$2”即产品编号,添加绝对引用符号,拖动公式不会变更。

参数2“$B$2:$E$18”即查找范围,这里从产品编号列开始,一直到金额列结束,添加绝对引用符号,拖动公式不会变更范围。

参数3“COLUMN(B2)”使用了COLUMN函数自动返回B2单元格的列号是2,随着公式往右拖动,会自动变更为3列(单价)、4列(金额)。

这样设置好数量的公式后,往右拖动公式即可自动返回单价和金额。

方法三:反向查询

正常的查询,查找值在第一列,查找结果是第一列或往右数的列,但现在要根据编号查询对应的日期,日期在原始表格的左侧,我们称之为反向查询。

如果不介意原始表格的列顺序的,遇到这种情况,我建议在原始表格里将日期和产品编号列调下位置后按常规查询方法操作,毕竟两列调下位置也就超级简单的事。

但遇到原始表格不能调整次序的情况,反向查询公式:

=VLOOKUP(G6,IF({1,0},B2:B18,A2:A18),2,0)

这里多使用了IF函数,重新构建了一个区域,将产品编号B2:B18放到了第一列,而将日期列A2:A18放到了第二列,然后就相当于常规查询的方式进行查找。

IF的第一参数是{1,0}时,相当于把条件成立的和不成立的放到一起,构建为一个内存数组,1代表条件成立的时候,0代表条件不成立的时候,{1,0}形成2列,相当于B列与A列互换位置。这里仅是通过函数公式调整了两列的位置,表格的次序不变。

方法四:多条件查询

如图所示,仅使用产品编号去查询数量,得到的结果并不唯一,原始表格里有三个日期都有A010001这个编号,故这里查询值需要根据日期和产品编号两个条件来确定。

函数公式:=VLOOKUP(G10&H10,IF({1,0},A2:A18&B2:B18,C2:C18),2,FALSE)

公式解读:

参数一:G10&H10 使用连接符号“&”将日期和产品编号组成了一个文本串。

参数二:IF({1,0},A2:A18&B2:B18,C2:C18),同样使用IF函数构建了一个内存数组,“IF({1,0}”将条件成立和不成立放在一起,条件成立的时候,将日期和产品编号用连接符号连接在一起形成第一列,条件不成立的时候,数量列形成第二列。

参数三:返回IF函数构建的内存数组的第二列即数量列。

参数四:FALSE或是0都可以,表示精准查询。

方法五:模糊查询

使用VLOOKUP函数,也能通过通配符进行精准查询。

如图所示,左侧表格里B开头的产品编号就一个,故VLOOKUP函数查找的时候,第一个参数查找值可以使用通配符“*”代替完整编号。

公式:=VLOOKUP(G13,B2:D18,2,0)或=VLOOKUP("b*",B2:C18,2,0)。

唯一需要注意的是第一个参数“B*”,表示的意思就是B开头的产品编号。

在EXCEL表格里除了“*”表示任意字符,还可以使用“?”来表示具体多少个字符,一个“?”表示一个字符,几个字符就用几个问号。

方法六、两表匹配查找无销量数据

左侧是一张销售明细表,右侧是所有的产品编号,想知道哪些产品没有销量。

函数公式:=IFERROR(VLOOKUP(K2,$B$2:$B$18,1,0),"无销量")

公式解读:VLOOKUP(K2,$B$2:$B$18,1,0),通过VLOOKUP函数去销售表里匹配是否有对应的产品编号,有则返回相同的编号,无,则返回“#N/A”错误值。

VLOOKUP函数外头套上IFERROR函数,如果遇到错误值“#N/A”,则返回“无销量”,这样表格里显示“无销售”对应的产品编号就是我们要查找的没有销量的数据了。

方法七:区间查找

对表格里销量分成了四个区间,如右侧的辅助等级表格,在等级表格的左侧添加一列辅助列,设置为下限,输入每一个区间的下限值,注意这里一定要按升序的方式进行排列。

在左侧表格里销售等级列输入函数公式:=VLOOKUP(C2,$N$2:$P$5,3,1)

公式解读:

参数1“C2”即左侧表格的数量。

参数2“$N$2:$P$5”即右侧等级表格,下限值作为第一列和左侧表格里的数量列匹配,添加绝对引用,防止拖动公式的时候,查找区域变更。

参数3“3”即等级表格里的第三列,等级。

参数4“1”或“TRUE”表示模糊匹配,因为这里左侧表格里的数量和右侧等级表格里的下限并不是完全匹配,而是根据左侧表格里的数量在右侧等级表里查找最接近但又小于或等于查找值的下限值,并返回第三列的等级结果。

方法八:一对多查询

左侧表格同一个产品编号可能对应多个日期的数据,正常情况下VLOOKUP函数查询到第一个结果后就不再继续查找了,那如何能将所有的结果都查询出来呢?

这里就必须在查询表格里创建辅助列,将每一行的数据变成一个唯一值。

辅助列A2单元格内输入公式“=C2&COUNTIF($C$2:C2,C2)”,即使用COUNTIF函数计算每一行产品编号出现第几次出现,再用连接符号“&”将产品编号和出现的次序编号组合在一起,形成唯一值。如A2单元格内辅助列的编号是“A0100011”,A7单元格辅助列的编号是“A0100012”,A9单元格辅助列的编号是“A0100013”,这三行数据产品编号虽然相同,但通过辅助列形成了三个唯一的编号。

右侧输入公式:“VLOOKUP($L$2&ROW($A1),$A$2:$F$18,COLUMN(C2),0)

公式解读:

参数1:$L$2&ROW($A1)用查找值“产品编号”和ROW($A1)行号组合,形成和左侧表格辅助列相同的产品编号,注意绝对符号的运用。

参数2:$A$2:$F$18查找区间,添加绝对引用符号。

参数3:COLUMN(C2),通过COLUMN返回对应的列号,这样方便往右拖动公式,列数自动增加。

参数4:0或FALSE都行,表示精准查询。

M2设置好公式后,选中单元格,往右拖动公式直到金额列为止,查找到第一个符合条件的数据。

选中整行,往下拖动公式,直到出现“#N/A”错误符号,即表示表格里不再有符合条件的数据。

如果不想显示出“#N/A”符号,可以在VLOOKUP函数的外面套上IFERROR函数,完整公式如下:=IFERROR(VLOOKUP($L$2&ROW($A1),$A$2:$F$18,COLUMN(C2),0),"")

这样,只需要修改L2的产品编号,右侧就会自动将查询结果呈现出来。

怎么样?VLOOKUP函数的使用方法你都学会了吗?常见的8种操作方法,你都掌握了吗?看懂了还可以实际操作下噢。