如何在 Excel 中连接唯一值?
在 Excel 中连接唯一值是一项常见任务,可以通过多种方法实现。本文将探讨不同的技术,以连接某一列中的唯一值,并在连接其对应值的同时列出唯一值。
仅连接列中的唯一值
在数据分析中,有时需要将 Excel 列中的唯一值连接到一个单元格中。此任务可以使用公式、VBA 或 Kutools 来完成,具体取决于您的偏好和数据集的复杂性。下面,我们将探索优化的方法来高效处理这一任务。
方法 1:使用 TEXTJOIN 和 UNIQUE 函数
如果您使用的是 Excel 365 或 Excel 2021,其新的 TEXTJOIN 和 UNIQUE 函数提供了一种简单而高效的方法来连接列中的唯一值。
在您希望获得连接结果的单元格中使用以下公式:
=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18))
- UNIQUE(A2:A18) 从该区域提取唯一的值。
- TEXTJOIN(", ", TRUE, ...) 将这些唯一值连接起来,并用逗号和空格分隔。TRUE 参数会忽略空白单元格。
方法 2:使用 Kutools AI 助手
为了更快且全自动化的解决方案,Kutools for Excel 提供了一个创新工具——“Kutools AI 助手”。只需描述您的任务,AI 就会立即生成所需的结果,无需任何手动设置。这消除了复杂公式或耗时配置的需求,在几秒钟内提供准确的结果。
安装 Kutools For Excel 后,请点击 “Kutools” > “AI 助手” 打开 “Kutools AI 助手” 面板。
- 选择您想要连接唯一值的单元格;
- 在聊天框中输入要求,例如:将选定范围内的唯一值用逗号连接,并将合并结果放入 C2 单元格中。
- 然后,按 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 键即可获得唯一值的连接结果,见截图:
列出唯一值并连接对应的值
在 Excel 中,列出唯一值并连接其对应的值是一项常见任务,尤其是在处理需要汇总或整合的数据集时。本节提供了实现这一目标的有效指南。
方法 1:使用 TEXTJOIN 和 UNIQUE 函数
Excel 的现代函数如 UNIQUE、FILTER 和 TEXTJOIN 让列出唯一值并连接其对应的值变得容易,无需复杂的公式。
1. 使用 UNIQUE 函数列出 A 列中的所有唯一值:
=UNIQUE(A2:A17)
2. 应用 TEXTJOIN 和 FILTER 函数连接唯一值对应的值,向下拖动公式填充其他单元格,见截图:
=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$17, $A$2:$A$17 =D2))
- UNIQUE(A2:A17) 从 A 列中提取不同的值。
- FILTER(B2:B17, A2:A17 = D2) 获取每个唯一值对应的值。
- TEXTJOIN(", ", TRUE, ...) 使用分隔符(例如逗号和空格)连接过滤后的值。
方法 2:使用 Kutools for Excel
如果您有 Kutools for Excel,其强大的 “高级合并行” 功能可以让您轻松列出唯一值并连接其对应的值——快速且简单,无需任何编码或复杂公式。只需选择您的数据,配置设置,让 Kutools 处理其余部分,几秒钟内即可交付专业结果。
1. 将原始数据复制并粘贴到另一个单元格以备份数据。选择数据范围,然后点击 “Kutools” > “合并与分割” > “高级合并行”,见截图:
2. 在 “高级合并行” 对话框中,配置设置:
- 点击您希望基于其合并重复项的列名,然后从 “操作” 列的下拉列表中选择 “主键”;
- 然后,选择您希望合并值的列名,并从 “操作” 列的下拉列表中选择一个分隔符来分隔值;
- 最后,点击确定按钮。
结果:
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 键运行此代码,弹出一个提示框提醒您选择要基于唯一值进行连接的数据范围,见截图:
4. 点击确定,弹出另一个提示框提醒您选择放置结果的单元格:
5. 点击确定,唯一值已被提取,并且另一列中对应的值已连接在一起。见截图:
总之,在 Excel 中连接唯一值可以通过多种方法高效实现,这些方法适用于不同水平的专业知识和需求。通过选择最适合您需求的方法,您可以简化数据处理并提高在 Excel 中管理唯一值的效率。如果您有兴趣探索更多 Excel 技巧和窍门,我们的网站提供了数千个教程。
最佳办公效率工具
🤖 | Kutools AI 助手:基于智能执行、生成代码、创建自定义公式、分析数据并生成图表、调用 Kutools 函数等功能,彻底改变数据分析方式… |
热门功能:查找、高亮或标记重复项 | 删除空行 | 合并不丢失数据的列或单元格 | 四舍五入 ... | |
高级 LOOKUP:多条件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高级下拉列表:快速创建下拉列表 | 从属下拉列表 | 多选下拉列表 .... | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域和列 ... | |
精选功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...)... | |
排名前 15 的工具集: 12 种文本 工具(添加文本、删除特定字符等) | 50 多 种图表 类型(甘特图等) | 40 多种实用 公式(基于生日计算年龄等) | 19 种插入 工具(插入二维码、根据路径插入图片等) | 12 种转换 工具(小写金额转大写、汇率转换等) | 7 种合并与分割 工具(高级合并行、分割单元格等) | 还有更多... |
使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...
Office Tab 将标签式界面引入 Office,让您的工作更加轻松
- 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读。
- 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
- 将您的生产力提升 50%,每天为您减少数百次鼠标点击!