如何在Excel中的一个单元格中通过vlookup返回多个值?

网友投稿 627 2024-01-22

如何在Excel中的一个单元格中通过vlookup返回多个值?

通常,在Excel中,当您使用VLOOKUP函数时,如果有多个值与条件匹配,则只需获取第一个即可。 但是,有时,您希望将符合条件的所有相应值返回到一个单元格中,如下面的屏幕截图所示,如何解决呢?

Vlookup使用TEXTJOIN函数将多个值返回到一个单元格中(Excel 2019和Office 365)

Vlookup将所有匹配的值返回到一个单元格 Vlookup将所有没有重复的匹配值返回到一个单元格

Vlookup使用用户定义的函数将多个值返回到一个单元格

Vlookup将所有匹配的值返回到一个单元格 Vlookup将所有没有重复的匹配值返回到一个单元格

Vlookup通过有用的功能将多个值返回到一个单元格

Vlookup使用TEXTJOIN函数将多个值返回到一个单元格中(Excel 2019和Office 365)

如果您拥有较高版本的Excel(例如Excel 2019和Office 365),则有一个新功能- 文字加入,借助这一强大的功能,您可以快速进行vlookup并将所有匹配的值返回到一个单元格中。

Vlookup将所有匹配的值返回到一个单元格

请将以下公式应用于要放入结果的空白单元格,然后按 Ctrl + Shift + Enter 键一起获得第一个结果,然后将填充手柄向下拖动到要使用此公式的单元格,您将获得所有对应的值,如下图所示:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))
请注意: 在上式中 A2:A11 查找范围包含查找数据, E2 是查找值, C2:C11 是您要从中返回匹配值的数据范围,“,“是用于分隔多个记录的分隔符。
Vlookup将所有没有重复的匹配值返回到一个单元格

如果要基于查找数据返回所有匹配值而不重复,则以下公式可能会对您有所帮助。

请复制以下公式并将其粘贴到空白单元格中,然后按 Ctrl + Shift + Enter 键在一起以获得第一个结果,然后复制此公式以填充其他单元格,您将获得所有对应的值,而无需使用重复的值,如下面的屏幕截图所示:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))
请注意: 在上式中 A2:A11 查找范围包含查找数据, E2 是查找值, C2:C11 是您要从中返回匹配值的数据范围,“,“是用于分隔多个记录的分隔符。
Vlookup使用用户定义的函数将多个值返回到一个单元格

上面的TEXTJOIN函数仅适用于Excel 2019和Office 365,如果您具有其他较低的Excel版本,则应使用一些代码来完成此任务。

Vlookup将所有匹配的值返回到一个单元格

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:Vlookup将多个值返回到一个单元格

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant Updateby Extendoffice Dim xResult As String On Error Resume Next If CriteriaRange.Count <> ConcatenateRange.Count Then ConcatenateIf = CVErr(xlErrRef) Exit Function End If For i = 1 To CriteriaRange.Count If CriteriaRange.Cells(i).Value = Condition Then xResult = xResult & Separator & ConcatenateRange.Cells(i).Value End If Next i If xResult <> "" Then xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1) End If ConcatenateIf = xResult Exit Function End Function
Copy

3。 然后保存并关闭此代码,返回到工作表,然后输入以下公式: =CONCATENATEIF($A:$A, E2, $C:$C, ", ") 放入要放置结果的特定空白单元格中,然后向下拖动填充手柄以在所需的一个单元格中获取所有对应的值,请参见屏幕截图:

请注意: 在上式中 A2:A11 查找范围包含查找数据, E2 是查找值, C2:C11 是您要从中返回匹配值的数据范围,“,“是用于分隔多个记录的分隔符。
Vlookup将所有没有重复的匹配值返回到一个单元格

要忽略返回的匹配值中的重复项,请使用以下代码。

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:Vlookup并将多个唯一匹配的值返回到一个单元格中

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer) Updateby Extendoffice Dim xDic As New Dictionary Dim xRows As Long Dim xStr As String Dim i As Long On Error Resume Next xRows = LookupRange.Rows.Count For i = 1 To xRows If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, "" End If Next xStr = "" MultipleLookupNoRept = xStr If xDic.Count > 0 Then For i = 0 To xDic.Count - 1 xStr = xStr & xDic.Keys(i) & "," Next MultipleLookupNoRept = Left(xStr, Len(xStr) - 1) End If End Function
Copy

3。 插入代码后,然后单击 工具 > 参考资料 在打开 Microsoft Visual Basic应用程序 窗口,然后在弹出 参考– VBAProject 对话框,检查 Microsoft脚本运行时 在选项 可用参考 列表框,请参阅屏幕截图:

4。 然后点击 OK 关闭对话框,保存并关闭代码窗口,返回到工作表,然后输入以下公式: =MultipleLookupNoRept(E2,$A:$C,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

请注意: 在上式中 A2:C11 是您要使用的数据范围, E2 是查找值,数字 3 是包含返回值的列号。
Vlookup通过有用的功能将多个值返回到一个单元格

 如果您有我们的 Kutools for Excel,其 高级组合行 功能,您可以根据相同的值快速合并或合并行,并根据需要进行一些计算。

请注意:申请这个 高级组合行,首先,您应该下载 Kutools for Excel,然后快速轻松地应用该功能。

安装后 Kutools for Excel,请执行以下操作:

1。 选择要根据另一列合并一个列数据的数据范围。

如何在Excel中的一个单元格中通过vlookup返回多个值?

2。 点击 Kutools > 合并与拆分 > 高级组合行,请参见屏幕截图:

3。 在弹出 高级组合行 对话框:

单击要基于其组合的键列名称,然后单击 首要的关键 然后单击要基于键列合并其数据的另一列,然后单击 结合 选择一个分隔符以分隔组合数据。

4. 然后点击 OK 按钮,您将获得以下结果:

下载并免费试用 Kutools for Excel 现在 !

更多相关文章:
VLOOKUP函数以及一些基本和高级示例 在Excel中,VLOOKUP函数对于大多数Excel用户而言是一项功能强大的函数,用于在数据范围的最左侧查找值,并在您指定的列的同一行中返回匹配值。 本教程通过Excel中的一些基本示例和高级示例讨论如何使用VLOOKUP函数。
根据一个或多个条件返回多个匹配值 通常,使用VLOOKUP函数对我们大多数人来说查找特定值并返回匹配项很容易。 但是,您是否曾经尝试过根据一个或多个条件返回多个匹配值? 在本文中,我将介绍一些解决Excel中复杂任务的公式。
Vlookup并垂直返回多个值 通常,您可以使用Vlookup函数来获取第一个对应的值,但是有时您希望基于特定条件返回所有匹配的记录。 本文,我将讨论如何进行vlookup并将所有匹配值垂直,水平或返回到单个单元格中。
Vlookup并从下拉列表中返回多个值 在Excel中,如何从下拉列表中进行vlookup并返回多个相应的值,这意味着当您从下拉列表中选择一项时,它的所有相对值会立即显示。 本文,我将逐步介绍解决方案。

最佳办公生产力工具

将小时转化为分钟 Kutools for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  可定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何使用vlookup从Excel表返回多列?
下一篇:如何在Excel中vlookup值并返回true或false / yes或no?
相关文章