【史上最全】VLOOKUP函数应用教程
职场一族在日常工作中经常需要对数据进行查询调用,VLOOKUP函数是工作中使用频率超高的查询函数之一,可谓Excel函数中的大众情人。
本文完整详尽的介绍了VLOOKUP函数的技术特点和应用方法,除了原理和基础性讲解外,还提供了大量贴近工作场景的案例,介绍并剖析掌握Excel函数与公式的技巧,帮助读者加深理解,便于在自己的实际工作中直接借鉴和使用。
由于正文字数限制,本教程给出Excel案例和公式解法,对公式的原理解析和详细说明请点击本文底部的“阅读原文”获取。
适用对象:本文面向的读者包括所有需要用到查找引用数据的用户,无论是初入职场的应届毕生生,还是在职场拼杀多年的白领精英,都将从本文找到值得学习的内容。
软件版本:本文的写作环境是Window10家庭版操作系统上的简体中文版Excel 2013。本文绝大多数内容也适用于Excel的早期版本(2010、2007和2003),或者英文版和繁体中文版,所以读者大不必因自用版本不同而过多担心。
本文学习要点
1、VLOOKUP函数语法解析
2、VLOOKUP函数单条件查找
3、VLOOKUP函数多条件查找
4、VLOOKUP函数查找返回多列数据
5、VLOOKUP函数从右向左查找
6、VLOOKUP函数按数据所处区间划分等级
7、VLOOKUP函数使用通配符模糊查找
8、VLOOKUP函数多层级条件嵌套查找
9、VLOOKUP函数按指定次数重复数据
10、VLOOKUP函数返回查找到的多个值
11、VLOOKUP函数在合并单元格中查找
12、VLOOKUP函数提取字符串中的数值
13、VLOOKUP函数转换数据行列结构
14、VLOOKUP函数疑难解答提示
1、VLOOKUP函数语法解析
▼
VLOOKUP 基础用法是搜索某个单元格区域的第一列,然后返回该区域相同行上任何单元格中的值。
VLOOKUP 中的 V 表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用VLOOKUP
语法结构:
VLOOKUP(lookup_value,table_array, col_index_num, [range_lookup])
初学的小白们不要一看这么一串语法就蒙圈了,其实很简单,我翻译一下就是:
VLOOKUP(找什么,在哪找,找到后返回其右侧对应的第几列数据,精确还是模糊查找)
这样一看是不是清晰多了?
具体的语法说明大家按F1看帮助文档吧,我就不再复制粘贴在这里占用篇幅了。
需要说明的一点是,Excel中的帮助信息也有错误,比如在插入函数功能中VLOOKUP第四参数的说明就是错的,大家注意不要被误导哦!如下图:
红框部分帮助错误,应改为:如果为FALSE或0,精确匹配,如果为TRUE或忽略,大致匹配。
为了保护好大家的学习兴趣,更清晰的了解VLOOKUP函数什么时候用?以及怎么用?我们结合案例来看。
2、VLOOKUP函数单条件查找
▼
根据单条件进行数据查找是最基础也是最常见的需求了。我们来牛刀小试。
看如下案例,工作中的数据源为A:B两列,分别放置业务员姓名和对应的销售额,当我们需要按照业务员查找其对应的销售额时,就要用到VLOOKUP函数了。
表中黄色区域为公式所在位置,以E2单元格公式为例
=VLOOKUP(D2,$A$2:$B$12,2,0)
这个公式是标准的VLOOKUP函数的基础应用方法,每个参数都没有变形,所以很方便初学者获悉这个函数最原始的含义和作用。
第一参数:找什么(或者说按什么查找),按业务员查找,所以输入D2
第二参数:在哪找,数据源区域在A:B列,所以输入$A$2:$B$12
第三参数:找到后返回第几列,我们要查找的是销售额,销售额位于B列,即第二参数中的第二列,所以输入2
第四参数:这里要精确查找,所以输入0
翻译过来就是
=VLOOKUP(要查找的业务员,包含业务员和其销售额的数据源区域,找到后返回第2列,精确查找)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
3、 VLOOKUP函数多条件查找
▼
上一节中我们学会了单条件查找,小伙伴们自然想到了,如果有多个条件要同时满足怎么办?
其实很简单,你可以在数据源左侧创建一个辅助列,将多个条件用&符号连接起来作为条件查找列。
如果数据源左侧不允许插入列,或者你想直接用一个公式搞定多条件查找,自然也有办法啦,下面结合一个案例来介绍这种方法。
看如下案例,工作中的数据源为A:C两列,分别放置水果、产地和对应的销售额,当我们需要同时按照水果和产地查找其对应的销售额时,就要用到VLOOKUP函数的多条件查找技巧了。
表中黄色区域为公式所在位置,以G2单元格公式为例
输入以下数组公式,按<Ctrl+Shfit+Enter>组合键结束输入。
=VLOOKUP(E2&F2,IF({1,0},$A$2:$A$12&$B$2:$B$12,$C$2:$C$12),2,0)
注意:这个公式是数组公式,如果直接按Enter键输入会返回#N/A错误值。
新人一定搞不懂啥叫数组公式呢?这里科普一下吧。
Excel中的公式分普通公式和数组公式。
普通公式不多说啦就是大家最常用的,输入公式后直接按Enter结束输入。
数组公式是为了应对一些比较复杂的计算,需要对一组或者多组数据执行多项计算,返回一个值或者一组值的公式,这样的公式输入完成后需要按<Ctrl+Shfit+Enter>组合键结束输入,公式两侧会自动出现一对大括号{},标识这个公式是要按照数组运算模式来计算的。
当鼠标定位在公式所在单元格进入编辑状态时,大括号就消失了,当我们按ESC键退出编辑状态时大括号就又重新出现了。
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
4、VLOOKUP函数查找返回多列数据
▼
单条件查找会了,多条件查找也学了,都是输入一个公式然后向下复制填充一列的形式,如果有多列数据需要根据查找值调取对应数据,那么如何输入一个公式就能搞定一个区域的数据调用呢?
这个案例告诉你答案。
下图中左侧表格是数据源区域,需要在右侧区域根据业务员姓名调取对应的科目成绩,黄色区域是需要填写公式的区域。
这个案例中,我们观察到右侧的科目顺序和数据源一致,都是从数学到体育,如果我们用最笨的方法一列一列写公式固然可以实现目的,但当需要查找的列很多时无疑是一项大工程。
这里给出一个简单实用的公式,选中H2:K5单元格区域,输入以下公式后按<Ctrl+Enter>组合键。
注意是组合键同时按下,而不要只按Enter键哦!
=VLOOKUP($G2,$A$2:$E$12,COLUMN(B1),0)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
5、VLOOKUP函数从右向左查找
▼
工作中免不了遇到数据源中要调取的数据在查找值所在列的左侧,我们知道VLOOKUP函数的常规用法是从左往右找,那么遇到这种需要从右往左查找的问题如何解决呢?
下面的表格中,我们需要按照给出的编号查找对应的业务员姓名,黄色区域输入公式。
看到这个场景,有的小伙伴或许说,虽然VLOOKUP函数只能从左往右找,那干脆把数据源里面的编号列改到左边不就行了吗?
你想的没错,这样是可以实现的,但以下几种情况下还是学会一个公式一步到位的比较好:
1、当数据源格式不允许改动时
2、当这项工作出现的频率较高,你懒得每次都要重新改数据源,想一劳永逸时
3、当你想除了基础用法之外,多学点高逼格用法时,哈哈
所以说技多不压身,多学一手,何乐而不为呢?书归正传,先给出公式,再解析原理。
F2单元格输入以下公式后向下复制填充。
=VLOOKUP(E2,IF({1,0},$B$2:$B$12,$A$2:$A$12),2,0)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
6、VLOOKUP函数按数据所处区间划分等级
▼
工作中除了精确查找外,模糊匹配也经常遇到。我们结合下面这个案例来学习模糊匹配技巧。
下面表格中左侧是数据源区域,需要按照等级划分规则,将成绩划分到其对应的等级中。
等级划分规则如下:
[0,60): D
[60,80): C
[80,90): B
[90,100]: A
看到这里,很多小伙伴一定想到用IF多条件嵌套来解决,没错,使用IF是可以实现的,比如这两个公式都能实现我们的需求。
=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=60,"C","D")))
=IF(B2<60,"D",IF(B2<80,"C",IF(B2<90,"B","A")))
但是当划分规则更多时,编辑公式的时候需要一层一层的嵌套,用IF书写公式简直变成了体力活。
有没有更简便的办法呢?当然,只要学会VLOOKUP模糊匹配技巧就可以了。
我们用以下公式就可以实现IF多层条件嵌套同样的结果了。
=VLOOKUP(B2,{0,"D";60,"C";80,"B";90,"A"},2)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
7、VLOOKUP函数使用通配符模糊查找
▼
当我们在工作中遇到需要只根据查找值的一部分进行查找时,记得可以利用通配符的特性来实现。
下面结合一个案例来介绍。
表格中左侧是数据源,需要查找业务员名字中带“强”的人的销售额。
通配符星号*通配任意个字符,问号?通配单一字符,这个案例中模糊查找的规则是只要名字中带“强”就可以,所以我们需要使用“*强*”这种形式,支持“强”字出现在任意位置。
E2公式为:
=VLOOKUP("*强*",$A$2:$B$12,2,0)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
8、VLOOKUP函数多层级条件嵌套查找
▼
遇到多层级条件嵌套查找,很多人第一时间想到的是IF多条件嵌套,还有些高手想到的是LOOKUP函数查找,其实VLOOKUP函数也可以搞定。
比如下面这个案例,我们要根据会员的消费金额查找其所处的会员等级。
当消费金额处在两级会员等级之间时,按较低一级的等级算,比如消费金额3333,处于会员等级三级和四级之间,那么该会员属于三级会员,只有达到5000消费金额后才算四级会员。
E2输入以下公式,向下填充。
=VLOOKUP(D2,$A$2:$B$8,2)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
9、VLOOKUP函数按指定次数重复数据
▼
工作中一些复杂场景会遇到按指定次数重复数据的需求,如下图所示。
D列黄色区域是由公式自动生成的重复数据,当左侧的数据源变动时,D列会按照指定的重复次数自动更新。
这里使用的是一个数组公式,以D2为例,输入以下数组公式后按<Ctrl+Shfit+Enter>结束输入。
=IFERROR(VLOOKUP(ROW(A1),IF({1,0},SUBTOTAL(9,OFFSET(A$2,,,ROW($1:$3))),B$2:B$4),2,),D3)&""
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
10、VLOOKUP函数返回查找到的多个值
▼
我们都知道VLOOKUP的常规用法下,当有多个查找值满足条件时,只会返回从上往下找到的第一个值,那么如果我们需要VLOOKUP函数一对多查找时,返回查找到的多个值,有办法实现吗?答案是肯定的。
让我们结合案例来看。
下面表格中左侧是数据源,当右侧D2单元格选择不同的著作时,需要黄色区域返回根据D2查找到的多个值。
在这里,我先给出遇到这种情况最常用的一个数组公式
E2单元格输入以下数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
=INDEX(B:B,SMALL(IF(A$2:A$11=D$2,ROW($2:$11),4^8),ROW(A1)))&""
这是经典的一对多查找时使用的INDEX+SMALL+IF组合。
用VLOOKUP函数的公式,我也给出,E2输入数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
=IF(COUNTIF(A$2:A$11,D$2)<ROW(A1),"",VLOOKUP(D$2&ROW(A1),IF({1,0},A$2:A$11&COUNTIF(INDIRECT("A2:A"&ROW($2:$11)),A$2:A$11),B$2:B$11),2,))
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
11、VLOOKUP函数在合并单元格中查找
▼
合并单元格,这个东东大家在工作中太常见了吧。
我个人是极其讨厌合并单元格的,尤其是在数据处理过程中。但这并不能避免跟合并单元格打交道,因为数据源来自的渠道太多了,遇到了合并单元格也不能影响到我们的数据处理和分析过程。
下面结合一个案例,介绍合并单元格中如何使用VLOOKUP函数查找。
大家注意到左侧的班级列包含多个合并单元格且都是3行一合并,右侧的查找是根据班级和名次进行双条件查找。注意是从合并单元格中查找哦。
最简便的办法是在数据源左侧做个辅助列,将合并单元格拆分并填充,这就回归到前面介绍过的多条件查找的用法了。这个案例我们不创建辅助列,也不改动数据源结构,直接使用公式进行数据提取。
G2输入以下公式
=VLOOKUP(F2,OFFSET(B1:C1,MATCH(E2,A2:A10,),,3),2,)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
12、VLOOKUP函数提取字符串中的数值
▼
工作中有时会遇到从一串文本和数值混杂的字符串中提取数值的需求,如果字符串比较多而且经常变动,与其每次都手动提取数值,就不如写好一个公式实现自动提取。当数据源更新时,公式结果还能自动刷新。
下面的案例中,可以看到字符串中包含的数值各式各样,有整数也有一位小数、两位和多位小数,还有百分比数值,使用公式都可以一次性批量提取(百分号提取出来默认按照小数形式显示,可以设置格式改变显示方式)。
首先给出数组公式,在B2输入以下数组,按<Ctrl+Shift+Enter>组合键结束输入。
=VLOOKUP(9E+307,MID(A2,MIN(IF(ISNUMBER(--MID(A2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},2)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
13、VLOOKUP函数转换数据行列结构
▼
VLOOKUP函数不光能查找调用数据,还可以用来转换数据源的布局,比如将行数据转换为多行多列的区域数据,如下面案例。
数据源位于第二行,要将这个1行20列的行数据转换为黄色区域所示的4行5列的布局。
选中P5:T8单元格区域,输入以下区域数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
=VLOOKUP("*",$A$2:$T$2,((ROW(1:4)-1)*5+COLUMN(A:E)),0)
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
14、VLOOKUP函数疑难解答提示
▼
在使用VLOOKUP函数的过程中,很容易遭遇公式返回错误值的困境,下面这些错误值总结了最常见的问题,介绍产生错误原因的同时还给出了排除错误值的方法。
(更详细的公式原理解析和说明请点击本文底部的“阅读原文”获取)
李锐
微软全球最有价值专家MVP
新浪微博Excel垂直领域第一签约自媒体
百度名家,百度阅读认证作者
每日分享职场办公技巧教程
高效工作,快乐生活!
微博@Excel_函数与公式
微信公众号(ExcelLiRui)