跳至主要内容

如何在 Excel 中连接唯一值?

Author: Xiaoyang Last Modified: 2025-07-31

在 Excel 中连接唯一值是一项常见任务,可以通过多种方法实现。本文将探讨不同的技术,以连接某一列中的唯一值,并在连接其对应值的同时列出唯一值。

仅连接列中的唯一值

列出唯一值并连接对应的值


仅连接列中的唯一值

在数据分析中,有时需要将 Excel 列中的唯一值连接到一个单元格中。此任务可以使用公式、VBA 或 Kutools 来完成,具体取决于您的偏好和数据集的复杂性。下面,我们将探索优化的方法来高效处理这一任务。

方法 1:使用 TEXTJOIN 和 UNIQUE 函数

如果您使用的是 Excel 365 或 Excel 2021,其新的 TEXTJOIN 和 UNIQUE 函数提供了一种简单而高效的方法来连接列中的唯一值。

在您希望获得连接结果的单元格中使用以下公式:

=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18))

 apply TEXTJOIN and UNIQUE functions to concatenate unique values

此公式的解释如下:
  • UNIQUE(A2:A18) 从该区域提取唯一的值。
  • TEXTJOIN(", ", TRUE, ...) 将这些唯一值连接起来,并用逗号和空格分隔。TRUE 参数会忽略空白单元格。
 

方法 2:使用 Kutools AI 助手

为了更快且全自动化的解决方案,Kutools for Excel 提供了一个创新工具——“Kutools AI 助手”。只需描述您的任务,AI 就会立即生成所需的结果,无需任何手动设置。这消除了复杂公式或耗时配置的需求,在几秒钟内提供准确的结果。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

安装 Kutools For Excel 后,请点击 “Kutools” > “AI 助手” 打开 “Kutools AI 助手” 面板。

  1. 选择您想要连接唯一值的单元格;
  2. 在聊天框中输入要求,例如:将选定范围内的唯一值用逗号连接,并将合并结果放入 C2 单元格中
  3. 然后,按 Enter 键或点击 “发送” 按钮。Kutools AI 将分析问题,完成后,请点击 “执行” 按钮获取结果。
 

方法 3:使用用户定义函数

对于需要更多灵活性或想自动化流程的高级用户,可以创建自定义 VBA 函数(UDF)来连接唯一值。这种方法非常适合熟悉编码的用户,或者需要可重复使用的解决方案的用户。

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

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 (A2:A18,","),按 Enter 键即可获得唯一值的连接结果,见截图:

 concatenate unique values with vba code


列出唯一值并连接对应的值

在 Excel 中,列出唯一值并连接其对应的值是一项常见任务,尤其是在处理需要汇总或整合的数据集时。本节提供了实现这一目标的有效指南。

方法 1:使用 TEXTJOIN 和 UNIQUE 函数

Excel 的现代函数如 UNIQUE、FILTER 和 TEXTJOIN 让列出唯一值并连接其对应的值变得容易,无需复杂的公式。

1. 使用 UNIQUE 函数列出 A 列中的所有唯一值:

=UNIQUE(A2:A17)

 List unique values with formula

2. 应用 TEXTJOIN 和 FILTER 函数连接唯一值对应的值,向下拖动公式填充其他单元格,见截图:

=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$17, $A$2:$A$17 =D2))

 List unique and concatenate matched values with formula

此公式的解释如下:
  • UNIQUE(A2:A17) 从 A 列中提取不同的值。
  • FILTER(B2:B17, A2:A17 = D2) 获取每个唯一值对应的值。
  • TEXTJOIN(", ", TRUE, ...) 使用分隔符(例如逗号和空格)连接过滤后的值。
 

方法 2:使用 Kutools for Excel

如果您有 Kutools for Excel,其强大的 “高级合并行” 功能可以让您轻松列出唯一值并连接其对应的值——快速且简单,无需任何编码或复杂公式。只需选择您的数据,配置设置,让 Kutools 处理其余部分,几秒钟内即可交付专业结果。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

1. 将原始数据复制并粘贴到另一个单元格以备份数据。选择数据范围,然后点击 “Kutools” > “合并与分割” > “高级合并行”,见截图:
 click Advanced Combine Rows feature of kutools

2. 在 “高级合并行” 对话框中,配置设置:

  • 点击您希望基于其合并重复项的列名,然后从 “操作” 列的下拉列表中选择 “主键”;
  • 然后,选择您希望合并值的列名,并从 “操作” 列的下拉列表中选择一个分隔符来分隔值;
  • 最后,点击确定按钮。
     specify the options in the dialog box

结果:

Kutools 自动化了提取唯一值并使用指定分隔符连接其对应值的过程。
 List unique and concatenate matched values with kutools

 

方法 3:使用 VBA 代码

虽然 Excel 的内置函数如 UNIQUE 和 TEXTJOIN 可以在一定程度上处理这个问题,但在处理复杂场景或旧版本的 Excel 时可能力不从心。无论您是初学者还是高级用户,本指南将引导您完成使用 VBA 代码列出唯一值并连接其对应值的步骤。

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

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
    Dim xOutputRg As Range
    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
    Set xOutputRg = Application.InputBox("Please select the output cell", "Kutools for Excel", Type:=8)
    If xOutputRg Is Nothing Then Exit Sub
    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
    xOutputRg.Resize(xDic.Count, 2).Value = xArr
End Sub

3. 然后按 F5 键运行此代码,弹出一个提示框提醒您选择要基于唯一值进行连接的数据范围,见截图:

 vba code to select data range

4. 点击确定,弹出另一个提示框提醒您选择放置结果的单元格:

 vba code to select cell to put the result

5. 点击确定,唯一值已被提取,并且另一列中对应的值已连接在一起。见截图:

 vba code to List unique and concatenate matched values

总之,在 Excel 中连接唯一值可以通过多种方法高效实现,这些方法适用于不同水平的专业知识和需求。通过选择最适合您需求的方法,您可以简化数据处理并提高在 Excel 中管理唯一值的效率。如果您有兴趣探索更多 Excel 技巧和窍门,我们的网站提供了数千个教程

最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!