跳至主要内容

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

Author: Xiaoyang Last Modified: 2025-07-31

VLOOKUP 是 Excel 中一个强大的函数,但默认情况下,它只返回第一个匹配的值。如果你需要检索所有匹配的值并将它们合并到一个单元格中该怎么办呢?这是分析数据集或汇总信息时的常见需求。在本指南中,我们将逐步介绍如何使用公式和实用功能将多个值返回到单个单元格中。

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

通过 Kutools 将多个值返回到一个单元格

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

vlookup to return multiple values in one cell


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

如果你使用的是较高版本的 Excel,例如 Excel 2019 和 Office 365,有一个新函数 - TEXTJOIN,通过这个强大的函数,你可以快速查找并返回所有匹配的值到一个单元格中。

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

请在要放置结果的空白单元格中应用以下公式,然后按 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. 在弹出的“高级合并行”对话框中:

  • 点击要基于其进行合并的关键列名称,然后点击“主键”。
  • 然后点击另一列,你希望基于关键列合并其数据,点击“操作”字段的下拉列表,从“合并”部分选择一个分隔符来分隔合并的数据。
  • 然后,点击确定按钮。

specify options in the dialog box

来自另一列的所有对应值,基于相同的值,被合并到一个单元格中。见截图:

original data arrow right all cell values are extracted into one cell based on the same data

提示:如果在合并单元格时想要删除重复内容,只需在对话框中勾选“删除重复值”选项即可。这确保只有唯一的条目被合并到一个单元格中,使你的数据更加干净和有条理,而无需额外努力。见截图:

original data arrow right all cell values are extracted into one cell skip the duplicates

立即下载并免费试用 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 to return all matching values into one cell with user defined function

注意: 在上述公式中,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”选项,见截图:

click Tools > References arrow right check Microsoft Scripting Runtime option

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

Vlookup to return all matching values without duplicates into one cell by user defined function

注意: 在上述公式中,A2:C11 是你希望使用的数据范围,E2 是查找值,数字 3 是包含返回值的列号。

无论你选择像 TEXTJOIN 结合数组函数这样的公式,利用像 Kutools for Excel 或用户定义函数这样的工具,所有方法都有助于简化复杂的查找任务。选择最适合你需求的方法。如果你有兴趣探索更多 Excel 技巧和窍门,我们的网站提供了数千个教程


更多相关文章:

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

最佳 Office 办公效率工具

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

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


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

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!