Table of contents
Excel中最令人惊叹和使用最广泛的功能之一是 VLOOKUP函数 到目前为止,我们已经学会了使用这个函数从一个单元格区域中提取单个匹配值。 你可能经常遇到这样的情况:你需要获得一个唯一标识符的所有匹配值。 在这篇文章中,我们将演示如何从一个单元格区域中使用 VLOOKUP函数 在Excel中。
下载实践工作手册
你可以下载以下Excel工作簿,以便更好地理解和自己练习。
用多个匹配项执行Vlookup.xlsx在Excel中使用多个匹配的Vlookup的2个步骤
这里我们有 马丁书店的图书记录 这个数据集包含了 书籍类型 , 书名 ,以及 作者 栏目下的一些书籍 B , C ,以及 D 相应地。
今天,我们的目标是要把每一种类型的书的所有匹配信息都拉出来,用 VLOOKUP函数 我们将分两步执行。 因此,让我们一个一个地探索它们。
在这里,我们使用了 微软Excel 365 版本,你可以根据你的方便使用任何其他版本。
📌 步骤01:为每个查询值创建唯一的名称
- 在最开始,插入一个新的列,标题为 帮手专栏 左边的查找栏 书籍类型 并在单元格中输入这个公式 B5 .
=C5&COUNTIF(C5:$C$25,C5)。
公式分解 - countif(c5:$c$25,c5) 返回范围内的单元格总数 C5:C25 ( 书籍类型 ),其中包含单元格中的值 C5 ( 小说 ).见 COUNTIF功能 详情请见下文。
- 简单地说,就是有多少本小说。 它是 7 .
- C5&COUNTIF(C5:$C$25,C5)。 将单元格中的值连接到 C5 ( 小说 )与它。
- 所以它的回报是 小说7 .
当拖动 填充手柄 工具。 C5 逐一递增,如 C5 , C6 , C7 ...但是 C25 因此,对于每个 书籍类型 剔除早期的,生成一个新的名字。
例如,在小说的情况下。 小说1 至 小说7 生成,类似的情况还有 诗歌 和其他书籍类型。
- 然后,按 进入 .
- 之后,将光标移到单元格的右下角 B5 而且会看起来像一个加号 (+) 符号。 事实上,这是 填充手柄 工具。
- 现在,双击它。
它将这个公式复制到其他单元格。 你会发现所有的查询值都有一个独特的名字,比如 小说1 , 小说2......。 诗歌1 , 诗歌2... ,等等。
📌 步骤02:使用VLOOKUP函数
- 首先,创建一个新的列,其中包括 专栏标题 作为查询值。
- 其次,在单元格中插入以下公式 G5 也就是这一列的第一个单元格。
=VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)),$B$5:$E$25,3,FALSE)
公式分解 - countif($c$5:$c$25,g$4) 告诉你范围内有多少个单元格 C5:C25 ( 书籍类型 )包含单元格中的值 G4 ( 小说 ).
- 简单地说,就是总共有多少部小说。 它是 7 .
我们使用了区域的绝对单元格引用 C5:C25 ( 5美元:25美元 ),因为我们想让它在复制公式到任何单元格时保持不变。
- INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) 成为 INDIRECT("A"&7) 并返回单元格引用 A7 请看 INDIRECT功能 详情请见下文。
- ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25, G$4)) 现在变成了 ROW(A1:A7) .见 ROW功能 详情请见下文。
- 它会返回一个数组,从 1 至 7 喜欢 {1, 2, 3, 4, 5, 6, 7} .
我们用 $A$1 因为我们不希望在复制公式到另一个单元格时它会发生变化。
- G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)) 现在将单元格中的值连接到 G4 ( 小说 )与由 ROW功能 并返回另一个数组。
- 所以它的回报是 {小说1, 小说2, ..., 小说7}。 .
- VLOOKUP(G$4&ROW($A$1:INDIRECT("A"&COUNTIF($C$5:$C$25,G$4)),$B$5:$E$25,3,FALSE) 成为 VLOOKUP({Novel1, Novel2, ..., Novel7},$B$5:$E$25,3,FALSE) .
它搜索数组的每个值 {小说1,小说2,......小说7}。 在查找栏中 B .
然后,它将返回相应的小说名称,从 第三届 栏(如 col_index_num 是 3 因此,我们得到一份所有小说的清单。
- 像往常一样,按 进入 钥匙。
请注意。 这是一个数组公式,所以别忘了按 Ctrl + Shift + Enter 除非你是在Excel 365中 .
而对于其他 书籍类型 ,
- 起初,将他们的名字并排插入,作为 专栏标题 并拖动 填充手柄 .
阅读更多。 Excel中的INDIRECT VLOOKUP
类似读物
- VLOOKUP不工作(8个原因& 解决方案)
- Excel中的LOOKUP与VLOOKUP:有三个例子
- 为什么VLOOKUP在存在匹配时返回#N/A? (5个原因& 解决方案)
- 在Excel中使用多条件的VLOOKUP(6种方法+替代方法)
- Excel VLOOKUP查找列中最后一个值(含替代方法)
在Excel中使用多个匹配的Vlookup的替代方法
如果前面的方法看起来很危险,不要担心。 还有更多的选择。
1.使用FILTER功能
这的确是最简单的方法。 在这里,我们将只使用 滤波功能 遵循这些简单的步骤。
📌 步骤。
- 首先,写下 书籍类型 作为 专栏标题 并在单元格中输入以下公式 F5 .
=filter($c$5:$c$25,$b$5:$b$25=f$4)
公式分解 在这里。
- 5美元:25美元 ( 书名 )是指 lookup_array 我们在找书的名字,你用你的名字。
- B$5:B$25 ( 书籍类型 )是指 匹配数组 我们希望与书的类型相匹配。 你相应地使用你的一个。
- F4 ( 小说 )是指 matching_value 我们要与小说相匹配。 你要相应地使用它。
- 然后,按 进入 .
现在,如果你想 书名 的所有 书籍类型 ,
- 最初,插入他们的名字作为 专栏标题 并排排列,然后拖动 填充手柄 工具。
2.应用 INDEX、SMALL 和 ROWS 函数的组合(与旧版 Excel 兼容)。
ǞǞǞ 滤波功能 只适用于 办公室365 所以,如果你使用旧版本的Excel,不要担心。 我们为你准备了另一个解决方法。 它很简单,很容易,只要跟着做就可以了。
📌 步骤。
- 主要是,插入 书籍类型 作为 专栏标题 在细胞中 F4 并在单元格中输入这个公式 F5 .
=iferror(index($c$5:$c$25,(small(if($b$5:$b$25=f4,row(b5:b25)-rows(b1:b4),""), (row(b5:b25)-rows(b1:b4))))),"")
公式分解 - ROW(B5:B25) 返回一个数组的 {5, 6, 7, ..., 25} .而且 ROWS(B1:B4) 返回 4 .所以 行(b5:b25)-行(b1:b4) 返回一个数组的 {1, 2, 3, ..., 21} 请看 ROW 和 润泽 详细情况请参见函数。
- if($b$5:$b$25=f4,row(b5:b25)-rows(b1:b4)," ") 返回数组中的相应数字 {1, 2, 3, ..., 21} 单元格中的值 F4 ( 小说 )与范围内任何单元格中的值相匹配 B5:B25 ( 书籍类型 )。 否则返回一个空白单元格。 见 IF功能 详情请见下文。
- small(if($b$5:$b$25=f4,row(b5:b25)-rows(b1:b4),""), (row(b5:b25)-rows(b1:b4))) 成为 small({1, ..., 3, ..., 6, ..., 20, ...}, {1, 2, 3, 4, ...., 21}) 并首先返回数字,然后 #NUM! 在空白单元格中的错误。 见 小型功能 详情请见下文。
- index($c$5:$c$25,(small(if($b$5:$b$25=f4,row(b5:b25)-rows(b1:b4),""), (row(b5:b25)-rows(b1:b4)))))) 成为 index($c$5:$c$25,{1,3,6,11,..., #num!}) 并返回相应的 书名 (小说名称)和 #NUM! 错误。 见 INDEX功能 详情请见下文。
- 最后,我们将该公式包裹在一个 IFERROR函数 来把错误变成空白单元格。
- 之后,按 进入 .
- 现在,如果你愿意,可以插入另一个 书籍类型 作为 专栏标题 并拖动 填充手柄 你将得到其他类型的书籍。
3.有多个匹配的Vlookup并在一行中返回结果
在前面的方法中,我们得到的是竖列的结果。 但如果我们想得到一行的值,我们该如何做呢? 在这里,我们将得到 作者 不同的名称 书籍类型 仔细按照下面的步骤操作即可。
📌 步骤。
- 一开始,请转到单元格 G5 并写下下面的公式。
=iferror(index($d$5:$d$19,small(if($f5=$b$5:$b$19,row($d$5:$d$19)-4,""), column()-6)),""
这个公式与之前的公式有点类似。 因此,如果你在理解这个公式时遇到任何问题,请看 以前的解释 .
- 然后,点击 进入 钥匙。
但在这个数据集中还有其他作者的小说。 那么,我们如何才能得到它们呢?
只要拖动 填充手柄 向右转至细胞 K5 以获得其他 作者 的 小说 此外,拖动 填充手柄 工具到细胞 K7 以获得 作者 不同类型的书,请看下面的图片加以说明。
如何用几个标准来Vlookup众多的匹配项
在我们之前的例子中,我们找到了单个标准的值。 例如,我们获得了特定书籍类型的书名。 但在这里,我们将暗示多个标准。 我们将查询 小说 的 查尔斯-狄更斯 让我们看看它的实际效果。
📌 步骤。
- 首先,最重要的是,选择单元格 H5 并粘贴以下公式。
=iferror(index($c$5:$c$25,small(if(1=((--($f$5=$b$5:$b$25))*(--($g$5=$d$5:$d$25)), row($c$5:$c$25)-4,""), row()-4)), "")
- 然后,按 进入 .
如何在一个单元格中Vlookup并返回多个匹配数据
在前面的方法中,我们在不同的单元格中得到了数值。 但我们将展示如何在一个单元格中得到结果。 因此,不再拖延,让我们深入了解一下吧
📌 步骤。
- 主要是,去细胞 G5 并输入以下公式。
=textjoin(", ", true,if($f$5=$b$5:$b$25,c5:c25,"))
在这里, IF功能 获取范围内的值 C5:C25 其中相应的数值范围为 B5:B25 匹配单元格中的值 F5 那么, TEXTJOIN功能 将数组的值以逗号作为分隔符组合起来。
- 其次,按 进入 .
阅读更多。 INDEX MATCH与VLOOKUP功能的比较(9个例子)
总结
本文以简单明了的方式解释了如何在Excel中进行多重匹配的vlookup。 不要忘记下载练习文件。 感谢您阅读本文,希望对您有所帮助。 如果您有任何疑问或建议,请在评论区告诉我们。 请访问我们的网站。 ǞǞǞ 探讨更多内容,请访问一站式Excel解决方案提供商--北京中关村在线。