Table of contents
有几种方法可以申请 VLOOKUP 或Microsoft Excel中的垂直查找,以返回基于多个匹配的数据。 在这篇文章中,你将了解所有可能的方法来激活 VLOOKUP 并以适当的插图提取所有可用的数据。
下载实践工作手册
你可以下载我们用来准备这篇文章的Excel工作簿。
VLOOKUP和返回所有匹配信息.xlsxExcel中VLOOKUP和返回所有匹配的7种方法
ǞǞǞ VLOOKUP 函数在表的最左边一列中寻找一个值,并从指定的列中返回同一行中的一个值。 但这个函数无法根据一列中的多个匹配值提取数据。 因此,我们必须插入一些其他函数和公式来查找一个值并返回在一列中找到的所有匹配值。
1.VLOOKUP和返回一列中的多个匹配数据
在下图中,我们有一个包含几个员工及其部门的随机名字的表格。 假设我们想在一列中显示在制造部门工作的员工的名字。
如果你是一个 Excel 365 用户,那么你就可以去选择 筛选器 函数在这里找到返回值。 用 筛选器 函数,所需的公式在输出中 细胞C16 将是。
=FILTER(C5:C13,C15=B5:B13)
在按下 进入 ,你会看到员工的名字从 制造 纵向排列的部门。
或者如果你使用的是一个 旧版本 那么你必须使用以下组合公式。
=index($c$5:$c$13, small(if(($c$15=$b$5:$b$13), match(row($b$5:$b$13), row($b$5:$b$13)), ""), rows($a$1:a1))
在按下 进入 ,你会在输出中找到该雇员的名字 细胞C16 .
通过使用 填充手柄 从 细胞C16 向下,你就会马上得到指定部门的其余员工的名字。
🔎 这个配方是如何工作的?
- 行($b$5:$b$13)。 ǞǞǞ ROW 函数提取定义的单元格引用的行号并返回以下数组。
{5;6;7;8;9;10;11;12;13}
- match(row($b$5:$b$13), row($b$5:$b$13))。 匹配 函数在此将提取的行号从1开始转换。 因此,公式的这一部分返回一个数组。
{1;2;3;4;5;6;7;8;9}
- if(($c$15=$b$5:$b$13), match(row($b$5:$b$13), row($b$5:$b$13)), "") 。 借助于 基金会 函数,公式的这一部分返回满足指定条件的行的索引号。 因此,这一部分返回一个数组。
{"";2;"";4;"";"";"";"";9}
- ǞǞǞ 小型 公式中的函数拉出上一步找到的第一个小数字,并将这个数字分配给第二个参数 (Row_number) 的。 索引 功能。
- 最后, 索引 函数根据指定的行号显示雇员的名字。
- ǞǞǞ 润泽 该公式中的函数定义了 k-th 的数字。 小型 功能。 在使用 填充手柄 来填充其余的单元格,该公式使用了以下内容 k-th 数字来提取数据,然后是 小型 功能。
阅读更多。 INDEX MATCH与VLOOKUP功能的对比(9个例子)
2.VLOOKUP和返回Excel中某一行的所有匹配数据
如果你想在水平方向上看到雇员的名字,那么你必须把 筛选器 的功能,与 输送 职能。 输送 函数将一个垂直单元格区域转换为一个水平单元格区域,反之亦然。 而要使用这个组合公式,你必须是一个 Excel 365 用户。
因此,输出中所要求的公式是 细胞C16 将是。
=transpose(filter(c5:c13,c15=b5:b13))
现在按 进入 你将会看到制造部门的员工名字以水平阵列的形式出现。
或者在输出中插入以下公式 细胞C16 如果你不是Excel 365的用户。
=index($c$5:$c$13, small(if($c$15=$b$5:$b$13, row($b$5:$b$13)-min(row($b$5:$b$13))+1, ""), columns($a$1:a1))
新闻 进入 你会发现指定部门的雇员的名字。
现在,使用 填充手柄 并拖动 细胞C16 向右转,直到你找到第一个 #NUM 错误,你将从 制造 横向的部门。
这里插入的公式几乎类似于文章前一个例子中使用的第一个冗长的公式,其中提取的数据必须垂直显示。 唯一的主要区别是,我们使用的是 栏目 函数,在此指定 小型 在横向自动填充单元格的同时,公式将按照 小型 函数来提取数据。
阅读更多。 Excel VLOOKUP垂直返回多个数值
3.VLOOKUP根据标准返回多个值
我们在表的中间添加了一个额外的列。 这一列存储了分配给相应员工的项目ID,这些员工存在于 D栏 所以,我们现在要输入两个不同的条件,并根据找到的所有匹配数据提取数据。
例如,我们想知道目前在该公司工作的雇员的姓名。 销售 的项目ID上的部门。 DMR 103 .
输出中的所需公式 细胞C17 将是。
=iferror(index($d$5:$d$13, small(if(1=((--($c$15=$b$5:$b$13)) * (--($c$16=$c$5:$c$13)), row($d$5:$d$13)-4,""), row()-16)),""
新闻 进入 就能找到指定条件下的雇员的名字。
现在填下 细胞C17 来显示具有给定条件的其余名称。
🚩 这个公式的一些重要特点。
- 这个公式也与前一种方法中使用的公式很相似。
- 在这个公式中, 误差(IFERROR 函数被用来在发现任何错误时显示一个自定义的输出。
- ǞǞǞ 基金会 该公式中的函数结合了两个不同的标准,在双单数的帮助下,布尔值为 (TRUE或FALSE) 变为 1或0 然后,该函数返回与给定条件匹配的行的索引号。
- 行($d$5:$d$13)-4。 在这部分中,数 '4' 是雇员标题的行号。
- ROW()-16。 而数值 '16' 在这部分中使用的是第一个输出单元的前一个行号。
阅读更多。 在Excel中使用多条件的VLOOKUP(6种方法+替代方法)
4.VLOOKUP和用自动过滤器抽出所有匹配的数据
通过使用 自动过滤 由于我们要从制造部门抽出员工的名字,我们必须经过以下步骤。
📌 步骤1。
➤ 选择整个数据表并右键单击鼠标。
➤ 选择 按所选单元格的值过滤'。 选项,从 过滤器 选项。
所以,你刚刚激活了 过滤器 为你的标题设置按钮。
📌 第2步。
➤ 点击 过滤器 的按钮。 部门 头部。
➤ 将一个标记放在 制造 只能选择。
➤ 按 认可 然后你就完成了。
就像下面的截图一样,你将会看到结果和过滤后的数据。
阅读更多。 在Excel中使用多个匹配的VLOOKUP
类似读物
- 如何在Excel中应用双VLOOKUP(4种快速方法)
- VLOOKUP不工作(8个原因& 解决方案)
- 如何将Excel的SUMIF & VLOOKUP合并到多个工作表中
- VLOOKUP在Excel中返回多列数据(4个例子)
- 如何在Excel中用多个条件进行VLOOKUP(2种方法)
5.VLOOKUP在Excel中用高级过滤器提取所有匹配数据
你也可以使用 高级过滤器 在这里,你必须从你的Excel电子表格中选择标准范围来定义标准。 在下图中。 B15:B16 是标准范围。
📌 步骤1。
➤ 选择整个数据表。
➤ 根据 数据 在 "功能区 "中,点击 高级 的命令。 排序和过滤 下拉。
一个名为的对话框 高级过滤器 将打开。
📌 第2步。
➤ 选择整个数据表,用于 列表范围 输入。
➤ 选择 B15:B16 的输入。 标准范围 .
➤ 按 认可 .
然后你会看到过滤后的结果,其中包括来自于 制造 仅限部门。
阅读更多。 Excel中带有多个标准的VLOOKUP(6个例子)。
6.VLOOKUP和通过格式化为表返回所有值
现在我们将向你展示另一种简单的方法,通过将数据表转换为格式化的表格来过滤。
📌 步骤1。
➤ 首先选择主数据表。
➤ 从 格式为表格 下的下拉菜单。 首页 标签,选择任何你喜欢的表格。
第一步之后,你的数据表现在看起来就像下面的截图中显示的那样,带有过滤后的标题。
📌 第2步。
➤ 选择 制造 点击过滤器按钮后,从 部门 头部。
➤ 按 认可 然后你就完成了。
下面的截图显示的是基于指定选择的输出。
阅读更多。 使用VBA的VLOOKUP从Excel的另一个工作表中查找数值
7.在Excel中用VLOOKUP将所有的匹配信息拉出到一个单元格中
ǞǞǞ 文本编辑器(TEXTJOIN 函数使用分隔符连接一个列表或文本字符串的范围。 通过纳入 文本编辑器(TEXTJOIN 和 基金会 函数在一起,我们可以查询一个值,并根据所有匹配的数据提取到一个单元格。
输出中的所需公式 细胞C16 将是。
=textjoin(", ",true,if($b$5:$b$13=$c$15,$c$5:$c$13,"))
在按下 进入 ,你会发现员工的名字从 制造 在一个由逗号分隔的单元格中的部门。
在这个公式中, 基金会 函数返回包含匹配名称的数组,以及未匹配单元格的布尔值 "FALSE"。 文本编辑器(TEXTJOIN 函数然后将找到的所有名字与指定的分隔符连接起来。
阅读更多。 VLOOKUP在Excel中从单个单元格获取部分文本
结论性的话语
我希望上面提到的这些方法现在能帮助你在必要时在Excel表格中应用它们。 如果你有任何问题或反馈,请在评论区告诉我。 或者你可以在本网站上查看我们与Excel函数有关的其他文章。