如何在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
3。 然后保存并关闭此代码,返回到工作表,然后输入以下公式: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") 放入要放置结果的特定空白单元格中,然后向下拖动填充手柄以在所需的一个单元格中获取所有对应的值,请参见屏幕截图:
请注意: 在上式中 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
3。 插入代码后,然后单击 工具 > 参考资料 在打开 Microsoft Visual Basic应用程序 窗口,然后在弹出 参考– VBAProject 对话框,检查 Microsoft脚本运行时 在选项 可用参考 列表框,请参阅屏幕截图:
4。 然后点击 OK 关闭对话框,保存并关闭代码窗口,返回到工作表,然后输入以下公式: =MultipleLookupNoRept(E2,$A$2:$C$11,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。 选择要根据另一列合并一个列数据的数据范围。
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 多种场景中的工作。
📈 卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!
⏱️ 高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。
📊 可定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。
🗄️ 强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。
📝 七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。
🎓 用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。
***
***
*** ***
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
每天将您的工作效率提高50%,并减少数百次鼠标单击!