Hello,大家好,今天我们来解决一个vlookup的痛点,相信很多人都遇到过,先来看下今天的例子,如下图所示,当我们需要查找多列结果的时候,只能使用vlookup来一列一列的查找,非常的耗费时间,那么有没有什么方法能使用一次vlookup就能找到所有的结果呢?当然有了,今天就跟大家分享下解决方法
微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新
- 类型:办公软件
- 大小:2.2GB
- 语言:简体中文
- 时间:2024-09-12
查看详情
一、观察公式差异
首先我们先来观察下公式的差异,分别查找下李白的籍贯与性别,看下这2个公式的差异有哪些,以便总结规律
查找籍贯公式为:=VLOOKUP(D13,$A$1:$K$10,6,FALSE)
查找性别公式为:=VLOOKUP(D13,$A$1:$K$10,7,FALSE)
通过观察我们可以发现,这2个公式的唯一不同的只有第三参数,vlookup第三参数的作用是查找结果所在的列数,如果我们可以自动的获取vlookup的第三参数,就可以实现利用1次vlookup就能查找的所有的结果,想要实现这个效果我们需要用到match函数
二、match函数的使用方法
Match函数:返回数值在数组区域中的位置
语法:=MATCH(lookup_value, lookup_array, [match_type])
第一参数:查找值第二参数:查找的数据区域第三参数:匹配类型,在这里我们直接写0即可,0就表示精确匹配说白了match函数的作用就是查找数据的位置,在这里我们需要利用match找一下查找项目在数据源表头中的位置,比如在这里我们查找一下籍贯在数据源表头中的位置,只需要将公式设置为:=MATCH(E13,A1:K1,0)即可,他的结果正好是6,这样的我们就可以将match函数嵌套进vlookup的第三参数中,达到自动获取第三参数的效果
跟大家简单的讲解下这个公式的计算过程,公式为:=MATCH(E13,A1:K1,0)
- 第一参数:E13 ,就是查找值,在这里它对应的值为籍贯
- 第二参数:A1:K1。就是查找的数据区域,它对应数据源表头这个区域
- 第三参数:0,表示精确匹配
Match函数的作用是查找数据的位置,在数据源表头的这个区域中,籍贯在第6个位置,所以函数的结果就是6,这个就是函数的计算过程
三、嵌套公式
前面已经说了,我们只需要将match函数嵌套进vlookup的第三参数中即可使用1次函数查找多列结果,因为我们需要拖动填充函数,还需要设置相应的单元格引用方式,在这里我们需要在E14单元格中将公式设置为: =VLOOKUP($D14,$A$1:$K$10,MATCH(E$13,$A$1:$L$1,0),FALSE)
,然后向右拖动,向下填充即可找到所有的结果,下面跟大家简单的讲解下这个公式的参数
这个公式主体上是一个vlookup函数,在vlookup函数中嵌套了一个match函数,所以我们先来看下vlookup函数的参数
- 第一参数:$D14,查找值,需要注意的是在这里需要锁定字母标号
- 第二参数:$A$1:$K$10,查找区域,需要注意的是查找区域进行绝对引用
- 第三参数:MATCH(E$13,$A$1:$L$1,0),返回的结果列,用mtach来自动获取
- 第四参数:false,表示精确匹配
随后再来看下match函数的参数
公式:MATCH(E$13,$A$1:$L$1,0)
- 第一参数:E$13,查找值,在这里需要锁定数字标号
- 第二参数:$A$1:$L$1,查找的数据区域,表头所在的数据区域,需要绝对引用
- 第三参数:0,表示精确匹配
以上就是这个公式的所有参数,我们只不过是把match函数放进了vlookup函数的第三参数中,让它帮助我们自动的获取第三参数罢了,因为需要拖动函数,还需要特别注意数据的引用方式,大家可以动手试一下,还是比较简单的。
补充案例:
举个工作中的例子来说明,左边是记录流水数据,会一直更新数据然后我们想查找匹配每种商品,最后一次操作人是谁
1、Vlookup无法解决如果我们使用VLOOKUP公式查找匹配,=VLOOKUP(E2,B:C,2,0)你会发现,当表格中能查找匹配多个值时,它只会返回第一次出现的结果
遇到这种情况,有2种解决方法解决方法一:使用lookup函数公式lookup公式也是可以用来查找匹配的,它的万能通用公式是:=lookup(1,0/(查找值=查找列),结果列)它的查找逻辑和vlookup正好相反,遇到多个查找值时,它是从下向上查找匹配的,所以我们使用的公式是:=LOOKUP(1,0/(B:B=E2),C:C)
解决方法二:XLOOKUP公式XLOOKUP公式只出现在新版本的里面,如果没升级的话,是不能使用的,它的使用用法是:=XLOOKUP(查找值,查找列,结果列,查找不到返回结果,匹配方式,搜索方式)如果说我们,只输入XLOOKUP公式前3个参数,那也是从上向下匹配的:=XLOOKUP(E2,B:B,C:C)
但是,它很灵活,当你想要从下向上搜索的时候,只需要将它的第6个参数,输入-1,就可以了我们输入的公式是:=XLOOKUP(E2,B:B,C:C,,,-1)
关于这个小技巧,你学会了么?动手试试吧!