KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中使用 VLOOKUP 将多个值合并返回到单个单元格中?

作者Xiaoyang修改日期

VLOOKUP 是 Excel 中的强大函数,但默认仅返回首个匹配值。如果您需要检索所有匹配项,并将它们合并到一个单元格中呢?这在分析数据集或汇总信息时十分常见。本指南将通过公式与实用功能,逐步教您如何将多个匹配值整合至单个单元格。

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

使用 Kutools 将多个值返回到一个单元格中

使用自定义函数将多个值返回到一个单元格中

vlookup 在一个单元格中返回多个值


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

如果您使用的是较高版本的 Excel(如 )TEXTJOIN 函数支持的 Excel 2019 和 Office 365),即可借助这一强大函数,快速查找并返回所有匹配值到一个单元格中。

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

请将以下公式应用到您希望放置结果的空白单元格中,然后同时按 Ctrl + Shift + ENTER 键获取第一个结果,再向下拖动填充柄至所需单元格,即可获得如下图所示的所有对应值:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

注意:在上述公式中,A2:A11 是包含查找数据的查找范围,E2 是查找值,C2:C11 是您希望从中返回匹配值的数据区域,“,”是用于分隔多条记录的分隔符。

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

如果您希望根据查找数据返回所有匹配值且不包含重复项,以下公式或许能为您提供帮助。

请将以下公式复制并粘贴到空白单元格中,然后同时按 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 是您希望从中返回匹配值的数据区域,而“,”则是用于分隔多条记录的分隔符。

使用 Kutools 将多个值返回到一个单元格中

借助 Kutools for Excel 的“高级合并行”功能,您可轻松将多个匹配值汇总到单个单元格中——无需复杂公式!告别繁琐的手动变通方法,以更高效的方式完成 Excel 查找任务。快来探索 Kutools for Excel 是如何实现这一切的吧!

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

安装 Kutools for Excel 后,请按以下步骤操作:

1. 请选择您希望依据另一列来合并数据的区域。

2. 单击“Kutools”>“合并和拆分”>“高级合并行”,如下图所示:

3. 在弹出的“高级合并行”对话框中:

  • 单击您希望作为合并依据的关键列名称,然后点击“主键”。
  • 然后单击另一列(该列的数据将根据关键列进行合并),并从“操作”字段的下拉列表中选择一个分隔符,用于在“合并”部分中分隔合并后的数据。
  • 然后单击“确定”按钮。

在对话框中指定选项

基于相同值,另一列中所有对应的值均已合并至单个单元格。参见截图:

原始数据向右箭头所有单元格值根据相同数据提取到一个单元格中

提示:若希望在合并单元格时自动去除重复内容,只需在对话框中勾选“删除重复值”选项,即可将唯一项合并到单个单元格中,让数据更简洁、更有条理,无需任何额外操作。参见截图:

原始数据向右箭头所有单元格值提取到一个单元格中并跳过重复项

立即下载并免费试用 Kutools for Excel!


使用自定义函数将多个值返回到一个单元格中

上述 TEXTJOIN 函数仅适用于 Excel 2019 和 Office 365. 若您使用的是更早版本的 Excel,则需借助代码来完成此操作。

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

1. 按下“ALT + F11”组合键,即可打开“Microsoft Visual Basic for Applications”窗口。

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

3. 然后保存并关闭此代码,返回工作表,在您希望放置结果的空白单元格中输入公式:=CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", "),再向下拖动填充柄,即可在单个单元格中获取所有对应值,参见截图:

使用用户自定义函数,Vlookup 将所有匹配值返回到一个单元格中

注意:在上述公式中,A2:A11 是包含查找数据的查找范围,E2 是查找值,C2:C11 是您希望从中返回匹配值的数据区域,“,”是用于分隔多条记录的分隔符。

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

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

1. 按下“Alt + F11”组合键,即可打开“Microsoft Visual Basic for Applications”窗口。

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

3. 插入代码后,在弹出的“Microsoft Visual Basic for Applications”窗口中,依次单击“工具”>“引用”,然后在“引用–VBAProject”对话框的“可用引用”列表中勾选“Microsoft Scripting Runtime”选项,具体操作请参见截图:

单击 工具 > 引用向右箭头勾选 Microsoft Scripting Runtime 选项

4. 然后单击“确定”关闭对话框,保存并关闭代码窗口,返回工作表,在空白单元格中输入公式:=MultipleLookupNoRept(E2,$A$2:$C$11,3) 即可输出结果,再向下拖动填充柄获取所有匹配值,参见截图:

使用用户自定义函数,Vlookup 将所有不重复的匹配值返回到一个单元格中

注意:在上述公式中,A2:C11 是您要使用的数据区域,E2 是查找值,数字 3 是包含返回值的列号。

无论您选择结合数组函数的 TEXTJOIN 公式、使用 Kutools for Excel 等工具,还是自定义函数,所有方法都能简化复杂的查找任务。选择最适合您需求的方法!如果您想深入掌握更多 Excel 技巧,我们的网站提供数千篇实用教程,助您轻松提升效率!


更多相关文章:

  • VLOOKUP 函数的基本与高级示例
  • 在 Excel 中,VLOOKUP 函数是大多数用户不可或缺的强大工具,它能在数据区域的最左侧查找指定值,并返回同一行中您所指定列的匹配结果。本教程将通过基础与进阶示例,带您全面掌握 VLOOKUP 函数的使用方法。
  • 根据一个或多个条件返回多个匹配值
  • 通常,使用 VLOOKUP 函数查找特定值并返回匹配项对我们大多数人来说都轻而易举。但您是否尝试过根据一个或多个条件返回多个匹配值?本文将为您介绍一些实用公式,助您轻松应对 Excel 中这一复杂任务。
  • 垂直查找并返回多个值
  • 通常,您可以使用 VLOOKUP 函数获取首个匹配值,但有时您可能希望根据特定条件返回所有匹配记录。本文将介绍如何垂直、水平查找,或将所有匹配值合并到单个单元格中。
  • 通过下拉列表查找并返回多个值
  • 在 Excel 中,如何通过下拉列表查找并返回多个对应值?即当您从下拉列表中选择一个项目时,其所有相关值会立即显示出来。本文将逐步介绍解决方案。

最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱