入门vlookup函数,看这一篇就够啦,4000字总结vlookup函数用法
2024-06-21 0
Vlookup函数是电子表格中的搜索和匹配功能,适用于Excel和WPS的所有版本。
在所有的函数中,vlookup函数一定是最常用的函数之一。初学者一定要掌握它。
本文从基本用法、高级用法、不匹配原因分析、如何避免错误值、不受欢迎的用法科普五个方面详细介绍了vlookup函数。希望能够帮助朋友们更快更深入的上手。他们对功能的了解。
1基本使用
语法解释
vlookup函数共有4个参数。参数1是要查找的值,参数2是搜索范围,参数3是返回的列数,参数4是匹配模式。但这并不重要。我们通过一个例子来看看各个参数效果的详细情况。
精准组合
下图中,根据左侧的信息表,使用vlookup函数匹配LyBach的年龄。如何在G2单元格中输入公式?
参数一:搜索值,找谁?
虽然最终结果是得到年龄字段,但搜索值不是年龄而是“李白的年龄”,并且主题是“李白”,所以参数1和搜索值都是“李白”,是单元格F2。
参数2:搜索区域,到哪里搜索?
关键来了:搜索区域的第一列必须是搜索值对应的列(搜索对象必须在查询区域的最左边一列)。,它对应于表左侧的“name”字段,因此参数2查找区域必须使用B列作为第一列,并拉回到包含我们需要匹配的值的列。是D列中的年龄列(也可以继续向后拖动,只要包含年龄列即可),所以参数为B:D列。
参数3:在哪一列?
这里有一个误解,很多人认为左边的重复表一共有4列(A-D列),D列列出的年龄是第4列,所以在参数中输入数字“4”。3、这是错误的。
参数3实际上是指返回值(年龄)在搜索范围内的列数,即参数2的框选择的列数。上面我们选择了B:D列,但实际上只有3列列被选中,B是第一列,C是第二列,D是第三列所以返回值“age”在第三列,并且在参数3中输入数字“3”。
参数4:匹配模式?
匹配方式分为精确匹配(输入0、FALSE或忽略)、近似匹配(输入1或TRUE)。最常见的是精确匹配,即查找“李白”而不是“李”。小白”、“李白小”,所以参数4中输入数字“0”表示精确匹配。也可以直接跳过或者输入FALSE。
在日常工作中,99%的情况都会使用vlookup函数的精确匹配,即参数4默认输入0即可。
通过上面的例子,展示了vlookup函数最基本、最实用的使用方法,最常见的两个错误是:
1、参数2/搜索范围的第一列必须是包含返回值的列;
2、参数3/列号必须是搜索区域中返回值对应的列号。
近似匹配
上面提到,99%的情况下,vlookup函数的参数4都是0,也就是完全匹配。那么,剩下的1%的情况,也需要使用vlookup函数的近似匹配。表格中适合的应用场景,就是数据分组功能。
下图中,如何根据左侧A-B列的评估表来匹配每个学生的评估?
首先,额外创建一列,在G2单元格中输入公式:VLOOKUP(F2,B:C,2,1),向下填充并完成区间匹配。
这里我们使用vlookup函数的近似匹配函数,它返回小于或等于查找值的最大值。
查找数字56相当于查找“小于或等于56的最大值”。60/80/90均大于56,只有0个小于56,因此0对应的评级返回为“不及格”;搜索数字88相当于搜索“小于等于”最大值为88”,0/60/80都小于88,但80是最大的所以80对应的排名返回好”;
最重要的一点是,在使用vlookup函数进行近似匹配之前,需要对匹配表中的数据进行升序处理,即上图中,子列B首先按升序排序(列中的数字)。上图中的B是从小到大排列的)。
由于vlookup函数使用二分法进行近似匹配,因此通常会从中间向两端搜索,并继续二分。默认情况下,数据按升序处理。
如果不是按升序排列怎么办?
下图中,匹配的字符串处于无序状态。vlookup函数用于近似匹配并返回小于或等于搜索值的最大值。正确的结果应该是a1(6是小于或等于65的最大值),但函数的返回结果是a2。
开始寻找二分法的中间部分。该范围的中间值是7。7大于搜索值65,所以我们继续向上搜索。上面的数字1小于6。5停止查找,返回对应值1。所以在做近似匹配的时候,记得按照升序处理。
2高级使用
高级用法主要是使用vlookup函数配合额外的列或其他函数来实现数据匹配。常用的方法主要分为以下几类。
在此之前,另一个重要的概念是匹配vlookup函数时的单元格引用,参数1和参数2通常与相对引用和绝对引用相关,这一点非常重要。Excel入门、相对单元格引用、绝对引用和混合引用的必读文章
搜索多列
1与列功能结合
下图中,将每个学生的性别、年龄、城市三个字段匹配在一起,直接使用COLUMN函数(返回单位列)动态返回需求列。公式VLOOKUP($F2,$A:$D,COLUMN(B2),0),其中参数1和参数2都与单元格引用相关。
2、结合关节功能
上图中要匹配的列与原始表中的列具有相同的位置顺序。这可以使用COLUMN函数来解决。如果顺序不一致,需要配合匹配函数使用。公式VLOOKUP($F2,$A:$D,MATCH(G$1,$A$1:$D$1,0),0)注意参考方法。
match函数返回搜索值在数组中的位置。例如,搜索字段“性别”位于数组“A1:D1”中的位置2,因此vlookup函数的参数三等于2。
上述两种方法都是通过动态改变参数三来进行多字段匹配。
反向搜索
由于vlookup函数的参数2的原因,搜索区域的第一列必须是搜索值对应的列,如果包含返回值的列位于搜索值对应的列的前面,那么如何使用vlookup正常情况下。无法完成匹配。
下图中,根据A-B列的数据源,E列的学生人数是匹配的。根据上一篇文章,搜索区域只能从B列开始向后拖动,但是返回的值在A列,所以肯定找不到正确的结果。
对于这种情况,我的建议是调整列的位置,例如将姓名列复制并插入到学号列之前,并将反向匹配切换为正向匹配。
当然,你也可以使用INDEXMATCH和XLOOKUP函数的组合来解决反向匹配问题。这不是我们讨论的范围。
匹配多个条件
如果多个字段匹配,您可以根据源数据添加额外的列,并使用“”连接各列中的数据。
模糊搜索
“*”是通配符,代表零到多个字符,'*'D2'*'代表任何包含关键字D2的字符串:
一对多搜索
下图中,根据B-C列的数据源,E列中该部门所有员工的姓名是相互匹配的。因为vlookup函数只能返回第一个值,那么员工的个数很多,所以用COUNTIF函数对每个部门进行编号。
子列公式B2COUNTIF($B$1:B2,B2),注意其中的绝对引用。每个零件都将标有序列号。
然后用F2输入公式VLOOKUP($E$2ROW(A1),A:C,3,0)。向下拖动公式可返回多个结果。
3、造成不匹配
显然数据在那里,但vlookup无法匹配它。
第一个常见错误是由于关节区域没有被完全引用或被更改。请匹配下图中的年龄字段。
在单元格E2中输入公式VLOOKUP(D2,A2:B9,2,0)。因为参数2没有使用绝对引用,所以当公式下拉到“赵云”时,引用区域就变成了“A4:B11”,而该区域没有这个人,当然就查不到数据了。
正确的做法是:对参数2的参考区域使用绝对参考(选择参考区域并按F4键)
第二个最常见的错误是匹配字段中包含不可见字符,例如空白字符。只需使用CtrlH即可替换空白字符。
其他错误请参考下面的文章。明明有数据,但是为什么我的VLOOKUP函数匹配不上呢?
4避免错误的价值观
如果vlookup函数与数据不匹配,则函数返回#N/A。如果要避免此错误值,可以使用IFNA或IFERROR函数。
公式IFNA(VLOOKUP(D2,A:B,2,0),'没有找到这样的人'),IFNA函数嵌套在vlookup函数的外部类中,表示结果是一个内部函数表达式(参考号1)在#N/A中,返回指定值(参数2),否则返回表达式本身的结果。
IFERROR函数的使用与IFNA类似,只是IFERROR函数比IFERROR函数更强大。有关Excel错误类型的总结,您可以参考以下文章。介绍Excel的科技文章,总结常见的表格错误类型
5不常见用法(仅供理解)
这里不常见的用法是编写公式使用起来会比较麻烦或者可能有更有效的功能可以替代它。我们来看看吧~
使用IF{1,0}函数是任何使用vlookup的孩子都必须面对的问题。
例如:反向搜索vlookup函数,公式VLOOKUP(D2,IF({1,0},B:B,A:A),2,0)
这个完全可以用matchindex函数替代(高版本可以使用Xlookup)。
例如,要匹配多个条件,公式VLOOKUP(E2F2,IF({1,0},A:AB:B,C:C),2,0)需要三个CtrlshiftEnter键才能完成公式输入。您还可以使用sumif或sumproduct函数。
不应将vlookup函数与IF函数的{1,0}一起使用。如果想了解IF{1,0}的具体原理,可以阅读下面的文章。请不要再使用Vlookup函数的此功能。
最后,我将与您分享一个提取固定数字字符串的vlookup小技巧。
在下图中,要提取A列中首先出现的手机号码,请输入以下公式:
VLOOKUP(0,MID(A2'a',ROW($1:$99),11)*{0,1},2,0),Ctrlshift输入三个键。
好了,今天的分享就到这里。如果您想了解更多,敬请关注下一期。
本站文章均由用户上传或转载而来,该文章内容本站无法检测是否存在侵权,如果本文存在侵权,请联系邮箱:2287318951@qq.com告知,本站在7天内对其进行处理。