KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中合并唯一值?

作者Xiaoyang修改日期

在处理电子表格时,您可能经常需要将某一列中的唯一值合并(连接)在一起,或将唯一条目及其对应的记录汇总成列表。有效处理重复项并呈现清晰的汇总信息,不仅能让数据更整洁,还能让报告更具洞察力。Excel 提供了多种实用方法来实现这些目标——从使用内置函数,到借助高级插件或自定义代码,应有尽有。本教程将详细介绍多种连接唯一值及列出唯一条目与其关联数据的方法,涵盖适用于不同 Excel 版本和用户偏好的解决方案,助您为具体场景选择最合适的方式。

仅连接某列中的唯一值

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


仅连接某列中的唯一值

在 Excel 数据分析中,一项常见任务是将某列中的不同条目合并到单个单元格中。这项操作在创建汇总报告、消除列表中的重复值,或为后续处理准备数据时尤为实用。具体方法的选择取决于您所使用的 Excel 版本、数据集的规模,以及对公式或代码的熟悉程度。以下方法针对不同需求,突出各方案的关键注意事项,并提供确保准确高效执行的实用技巧。

方法 1:使用 TEXTJOIN 和 UNIQUE 函数

对于 Excel 365 和 Excel 2021 用户而言,TEXTJOIN 与 UNIQUE 函数的引入让从列中合并唯一值变得既简单又灵活。

当您的数据列为连续数据,且希望快速将所有唯一项以指定分隔符合并到单个单元格时,此方案堪称理想之选。它能自动剔除重复项,便于审核,并支持随时调整数据范围或分隔符。但请注意,该方法仅适用于最新版 Excel,旧版本不支持 UNIQUE 函数。

在要显示结果的单元格中输入以下公式(假设您的数据位于 A2:A18 单元格):

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

应用 TEXTJOIN 和 UNIQUE 函数连接唯一值

此公式说明:
  • UNIQUE(A2:A18) 将筛选出重复条目,仅从范围 A2:A18 中返回唯一值。
  • TEXTJOIN(", ", TRUE, ...)将这些唯一值合并(连接)到一个单元格中,并以逗号和空格分隔;TRUE 参数可确保在连接过程中自动忽略所有空单元格。

实用提示与故障排除:

  • 请确保您的 Excel 版本支持 UNIQUE 和 TEXTJOIN 函数。若出现 #NAME?错误,可能是因为您正在使用较旧版本。
  • TEXTJOIN 中使用的分隔符可更改为任意您偏好的符号,例如“; ”或“|”。
  • 当您在原始范围内添加或删除数据时,公式将自动更新。
  • 为避免意外出现多余空格或分隔符,请仔细检查公式中的分隔符参数。

方法 2:使用 KUTOOLS AI 助手

当您需要一种无需编写公式即可快速、全自动合并唯一值的方法时,Kutools for Excel 的“AI 助手”工具为您提供了适合所有技能水平用户的高效解决方案。无论您不熟悉 Excel 高级公式,还是面对频繁变动的数据需反复执行相同任务,这一方法都尤为实用。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

安装 Kutools for Excel 后,单击 “Kutools” > “AI 助手”即可打开“KUTOOLS AI 助手”窗格。

  1. 请选择包含您要合并到单个单元格中的值的单元格,并确保所选内容与预期数据一致。
  2. 在聊天框中描述您的需求。例如,您可以输入:
    从所选区域提取唯一值并用逗号连接,将合并结果填入 C2 单元格
  3. 按下 Enter 键或单击“发送”按钮,AI 将分析您的请求。处理完成后,点击“执行”即可让 Kutools 执行操作,结果将按描述返回。

注意事项与提示:

  • 请确保您使用的是最新版 Kutools,以畅享全部 AI 功能。
  • 为获得最佳效果,请在文本命令中明确指定分隔符及目标单元格。
  • KUTOOLS AI 特别适用于处理大型数据范围,或需在不同数据集上重复执行的工作流。

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

对于需要高度灵活性、自定义分隔符,或希望在多个工作簿中复用工具的用户,在 VBA 中编写用户自定义函数(UDF)是自动合并唯一值的高效之选。此 VBA 解决方案兼容所有 Excel 版本,不受新函数可用性的限制。

  • 请在工作簿中启用宏。
  • 如将来仍需使用此 VBA 代码,请将文件另存为“启用宏的工作簿”(.xlsm)。
  • 建议在运行新代码前,定期备份您的工作簿。

1. 按住 ALT + F11,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 在 VBA 窗口中,单击插入 > 模块,然后复制并粘贴以下代码:

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. 返回工作表,在空白单元格中(例如 C2)输入以下公式:

=ConcatUniq(A2:A18,",")

按下 Enter 即可确认。该单元格将显示限定区域内的所有唯一值,并以逗号分隔。

使用 VBA 代码连接唯一值

  • 如果您的数据范围不同,请相应调整 A2:A18.
  • 如需使用其他分隔符,只需将公式中的“,“替换为您偏好的符号(例如)“;“|)即可。
  • 如遇 #NAME?错误,请立即检查是否已启用宏,并确保 UDF 名称完全匹配。

提示:若要在其他工作簿中重复使用此函数,请将 VBA 代码一并复制到对应工作簿的模块中。


方法 4:使用高级 Excel 公式(替代方案)

在不支持 UNIQUE 函数的环境中(例如 Excel 2016 或 Excel 2019),您仍可使用经典函数 IFCOUNTIFTEXTJOIN 组合构建数组公式,以连接唯一值。此方法虽可行,但因计算开销较大,更适合小型数据集。

1. 在目标单元格(例如 C2)中输入以下数组公式(输入后,请按 )Ctrl+Shift+Enter,而非仅按 Enter):

=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A18, A2:A18,0) = ROW(A2:A18) - MIN(ROW(A2:A18)) +1, A2:A18, ""))

2. 如果看到公式周围出现花括号{},说明已正确输入为数组公式,将返回 A2:A18 范围内以逗号分隔的连接唯一值。

注意:此方法要求您调整公式中的范围,使其与您的数据匹配。若处理的范围非常大,计算时间可能会延长。如您不熟悉数组公式,建议优先尝试上述 VBA 或插件解决方案。


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

在数据报告中,您通常不仅需要从一列中提取唯一值,还希望对另一列中对应的条目进行聚合或连接。例如,汇总每位销售人员所售出的所有产品,或整合与同一 ID 关联的所有记录。选择最合适的方法,取决于您数据的复杂程度,以及您更看重自动化、易用性还是兼容性。

方法 1:使用 TEXTJOIN 和 UNIQUE 函数

使用 Excel 365 或 Excel 2021 时,可将 UNIQUE 和 FILTER 函数与 TEXTJOIN 结合,打造强大且完全基于公式的解决方案。此方法尤其适用于汇总数据——当一个值对应多条记录,而您希望获得以分隔符分隔的相关记录列表时,效果尤为出色。

1. 在空白列中输入以下公式,即可列出 A 列中的所有唯一值:

=UNIQUE(A2:A17)

使用公式列出唯一值

2. 现在,若要在每个唯一值旁连接 B 列中的对应值,请在唯一值所在列的下一列(例如,若唯一值从 D2 开始,则在 E2 单元格)输入以下公式,并根据需要向下填充:

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

使用公式列出唯一值并连接匹配的值

此公式说明:
  • UNIQUE(A2:A17) 从 A 列生成一个唯一项数组。
  • FILTER(B2:B17, A2:A17 = D2) 为 D2 中的每个唯一值,生成一个包含 B 列中所有对应值的数组。
  • TEXTJOIN(", ", TRUE, ...)将这些对应值用逗号分隔并连接起来。
  • 如需使用其他分隔符,请相应修改 TEXTJOIN 函数中的", "
  • 为避免出错,请确保公式中的范围长度一致,并确保 FILTER 函数在无匹配项时不会返回错误。
  • 此方法可在数据变动时自动刷新结果,非常适合用于动态汇总表。

方法 2:使用 Kutools for Excel

Kutools for Excel 提供“高级合并行”工具,专为按唯一值分组数据,并使用您指定的分隔符合并对应值而设计。该功能非常适合希望借助图形化界面操作、而不熟悉公式或代码编写的用户。在处理大型数据集,或需要频繁重新分组(如定期生成报告或持续进行数据维护)时,尤为实用。

Kutools for Excel 提供 300 多项高级功能,简化复杂任务,提升创造力与效率。集成 AI 能力,Kutools 精准自动化任务,让数据管理变得轻松自如。Kutools for Excel 的详细信息……         免费试用……

建议在进行更改前,先将原始数据复制到其他位置作为备份。随后,请按照以下步骤操作:

  • 请选择您要整理的数据范围。
  • 导航至 “Kutools” > “合并和拆分” > “高级合并行”,如下图所示:
    点击 Kutools 的“高级合并行”功能
  • 在打开的对话框中:
    • 选择包含重复项的列进行合并,并在“操作”列中将其设为主键。
    • 请选择您希望聚合的列(即要连接的值),并在下拉列表下方的“操作”中指定您偏好的分隔符。
    • 单击确定即可执行操作。
    在对话框中指定选项

结果:

Kutools 将根据您的设置重新整理数据,提取唯一条目,并合并所有关联值。
使用 Kutools 列出唯一值并连接匹配的值

  • 若操作有误,可随时使用 Excel 的撤销功能(Ctrl+Z)轻松恢复。
  • 此流程适用于包含数百乃至数千条记录的数据集,并支持多种分隔符。

方法 3:使用 VBA 代码

借助 VBA 脚本,您可完全掌控数据的提取与汇总方式。该方法兼容所有 Excel 版本,特别适用于自定义工作流、自动化任务,或在 UNIQUE、FILTER 等函数不可用时使用。若您的数据结构频繁变动,此 VBA 解决方案亦可轻松调整。

要使用以下代码,只需按以下步骤操作:

1. 按下 ALT + F11 即可打开 VBA 编辑器。

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 代码

4. 点击 OK,并选择结果表开始位置的首个单元格。

用于选择放置结果的单元格的 VBA 代码

5. 点击 OK 后,代码将生成一个仅包含唯一值及其关联连接数据的表格。

用于列出唯一值并连接匹配值的 VBA 代码

  • 如果出现列数相关的错误,请检查所选内容是否仅包含两列。
  • 如需将分隔符从逗号更改为其他符号,请根据需要调整代码行 xArr(xDic.Item(xArr(I,1)),2) = xArr(xDic.Item(xArr(I,1)),2) & "," & xArr(I,2)
  • 运行新的 VBA 脚本前,请务必备份您的文件。

总之,Excel 提供了多种连接唯一值并整合相关数据的方法。现代 Excel 中的公式方法快速且动态,而 VBA 和 Kutools for Excel 解决方案则提供更广泛的兼容性与更强的控制力。请根据您的数据量、Excel 版本及首选工作流,选择最合适的方法。在尝试脚本或批量操作前,务必先在样本数据上测试,或备份您的工作。立即浏览我们的完整教程合集,获取更多 Excel 指导与高级技巧!


最佳办公效率工具

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

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


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

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱