如何在Excel的一个单元格中VLOOKUP多个值(2种简单方法)

  • Share This
Hugh West

在Excel中处理大量数据时,有时你会发现自己需要查询在数据集中出现多次的数值。 因此,你必须在一个单元格中看到这些数据。 在本教程中,我们将向你展示如何在Excel中使用VLOOKUP在一个单元格中查询多个数值。

一般来说,我们不直接使用 VLOOKUP 我们将在一个单元格中寻找多个数值,这与VLOOKUP函数类似。 我们希望你会发现这个教程对你有帮助。

下载实践工作手册

Vlookup 一个单元格中的多个值.xlsm

2种简单的方法来Vlookup一个单元格中的多个值

现在,我们将向你展示在Excel中一个单元格中查询多个数值的两种方法。 第一种方法是使用 公式 而第二个则是使用 VBA 代码。 我们将在本文中查找重复和不重复的值。 因此,你可以根据你的问题选择最适合的方法。

为了证明这个问题,我们将使用以下数据集。

在这里,我们有一些销售人员的 名称 和他们的销售 产品 现在,我们的目标是找到每个销售人员的销售产品。

1.使用公式在Excel的一个单元格中Vlookup多个值

ǞǞǞ 文本编辑器(TEXTJOIN 函数将是我们实现这一方法的常用函数。 文本编辑器(TEXTJOIN 函数允许你将2个或更多的字符串连接在一起,每个值用 分隔符 主要是将不同的函数与TEXTJOIN函数结合起来,实现我们的公式。

ǞǞǞ 文本编辑器(TEXTJOIN 功能仅适用于Excel 2019和Office 365。

TEXTJOIN函数的基本语法。

=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

这里,我们的分隔符将是一个逗号( "," )来分隔一个单元格中的数值。

1.1 TEXTJOIN和IF函数

现在,这个公式相当容易使用。 这个公式会查找数值,也会把它们插入一个带有分隔符,即逗号的单元格中。 但是,记住这个公式会返回有重复的数值。

基本语法。

=TEXTJOIN(", ",TRUE,IF(lookup_value=lookup_range,, finding_range,"))

📌 阶梯

1.首先,在以下公式中键入 细胞F5 :

=TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))

2.然后,按 进入。

3.最后,拖动 填充手柄 在单元格范围内的图标 F6:F7 .

最后,我们成功地使用了 VLOOKUP 一个单元格中的多个值。

🔎 公式的分解

我们只对 "约翰 "这个人使用这个分类。

IF(E5=B5:B13,C5:C13,"")

该函数返回以下数组。

{"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

textjoin(", ",true,if(e5=b5:b13,c5:c13,"))

最后, 文本编辑器(TEXTJOIN 函数将返回以下结果。

{手机,电视,冰箱,手机}。

阅读更多。 Excel VLOOKUP返回一个单元格中由逗号分隔的多个值

1.2 TEXTJOIN和MATCH函数(没有重复的)。

现在,如果你想在一个单元格中获得多个值,你可以使用这个公式。 这个公式是一个组合的 文本编辑器(TEXTJOIN 匹配 这个公式使用起来有点复杂,但肯定会得到你想要的值。

📌 步骤

1.首先,在以下公式中键入 细胞F5 :

=textjoin(",", true, if(iferror(match(c5:c13, if(e5=b5:b13, c5:c13, ""), 0), "")=match(row(c5:c13), row(c5:c13)), c5:c13, "")

2.然后,按 进入。

3.最后,拖动 填充手柄 在单元格范围内的图标 F6:F7 .

最后,我们成功地使用了 VLOOKUP 在一个单元格中的多个值没有任何重复值。

🔎 公式的分解

我们只对 "约翰 "这个人使用这个分类。

ROW(C5:C13)

它会返回一个数组的 {5;6;7;8;9;10;11;12;13}

match(row(c5:c13), row(c5:c13))

它返回。 {1;2;3;4;5;6;7;8;9}

如果(e5=b5:b13, c5:c13, "")

它返回。 {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

match(c5:c13, if(e5=b5:b13, c5:c13, "" )

该函数返回。 {8;8;7;9;7;7;7;8;7}

iferror(match(c5:c13, if(e5=b5:b13, c5:c13, ""), 0), "")

它返回。 {1;1;"";4;"";6;"";1;""}

if(iferror(match(c5:c13, if(e5=b5:b13, c5:c13, ""), 0),"")=match(row(c5:c13), row(c5:c13)) , c5:c13, "")

它返回。 {"Mobile";"";"";"TV";"";"Fridge";"";"";""}

textjoin(",", true, if(iferror(match(c5:c13, if(e5=b5:b13, c5:c13, ""), 0),"")=match(row(c5:c13), row(c5:c13)), c5:c13, "" )

最终的输出将是 手机、电视、冰箱 .

阅读更多。 如何在Excel中对多条行进行VLOOKUP操作(5种方法)

1.3 TEXTJOIN和UNIQUE函数(无重复)。

现在 獨特的 所以,如果你使用的是Excel 365,那么你肯定可以使用这个公式。 前面的公式有点困难,但这个公式可以简化在一个单元格中查找数值的方法。 UNIQUE函数返回一个列表或范围中的唯一值。 现在,第一个和第三个公式的区别是使用了 獨特的 函数之前的 基金会 功能。

UNIQUE函数的基本语法。

=UNIQUE (array, [by_col], [exact_once])

阵列 - 要从中提取唯一值的范围或数组。

by_col - [可选] 如何进行比较和提取。 按行=FALSE(默认);按列=TRUE。

确切地说是一次 - [可选] TRUE=出现一次的值,FALSE=所有唯一的值(默认)。

📌 步骤

1.首先,在以下公式中键入 细胞F5 :

=textjoin(", ",true,unique(if(e5=b5:b13,c5:c13,"))

2.然后,按 进入。

3.最后,拖动 填充手柄 在单元格范围内的图标 F6:F7。

正如你所看到的,我们已经成功地使用了 VLOOKUP 一个单元格中的多个值。

🔎 公式的分解

我们只对 "约翰 "这个人使用这个分类。

➤ if(e5=b5:b13,c5:c13,"" )

它的回报是 {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}

➤ UNIQUE(IF(E5=B5:B13,C5:C13,""))

它的回报是 {"Mobile";"";"TV";"Fridge"}

textjoin(", ",true,unique(if(e5=b5:b13,c5:c13,"))

最终结果 手机,电视,冰箱

阅读更多。 如何在下拉列表中Vlookup和返回多个值

2.使用VBA代码在一个单元格中Vlookup多个值

ǞǞǞ 文本编辑器(TEXTJOIN 函数只适用于 MS Excel 2019 MS Excel 365 所以,如果你对Excel的VBA代码很了解,这两段代码对你来说是非常实用的。 第一段是有重复的,第二段是没有重复的。 所以,根据你的问题选择方法。

2.1 VBA在一个单元格中编码多个值

📌 步骤

1.首先,按 Alt+F11 来打开Visual Basic编辑器。

2.然后,点击 插入> 模块 .

3.接下来,输入以下代码。

 Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant Dim outcome As String On Error Resume Next If work_range.Count merge_range.Count Then MultipleValues = CVErr(xlErrRef) Exit Function End If For i = 1 To work_range.Count If work_range.Cells(i).Value = criteria Then outcome = outcome & Separator &。merge_range.Cells(i).Value End If Next i If outcome "" Then outcome = VBA.Mid( outcome, VBA.Len(Separator) + 1) End If MultipleValues = outcome Exit Function End Function 

4.现在,进入你的工作表,然后输入以下公式 细胞F5 :

=MultipleValues(B5:B13,E5,C5:C13," ," )

5.然后,按 进入。

6.最后,将填充处理图标拖到单元格范围内。 F6:F7。

最后,我们使用了 VLOOKUP 一个单元格中的多个值 .

阅读更多。 VLOOKUP在Excel中水平地返回多个数值

2.2 在一个单元格中查找多个值的VBA代码(无重复)

📌 步骤

1.首先,按 Alt+F11 来打开Visual Basic编辑器。

2.然后,点击 插入> 模块 .

3.接下来,输入以下代码。

 Function ValuesNoDup(target As String, search_range As Range, ColumnNumber As Integer) Dim i As Long Dim outcome As String For i = 1 To search_range.Columns(1).Cells.Count If search_range.Cells(i, 1) = target Then For J = 1 To i - 1 If search_range.Cells(J, 1) = target Then If search_range.Cells(J, ColumnNumber) = search_range.Cells(i, ColumnNumber) Then GoTo Skip End If END 如果Next J outcome =outcome & " " & search_range.Cells(i, ColumnNumber) & "," Skip: End If Next i ValuesNoDup = Left( outcome, Len(outcome) - 1) End Function 

4.插入代码后,然后点击 工具> 参考资料 在打开的Microsoft Visual Basic for Applications窗口中,然后,在弹出的 参考文献 - VBAProject对话框中,选中 微软脚本运行时间 中的选项。 可用的参考资料 列表框中,点击 认可 .

5.现在,进入你的工作表,然后输入以下公式 细胞F5 :

=ValuesNoDup(E5,B5:B13,2)

这里,2是数据集的列号。

6.然后,按 进入 .

7.最后,拖动 填充手柄 在单元格范围内的图标 F6:F7。

正如你所看到的,我们使用了 VLOOKUP 一个单元格中的多个值没有重复。

阅读更多。 如何在Excel中VLOOKUP并返回多个值(8种方法)

总结

最后,我希望本教程能帮助你实现vlookup 在Excel中的一个单元格中包含多个值。 下载练习工作簿,自己尝试一下,肯定会发展你的Excel知识。 另外,欢迎在评论区提出反馈意见。 你的宝贵反馈使我们有动力创造大量类似的文章。 不要忘记检查我们的网站 ǞǞǞ 遇到与Excel相关的问题和解决方案时,请联系我们。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.