如何在Excel的一个单元格中使用vlookup返回多个值?
VLOOKUP 是 Excel 中一个强大的函数,但默认情况下,它只返回第一个匹配的值。如果你需要检索所有匹配的值并将它们合并到一个单元格中该怎么办呢?这是分析数据集或汇总信息时的常见需求。在本指南中,我们将逐步介绍如何使用公式和实用功能将多个值返回到单个单元格中。
使用 TEXTJOIN 函数将多个值返回到一个单元格(适用于 Excel 2019 和 Office 365)
使用 TEXTJOIN 函数将多个值返回到一个单元格(适用于 Excel 2019 和 Office 365)
如果你使用的是较高版本的 Excel,例如 Excel 2019 和 Office 365,有一个新函数 - TEXTJOIN,通过这个强大的函数,你可以快速查找并返回所有匹配的值到一个单元格中。
将所有匹配的值返回到一个单元格
请在要放置结果的空白单元格中应用以下公式,然后按 Ctrl + Shift + Enter 键一起获取第一个结果,然后向下拖动填充柄到你想使用该公式的单元格,并且你会像下面截图所示那样获得所有对应的值:
将所有不重复的匹配值返回到一个单元格
如果你想根据查找数据返回所有不重复的匹配值,以下公式可能会对你有所帮助。
请将以下公式复制并粘贴到空白单元格中,然后按 Ctrl + Shift + Enter 键一起获取第一个结果,然后复制此公式以填充其他单元格,你将获得所有对应的值而不会重复,如下截图所示:
通过 Kutools 将多个值返回到一个单元格
借助 Kutools for Excel 的“高级合并行”功能,你可以轻松地将多个匹配值检索到一个单元格中——无需复杂的公式!告别手动变通方法,解锁更高效的方式来处理 Excel 中的查找任务。让我们来看看 Kutools for Excel 如何实现这一切!
安装 Kutools for Excel 后,请按照以下步骤操作:
1. 选择你想要基于另一列合并一列数据的数据范围。
2. 点击 “Kutools” > “合并与拆分” > “高级合并行”,见截图:
3. 在弹出的“高级合并行”对话框中:
- 点击要基于其进行合并的关键列名称,然后点击“主键”。
- 然后点击另一列,你希望基于关键列合并其数据,点击“操作”字段的下拉列表,从“合并”部分选择一个分隔符来分隔合并的数据。
- 然后,点击确定按钮。
来自另一列的所有对应值,基于相同的值,被合并到一个单元格中。见截图:
![]() | ![]() | ![]() |
提示:如果在合并单元格时想要删除重复内容,只需在对话框中勾选“删除重复值”选项即可。这确保只有唯一的条目被合并到一个单元格中,使你的数据更加干净和有条理,而无需额外努力。见截图:
![]() | ![]() | ![]() |
通过用户定义的函数将多个值返回到一个单元格
上述 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, ", ") 到你希望放置结果的特定空白单元格中,然后向下拖动填充柄以在一个单元格中获取所有对应的值,见截图:
将所有不重复的匹配值返回到一个单元格
要忽略返回匹配值中的重复项,请使用以下代码。
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”选项,见截图:
![]() | ![]() | ![]() |
4. 然后点击确定关闭对话框,保存并关闭代码窗口,返回工作表,并输入此公式: =MultipleLookupNoRept(E2,$A$2:$C$11,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 for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...
Office Tab 为 Office 带来标签式界面,让你的工作更加轻松
- 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
- 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
- 办公效率提升50%,每天帮你减少上百次鼠标点击!