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

VLOOKUP函数八大经典用法,个个都实用,快快收藏吧

在EXCEL表格里,我们经常会使用VLOOKUP函数来匹配两个表格里的表格,或是使用VLOOKUP函数依据条件来查询数据,可以说VLOOKUP函数算是EXCEL表格里使用频率较高的一个函数了,也算是一个高阶的函数,它的用法颇多,这里我们先介绍8种经典用法:

结构:=VLOOKUP(查找值,查找范围,数据列号,匹配方式)

说明:1、参数1:查找值,即按什么查找,可以直接输入文本、数值,或是引用单元格,这里可以使用通配符。

2、参数2:查找范围,即查找的数据区域,通常是固定的区域,添加绝对引用符号,防止拖动公式的时候,数据区域变动,影响查找结果,查找范围的第一列必须是以第一参数查找值。

3、参数3:数据列号,也就是返回的结果在参数2中位于第几列,包含隐藏的列,直接输入数字或是其他可返回数字的函数;

4、参数4:匹配方式,若为0或FALSE代表精确匹配,1或TRUE代表模糊匹配;

5、如果查找值在参数2中不止一个结果,仅返回第一个查找到的结果。

用法一、匹配名称(常规用法)

左侧表格里仅有产品编号,右侧是一份编号和产品名称的对应表,左侧表格里的产品名称可以不用一个个输入,使用产品编号去匹配右侧相同编号对应的名称。

函数公式:=VLOOKUP(B2,M1:N18,2,0)

公式解读:

参数1“B2”,即查找值,这里是产品编号。

参数2“M1:N18”,即查找范围,这里是右侧的产品编号和名称对应表。

参数3“2”,即参数2的数量区域里,我们要返回的是第2列数据,即名称。

参数4“0”,表示精准匹配,即参数1和参数2里的第一列数据必须完全相同,才会返回对应

的第2列数据。

注意这里的参数2,必须添加绝对引用,故函数公式应为“=VLOOKUP(B2,$M$1: $N$18,2,0)”

用法二、查询数据(常规用法)

右侧输入编号,显示出对应的单价,单价来源于左侧的表格。

公式:=VLOOKUP(H2,B2:E18,4,0)

公式解读:

参数1“H2”,即查找值,这里是产品编号。

参数2“b2:e18”,即查找范围,这里是左侧表格里从产品编号列开始到单价列。

参数3“4”,因为单价在参数2查找范围内第4列,故输入数字编号4。

参数4“0”,表示精准匹配,即参数1和参数2里的第一列数据即产品编号必须完全相同,才会返回对应的单价数据。

用法三、使用通配符实现精准匹配

右侧查询数据根据产品名称里的某个字查询单价,如查询泡泡袖外套的单价,参数1可以直接输入成“*泡*”,或是在单元格内输入查询条件“*泡袖*”,使用公式时,直接引用这个单元格。

公式:=VLOOKUP(H3,c2:E18,3,0)或= VLOOKUP(“*泡*”,c2:E18,3,0)

公式参数的解读和上方的常规查询差不多,唯一要注意的是,这里的参数一使用了通配符的方式,另外如果直接输入文本查询,添加英文状态下的双引号引住查询内容。

在EXCEL表格里有两个通配符:

“*”表示任意多个字符。

“?”表示单个字符。

具体怎么使用,还得根据实际查询的情况来判断到底使用哪一个通配符符号。

方法四、整行查询

如图所示,查询数据是要查询一整行的数据,按前面的函数公式,第三参数是一个常量,如果往右拖动公式,这个常量是不会自动递增的,需要修改每一个单元格里的公式。

那能否使用函数公式自动替换掉参数3里的列号数字,让拖动公式的时候能自动更新呢?

这里我们可以使用COLUMN函数来代替直接输入数字。

COLUMN函数是返回引用的列号,参数只有一个,即引用一个单元格,如:输入C2,则返回的列号就是数字3,即字母C对应的列号是工作表里的第三列。

在这个VLOOKUP函数公式里,使用COLUMN(B$2)函数返回的是数字2,替换直接输入常量数字,这样,拖动公式的时候,列号数字会随着单元格引用的变化而自动更新。

像这样整行查询,只需要输入第一个函数公式,就能往右拖动公式,而不再需要每一个单元格都修改公式了。

完整公式:=VLOOKUP($H$2,$B$2:$F$18,COLUMN(B$2),0)

方法五、多条件查询

前面函数参数说明也讲述了,如果查询数值在查找区域里对应的数据有多个,仅返回第一个查找到的结果,面对这种情况,我们可以加多条件,匹配出唯一的数据。

如图所示,产品编号A010001在左侧表格里有多条数据,如果仅用产品编号去查询数据,则结果不正确,添加上日期,两个条件去查询。

函数公式:=VLOOKUP(H6&I6,IF({1,0},A2:A18&B2:B18,D2:D18),2,0)

公式解读:

参数1“H6&I6”,即查找值,这里使用连接符号将两个条件,即日期和产品编号组合成一个文本串。

参数2“IF({1,0},A2:A18&B2:B18,D2:D18)”,即查找范围,这里使用了IF函数,通过IF函数{1,0},即成立和不成立的两种情况,创建一个2列的内存数组,第一列为左侧表格里日期和产品编号使用连接符号组合在一起,形同参数1,第二列是对应的数量列。

参数3“2”,即参数2构建的内存数组的第二列即数量列。

参数4“0”,表示精准匹配。

方法六、反向查询

前面讲了使用VLOOKUP函数的时候参数2的开始列必须是以参数一的查找值开头。故通常这类反向查询,我个人建议,在查找区域表格里,可以直接调整下表格列的次序,是其可以按常规查询的方法操作,简单也容易。

但凡事也有例外,如果查找区域表格的次序不能调换,则只能使用下面的函数公式了:

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

公式解读:

这个公式的难点就是在第二个参数“IF({1,0},B2:B18,A2:A18)”,但它的构建和上一个用法基本相同,理解起来也就容易了,使用IF函数构建一个内存数组,将表格里的产品编号和日期进行了对调,即产品编号是第一列,日期调整到了第2列。

方法七、区间查询

通常公司的销售提成率都是阶梯提成的,卖的越多提成也就越多。如右图的提成表格所示,在右侧的区间提成表的左侧添加一列,输入下限,即每一个区间的下限值。

左侧表格提成率这一列输入公式“=VLOOKUP(F2,$V$2:$X$5,3,1)”。

公式解读:

参数1“F2”,即查找值,这里是左侧表格里的金额。

参数“$V$2:$X$5”,即查找区域,添加的下限列作为首列,也就是左侧表格里的金额需要来匹配右侧表格里的下限。

参数3,输入数字3,即参数2的第三列也就是提成率。

参数4,这里和其他的案例不同,它使用的是模糊查找,因为左侧的表格金额并不等于提成率表格里的下限值,这里VLOOKUP函数匹配的是小于或等于下限值的数。

故,这个区间提成率表的下限列一定要按升序的方式进行排序。

方法八、一对多查询

正常情况下,如果查找值在查找区域内有多个结果,仅返回第一个结果,如果想返回全部的结果,这里就必须添加辅助列了。通过辅助列构建一个唯一的查找值。

在查找范围表格的左侧添加一列,输入函数公式“=C2&COUNTIF(C2:$C$2,C2)”,COUNTIF前面我们就学习过了,通过此函数,可以获取每一个编号出现的次数,用“C2&”连接这个出现的次数,就构建了一个唯一值。

右侧输入函数公式“= VLOOKUP($Z$2&ROW(A1),$A$2:$G$18,COLUMN(B$2),0)”。

这里的参数1,$Z$2&ROW(A1),通过产品编号和ROW函数的组合,构建了一个和查询范围内添加的辅助列一样格式的唯一值去匹配辅助列的数据。

参数3,使用函数COLUMN(B$2)返回列号,这样,设置好第一个公式后,往右拖动到金额列,返回符合条件的整行数据。

再选中整行,往下拖动,尽可能多拖动几行数据。左侧表格里多行数据都查询出来,下方的“#N/A”,则表示没有匹配的数据了。

如果不想显示出“#N/A”,在VLOOKUP函数的外侧嵌套一个IFERROR函数即可。完整公式:=IFERROR(VLOOKUP($Z$2&ROW(A1),$A$2:$G$18,COLUMN(B$2),0),"")

IFERROR函数,如果表达式是一个错误,则返回参数2中的值,否则返回表达式自身的值,这里我们将表达式错误值返回成空白单元格。

ROW函数即返回指定单元格的行号,如果忽略,则返回函数所在单元格的行号。

VLOOKUP函数还有很多用法,我们先掌握了这8大经典的、使用频率最高的八大用法,怎么样,你学会了吗?