跳到主要内容

如何在Excel中串联唯一值?

如果我有一长串的值填充了一些重复数据,那么现在,我只想查找唯一值,然后将它们串联到单个单元格中。 如何在Excel中快速轻松地解决此问题?

在列中查找唯一值,然后使用VBA代码将它们连接到一个单元格中

在一列中查找唯一值,然后使用 Kutools for Excel 将它们连接到一个单元格中

列出唯一值并使用VBA代码连接相应的值

列出唯一值并使用 Kutools for Excel 连接相应的值


箭头蓝色右气泡 在列中查找唯一值,然后使用VBA代码将它们连接到一个单元格中

下列 用户定义功能 可以帮助您将唯一值连接到列表中的单个单元格中,请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

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

VBA代码:将唯一值连接到单个单元格中:

Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice
    Dim xCell As Range
    Dim xDic As Object
    Set xDic = CreateObject("Scripting.Dictionary")
    For Each xCell In xRg
        xDic(xCell.Value) = Empty
    Next
    ConcatUniq = Join$(xDic.Keys, xChar)
    Set xDic = Nothing
End Function

3. 然后回到您的工作表,并输入以下公式: = ConcatUniq(A1:A17,“,”) 放入要输出级联结果的空白单元格,然后按 输入 获取唯一的串联结果的关键,请参见屏幕截图:

doc串联唯一性1

备注:在以上公式中, A1:A17 是您要连接的单元格范围,而逗号“,”是您需要分隔组合值的分隔符,您可以根据需要更改它们。


箭头蓝色右气泡 在一列中查找唯一值,然后使用 Kutools for Excel 将它们连接到一个单元格中

如果您不熟悉VBA代码, Kutools for Excel 也可以帮助您,您可以将 选择重复和唯一单元格结合 实用程序来实现您所需的结果。

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用.

安装后 Kutools for Excel,请执行以下操作: 立即免费下载Kutools for Excel! )

1。 选择仅要合并唯一值的单元格列表。

2。 点击 库工具 > 选择 > 选择重复和唯一单元格,请参见屏幕截图:

3。 在 选择重复和唯一单元格 对话框中选择 全部唯一(包括第一个重复项) 选项下 部分,请参见屏幕截图:

Tips:如果要合并唯一值(不包括首次出现的重复项),请选中 仅唯一值 选项。

doc串联唯一性3

4。 然后点击 OK 按钮,并且只选择了唯一值,然后按 按Ctrl + C 复制它们,然后按将它们粘贴到特定位置 按Ctrl + V,请参见屏幕截图:

doc串联唯一性4

5。 选择粘贴的唯一单元格,然后单击 库工具 > 合并与拆分合并行,列或单元格而不会丢失数据,请参见屏幕截图:

6。 在 合并列或行 对话框,选择 合并成单个单元格 在下面 根据以下选项合并选定的单元格,然后为合并的数据指定分隔符,请参见屏幕截图:

doc串联唯一性6

7。 然后点击 Ok or 使用 按钮,提取的唯一值已连接到一个单元格中,如以下屏幕截图所示:

doc串联唯一性7

立即免费下载Kutools for Excel!


箭头蓝色右气泡 列出唯一值并使用VBA代码连接相应的值

在另一种情况下,您有一个包括两列的数据范围,现在,您只想列出唯一值并连接另一列的相应值以获得以下结果,您是否有任何好的方法来完成这项工作在Excel中?

doc串联唯一性8

在这里,您可以应用以下VBA代码来处理此作业,请执行以下操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

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

VBA代码:列出唯一值并连接相应的数据

Sub test()
'updateby Extendoffice
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the data range", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "Does not support multiple selections", , "Kutools for Excel"
        Exit Sub
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "There must be only two columns in the selected range", , "Kutools for Excel"
        Exit Sub
    End If
    xArr = xRg
    Set xDic = CreateObject("Scripting.Dictionary")
    xDic.CompareMode = 1
    For I = 1 To UBound(xArr)
        If Not xDic.Exists(xArr(I, 1)) Then
            xDic.Item(xArr(I, 1)) = xDic.Count + 1
            xArr(xDic.Count, 1) = xArr(I, 1)
            xArr(xDic.Count, 2) = xArr(I, 2)
        Else
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
        End If
    Next
    Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub

3。 然后按 F5 键运行此代码,并弹出一个提示框,提醒您根据唯一值选择要连接的数据范围,请参见屏幕截图:

doc串联唯一性9

4。 点击 OK,则已提取唯一值,并将它们在另一列中的对应值连接在一起,形成一个新的工作表。

备注:在上面的代码中,您可以更改红色逗号 xArr(xDic.Item(xArr(I,1)),2)= xArr(xDic.Item(xArr(I,1)),2)&“,“&xArr(I,2) 在此脚本中使用您要分隔组合数据的任何其他定界符。


箭头蓝色右气泡 列出唯一值并使用 Kutools for Excel 连接相应的值

如果你有 Kutools for Excel,其 高级组合行 功能,您无需任何代码即可快速轻松地解决此问题。

安装后 Kutools for Excel,请执行以下操作: 立即免费下载Kutools for Excel! )

1。 首先,如果要保留原始数据,则应复制原始数据。 然后根据唯一值选择要连接的数据范围。

2。 然后点击 库工具 > 合并与拆分 > 高级组合行,请参见屏幕截图:

3。 在 高级组合行 对话框中,单击只列出唯一值的列名,然后单击 首要的关键,请参见屏幕截图:

doc串联唯一性11

4。 然后,单击要连接的另一个列名,然后单击 结合,然后选择一个分隔符来分隔合并的数据,请参见屏幕截图:

doc串联唯一性12

5。 然后点击 Ok 按钮,这些值已经根据另一列的唯一值进行了级联,如下图所示:

doc串联唯一性13

立即免费下载Kutools for Excel!

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

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

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Excellent article!
I have a question.
How would delete blanks from start and end to avoid duplicates(caused by spaces) in function ConcatUniq?
Thank you very much!
This comment was minimized by the moderator on the site
I was successfully using the VBA function but something has gone wrong with it - I am only having a #VALUE! error returned now in places where it was working previously. I have combed my data for errors and tried removing and re-creating the VBA module, and renaming the function, nothing seems to be working. Any help would be appreciated, thanks!
This comment was minimized by the moderator on the site
Thank you! Great and simple function works perfect for me! https://www.extendoffice.com/documents/excel/3418-excel-concatenate-unique-values.html#a1
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations