提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何在一个以逗号分隔的单元格中返回多个查找值?

在Excel中,我们可以应用VLOOKUP函数从表格单元格中返回第一个匹配的值,但是,有时候,我们需要提取所有匹配的值,然后用特定的分隔符(例如逗号,短划线等)分隔成单个如下图所示。 我们如何在Excel中的一个以逗号分隔的单元格中获取并返回多个查找值?

doc返回多个逗号分隔的值1

使用用户定义的函数在一个逗号分隔的单元格中返回多个查找值

用Kutools for Excel将一个以逗号分隔的单元格中的多个查找值返回


使用用户定义的函数在一个逗号分隔的单元格中返回多个查找值

通常情况下,我们没有直接的方法来提取并返回多个匹配值,并用逗号分隔为一个单元格,在这里您可以创建一个用户定义的函数来解决这个工作,请按照以下步骤操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到 模块 窗口。

VBA代码:将多个查找值返回到一个逗号分隔的单元格中

Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby20150824
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function

3。 然后保存此代码并关闭“模块”窗口,返回工作表并输入以下公式: = SingleCellExtract(D2,A2:B15,2, “”) 放入您想要返回结果的空白单元格中。 然后按 输入 键取得结果,看截图:

doc返回多个逗号分隔的值2

注意:在上面的公式中:

D2: 表示您想查找的单元格值;

A2:B15: 是您想要获取数据的数据范围;

2:数字2是匹配值要返回的列号;

,:逗号是要分隔多个值的分隔符。

你可以改变他们到你的需要。


用Kutools for Excel将一个以逗号分隔的单元格中的多个查找值返回


如果你有 Kutools for Excel,这个任务将不再是一个问题。 该 先进的组合行 实用程序可以帮助您根据列组合所有相对值。

Kutools for Excel : 与超过300方便的Excel加载项,在60天免费试用没有限制.

安装后 Kutools for Excel请按照以下步骤进行:

1。 选择您希望根据列组合所有匹配值的数据范围。

2。 点击 Kutools > 内容 > 先进的组合行,看截图:

doc返回多个逗号分隔的值3

3。 在 基于列组合行 对话框中,单击要合并的列名称,然后单击 首要的关键 按钮,看截图:

doc返回多个逗号分隔的值4

4。 然后点击您想要合并其匹配值的其他列名称,然后单击 结合 要选择一个分隔符来分隔组合值,请参见截图:

doc返回多个逗号分隔的值5

5。 然后点击 OK 按钮,具有相同值的所有相应单元格已合并为一个以逗号分隔的单元格,请参阅屏幕截图:

doc返回多个逗号分隔的值6  2 doc返回多个逗号分隔的值7

点击了解有关此高级合并行实用程序的更多详细信息...

立即下载并免费试用Kutools for Excel!


演示:使用Kutools for Excel在一个逗号分隔的单元格中返回多个查找值

Kutools for Excel:比200方便的Excel加载项,可以在60天免费试用。 下载并免费试用现在!


Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Js · 1 years ago
    VB command breaks when the range is longer than 154 rows (ie :B154)....
  • To post as a guest, your comment is unpublished.
    M Macklam · 1 years ago
    thank you, firstly i managed to get this to work without the slow down in performance. I'm using values rather that text so my question is i want to bring back all those with less than say 19 points in a list. Can the single cell Extract work for that or does it have to be a specific value?
  • To post as a guest, your comment is unpublished.
    A Ward · 1 years ago
    This simply does not work. I was unable to get it to work in my own application, so I copy/pasted the vba and the formula and it returned an error every time
  • To post as a guest, your comment is unpublished.
    K Ray · 1 years ago
    This works but slows down my excel majorly! Any tips to help speed?
  • To post as a guest, your comment is unpublished.
    Guest · 2 years ago
    Thanks for this post. Do you know how I would go about manipulating the two separate integers this is creating. For example, lets say that the '=SingleCellExtract' function now produces (1 , 2). Is there a way to have a cell next to it that does (1+.5 , 2+.5)?
  • To post as a guest, your comment is unpublished.
    GANGADHAR · 2 years ago
    WHile iam going to paste and save the module ,there is a pop-up message appears that significant loss of functionality compatibility checker