跳至主要内容

如何在 Excel 中使用 vlookup 返回多个不重复的值?

Author: Xiaoyang Last Modified: 2025-05-08

在 Excel 中处理数据时,有时您可能需要为特定的查找条件返回多个匹配的值。然而,默认的 VLOOKUP 函数只能检索单个值。在存在多个匹配项的情况下,如果您希望在单个单元格中显示它们且不重复,可以使用其他方法来实现这一点。

return multiple values without duplicates

在 Excel 中使用 Vlookup 返回多个不重复的匹配值


使用 TEXTJOIN 和 FILTER 函数返回多个不重复的匹配值

如果您使用的是 Excel365 或 Excel2021,可以利用 TEXTJOIN 和 FILTER 函数轻松实现。这些函数允许动态筛选数据并将结果连接到单个单元格中。

请在空白单元格中输入以下公式以输出结果,然后按 "Enter" 键以获取所有不重复的匹配值。请参见截图:

=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(C2:C17, A2:A17=E2)))

return multiple values without duplicates with textjoin function

此公式的解释:
  • FILTER(C2:C17, A2:A17=E2) 提取列 C 中所有产品在列 A 中与 E2 中的查找值匹配的名称。
  • UNIQUE 删除任何重复值。
  • TEXTJOIN(", ", TRUE, ...) 将生成的不重复值组合到一个单元格中,以逗号分隔。

使用强大的功能返回多个不重复的匹配值

如果您想在 Excel 中使用 VLOOKUP 返回多个不重复的匹配值,但发现手动公式或 VBA过于复杂,"Kutools for Excel" 提供了一个简单高效的解决方案,通过其 "一对多查找" 功能,您可以快速提取并将所有不重复的匹配值合并到一个单元格中,只需几次点击即可。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

点击 "Kutools" > "Super Lookup" > "一对多查找 (返回多个结果)" 打开 "一对多查找" 对话框,然后在对话框中指定操作:

  1. 分别在文本框中选择 "列表放置区域" 和 "待检索值区域";
  2. 选择您要使用的表格区域;
  3. 分别从 "关键列" 和 "返回列" 下拉菜单中指定关键列和返回列;
  4. 最后,点击 "OK" 按钮。
    specify the options in the One-to-many Lookup dialog box

结果:

现在,您可以看到所有匹配值都已提取且没有重复项,请参见截图:
return multiple values without duplicates by kutools

提示:

如果您想使用不同的分隔符来分隔数据,可以点击 "选项" 并选择所需的分隔符。此外,您还可以对结果执行其他操作,例如求和、平均等。
more options for handling the results


使用用户定义函数返回多个不重复的匹配值

如果您没有 Excel365 或 Excel2021,可以使用下面提供的用户定义函数作为替代方法。此方法允许您实现类似的结果,例如

即使在旧版本的 Excel 中,也能返回多个不重复的匹配值。

  1. 按住 "Alt" + "F11" 键打开 "Microsoft Visual Basic for Applications" 窗口。
  2. 点击 "插入" > "模块",并将以下代码粘贴到 "模块" 窗口中。

    VBA代码:Vlookup 和返回多个唯一匹配值:

      Function VlookupUnique(lookupValue As String, lookupRange As Range, resultRange As Range, delim As String) As String
        Dim cell As Range
        Dim result As String
        Dim dict As Object
        Set dict = CreateObject("Scripting.Dictionary")
        For Each cell In lookupRange
            If cell.Value = lookupValue Then
                If Not dict.exists(resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value) Then
                    dict.Add resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value, True
                    result = result & delim & resultRange.Cells(cell.Row - lookupRange.Row + 1, 1).Value
                End If
            End If
        Next cell 
        If Len(result) > 0 Then
            VlookupUnique = Mid(result, Len(delim) + 1)
        Else
            VlookupUnique = ""
        End If
    End Function
  3. 保存并关闭代码窗口,返回到工作表,输入以下公式,按 "Enter" 键以获得所需的正确结果。请参见截图:
    =VlookupUnique(E2, A2:A17, C2:C17, ", ")

    return multiple values without duplicates by user defined function
注意:在上述公式中,E2 是您要查找的条件,A2:A17 是查找发生的区域,C2:C17 是要返回的值的区域,", " 是分隔结果的分隔符。

总之,有几种有效的方法可以在 Excel 中使用 VLOOKUP 返回多个不重复的匹配值,选择最适合您需求和 Excel版本的方法。通过这些技术,您可以轻松在 Excel 中返回多个不重复的匹配值。如果您有兴趣探索更多 Excel 技巧和窍门,我们的网站提供了数千个教程


最佳办公效率工具

🤖 Kutools AI 助手:基于智能执行生成代码创建自定义公式分析数据并生成图表调用 Kutools 函数等功能,彻底改变数据分析方式…
热门功能查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ...
高级 LOOKUP多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 ....
高级下拉列表快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 ....
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ...
精选功能网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)...
排名前 15 的工具集12 种文本 工具添加文本删除特定字符等) | 50 多 种图表 类型甘特图等) | 40 多种实用 公式基于生日计算年龄等) | 19 种插入 工具插入二维码根据路径插入图片等) | 12 种转换 工具小写金额转大写汇率转换等) | 7 种合并与分割 工具高级合并行分割单元格等) | 还有更多...

使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...


Office Tab 将标签式界面引入 Office,让您的工作更加轻松

  • 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读
  • 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
  • 将您的生产力提升 50%,每天为您减少数百次鼠标点击!