vlookup匹配值不唯一_教你用Vlookup一对多查找,又快又准!

319933e574a6f2389baf36be025a1712.png

常规情况下利用Vlookup查找,当数据源有多条结果时,Vlookup也只返回第一条查询结果。

这是为什么呢?首先来看一下原厂说明书中 Vlookup 的语法及参数简释

语法:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

参数简释

lookup_value 必需。要在表格或区域的第一列中搜索的值。(也就是第一参数查找的值要位于参数二table_array的第一列中)

table_array 必需。包含数据的单元格区域。(第一列中的值是 lookup_value 搜索的值)

col_index_num 必需。返回参数 table_array 中第几列的值。

range_lookup 可选。一个逻辑值,指定希望 VLOOKUP 查找精确匹配值还是近似匹配值。

要点:如果 table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用第一个找到的值。

说明书中要点里有说明第一列中有两个或更多值与查找值匹配时,则使用第一个找到的值。

SO:当遇上一对多查询时很多小伙伴就不淡定了

网上搜来的一对多查找

Index+Small+If+Row公式实在太难理解,公式辣么辣么长还得三键结束。问题是我还看不懂啊!

63fcc726ee829e04a417ee827a63f809.png

有没有简单易懂又不用数组的方法呢?

答案肯定是有的

今天小编就来给大家分享一种不用数组公式的一对多查询

Vlookup+辅助列

如下图所示,根据姓名查找对应的每笔销售明细

7b05cc0b0bd9d4f06882b727fcd383d0.png

首先,我们在姓名前面加一列辅助列

输入公式=B2&COUNTIF($B$2:B2,B2)

公式COUNTIF($B$2:B2,B2)对指定区域$B$2:B2中指定条件的单元格B2计数,

这样相当于给姓名编了个号(让每个姓名都唯一),第一个$B$2 使用了绝对引用,目的在于下拉的时候起点不变,终点一直变,这样就能统计出区域中有几个一样的名字了。如图中第一次出现的阿文就是阿文1,第二次出现的阿文就是阿文2

e23805aab315a63d719ffb58eb12c60f.png

不明白的童鞋自己动手试一试哦!可不可以1阿文,2阿文呢?

然后在G2中使用公式

=VLOOKUP($F$2&ROW(A1),$A$1:$D$20,3,0)

往下拉到足够多行(比如最大10条数据,你可以拉15行,备用5行)

效果如下图:

cf64f9e224a4a381707e69e5f26345e1.png

通过颜色对比,我们可以校验一下返回的结果对不对

公式中函数 Row(A1) 返回A1所在的行号,作用是给查询值加上一个序号,比如:F2为雨夜时,公式下过程中查找值变成了找雨夜1、雨夜2。。。实现了每行查询的都是唯一值。

第一列日期“没问题”了,就开始写第二列销售量的公式,它和和一列的区别仅仅是返回的数据列不一样,

H2中输入公式

=VLOOKUP($F$2&ROW(A1),$A$1:$D$20,4,0) 看一下效果

8ca7ce9d518ef55531fcb1dd6814d7d4.png

我们把两个公式放一起看看区别吧

=VLOOKUP($F$2&ROW(A1),$A$1:$D$20,3,0)

=VLOOKUP($F$2&ROW(A1),$A$1:$D$20,4,0)

明显的区别就是参数3 里的一个是3,一个是4,如果还需要5,6,7,8列的话就复制粘贴接着改。

有的小伙伴看到这里是不是在偷笑了,小编原来还在复制粘贴改数字呀。要是遇上列数很多肿么办?

我们先把难看的 #N/A 给解决掉,回头再来处理它。

公式外套个IFERROR容错函数来屏蔽错误值,找不到时返回空

=IFERROR(VLOOKUP($F$2&ROW(A1),$A$1:$D$20,3,0),"")

一起来看公式的效果图

ee91140b987bd2503123513465df68d7.png

怎么样,是不是“完美”了呢?

接下来改参数3,这里可以用column函数,把参数3换成 column(C$1) 因为C列是第3列,因此该函数会返回3,当我们右拉一列它会变成column(D$1),这正好返回4 ,真是太巧了,正好是我需要的3和4。

公式如下

=IFERROR(VLOOKUP($F$2&ROW(A1),$A$1:$D$20,COLUMN(C$1),0),"")

咱们来看看效果

e9cab5f4e5e531c756dda74a9c2c0c61.gif

学会了吗,看完别忘收藏转发哦~

### 回答1: Vlookup函数用于在第一个表格中查找第二个表格中的匹配项。在一对多查找中,第二个表格中的某个可能在第一个表格中出现多次。因此,在进行查找时,需要在 Vlookup 函数中设置 "range_lookup" 参数为FALSE,以确保只返回第一个匹配项。 具体的语法为:=VLOOKUP(查找,范围,列数,FALSE) 例如: =VLOOKUP(A1,Sheet2!A:B,2,FALSE) 表示在Sheet2中A列和B列中查找A1所在单元格的,如果找到就返回B列对应。 ### 回答2: 在Excel中,VLOOKUP函数是一种非常常用的函数,用于查找某个在数据表中的对应。而VLOOKUP函数中也包含一对多查找的功能,即一个查找有多个对应的情况。那么如何使用VLOOKUP进行一对多查找呢? 首先,我们需要明确一对多查找所需的条件。一对多指的是一个查找对应多个返回的情况。例如,在一个客户订单表中,同一个客户可能会有多个订单,我们需要根据客户名称查找对应的所有订单号。这就是一对多查找的场景。 在使用VLOOKUP进行一对多查找时,我们需要使用数组公式(也称为CSE公式)。具体步骤如下: 1. 在空白单元格中输入VLOOKUP函数,输入查找和表格区域。 2. 在表格区域中使用IF函数和 CONCATENATE 函数将符合要求的合并为一个单元格(如下方公式所示)。 3. 鼠标点击输入公式的单元格,并同时按下 CTRL + SHIFT + ENTER,使其成为数组公式。 例如,我们有如下数据表格: | 客户名称 | 订单号 | | --- | --- | | 小明 | A001 | | 小红 | A002 | | 小明 | A003 | | 小明 | A004 | | 小刚 | A005 | | 小红 | A006 | 如果我们按照“小明”进行一对多查找,需要查找的是所有的订单号。那么我们需要先按照客户名称排序,从而使同一个客户的订单排在一起。然后使用以下公式完成一对多查找: =IF(A2=A1, CONCATENATE(B1, ", ", B2), B2) 这个公式的意思是:如果这一行的客户名称和上一行的相同,那么就将上一行的订单号和这一行的订单号合并为一个单元格,用逗号分隔;否则,只返回这一行的订单号。 最后,使用VLOOKUP函数查找客户名称对应的时,需要将查询“小明”换成“小明*”,这样才能通过模糊查找匹配到所有符合条件的。 通过以上步骤,我们就能成功实现一对多查找的功能。需要注意的是,在使用数组公式时,如果数据量过大,计算速度会相对较慢,需要耐心等待。 ### 回答3: Excel Vlookup函数是一种广泛使用的函数,它用于查找、定位并返回数据表中的,这些可能在同一工作簿中的不同工作表或数据区域中。Excel Vlookup一对多查找功能是一种非常有用的功能,它允许用户在多个数据范围中查找目标,以便定位与该目标对应的多个一对多查找在许多情况下都很实用。例如,在处理财务或销售数据时,一个客户可以有多个订单或多个交易记录。通过使用Excel Vlookup一对多查找功能,用户可以轻松地查找所有这些订单或交易记录,以便帮助他们更好地管理他们的数据。 实现Excel Vlookup一对多查找功能非常简单。首先,需要准备一个包含目标和要查找的数据范围的表格。然后,在Vlookup函数中设置正确的参数,指定数据范围以及目标所在的列。最后,使用Ctrl + Shift + Enter键来执行公式,以确保Excel Vlookup返回到多个。 例如,假设我们有一个数据表,其中包含客户名称和对应的订单编号。我们想要查找名为“John”的客户的所有订单编号。可以使用以下公式: =IFERROR(INDEX($B$2:$B$9,SMALL(IF($A$2:$A$9="John",ROW($A$2:$A$9)-1,""),ROW(1:1))),"") 在这个公式中,“IF”函数用于匹配客户名称,如果名称匹配,则返回该行的行号。然后,“SMALL”函数使用这些行号来检索所有匹配的订单编号。最后,使用“INDEX”函数返回这些订单编号,并使用“IFERROR”函数处理任何错误。 总之,Excel Vlookup一对多查找功能可以让用户更加方便地管理数据,特别是在需要处理大量数据的情况下。使用正确的参数和公式,用户可以在Excel中轻松地查找和定位目标,并从中提取所需信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值