如何在Excel中无重复地合并一列中的文本?
你知道如何在Excel中将一列中的文本合并到一个单元格且不包含重复项吗?如果需要根据特定单元格的值来无重复地合并一列中的文本,又该怎么办呢?本文提供了多种方法来解决这些问题。
使用公式无重复地合并一列中的文本
通过VBA代码基于另一个单元格的值无重复地合并一列中的文本
使用一款强大的工具轻松基于另一个单元格的值合并一列中的文本
更多合并单元格的教程…
使用公式无重复地合并一列中的文本
如下图所示,你想将A列中的文本合并到一个单元格且不包含重复项。请按照以下步骤操作。

1. 选择一个空白单元格,将以下公式复制到其中,并同时按下 Alt + Shift + Enter 键。
=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A12, A2:A12, 0)=MATCH(ROW(A2:A12), ROW(A2:A12)), A2:A12, ""))
注意: 在公式中,“, ”是合并文本的分隔符;A2:A12 是你想要合并的列单元格。请根据需要进行更改。

现在指定列中的文本已无重复地合并在一起。
通过VBA代码基于另一个单元格的值无重复地合并一列中的文本
有时,你可能需要根据另一个单元格的值无重复地合并一列中的文本,如下图所示,你可以按以下步骤完成。

1. 在包含要合并文本的工作表中,按下 Alt + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2. 在 Microsoft Visual Basic for Applications 窗口中,点击 插入 > 模块,然后将以下 VBA 代码复制到模块代码窗口中。
VBA代码:基于另一个单元格的值无重复地合并一列中的文本
Sub JoinTextsWithoutDuplicates()
'Updated by Extendoffice 20190924
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 xValue
Dim xStr, xStrValue As String
Dim xB As Boolean
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
xStrValue = xArr(I, 2)
xB = True
For Each xStr In Split(xArr(xDic.Item(xArr(I, 1)), 2), ",")
If xStr = xStrValue Then
xB = False
Exit For
End If
Next
If xB Then
xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
End If
End If
Next
Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub3. 按下 F5 键运行代码。在弹出的 Kutools for Excel 对话框中,选择包括你要基于其合并文本的值和要合并的文本的区域,然后点击 确定 按钮。

然后提取唯一值,并将其对应的另一列中的唯一文本合并并放置在新工作表中。

使用一款强大的工具轻松基于另一个单元格的值合并一列中的文本
在应用 Kutools for Excel之前,请先下载并安装它。
注意:由于该工具会直接应用于原始范围,请在执行以下操作之前备份原始数据。
1. 选择范围(包括要合并的文本和要基于其合并文本的值),点击 Kutools > 合并与拆分 > 高级合并行。
2. 在高级合并行对话框中,请按以下步骤操作:
- 选择包含要基于其合并文本的值的列,并点击 主键;
- 选择包含要合并到一个单元格的文本的列,并点击 合并 > 逗号;
- 如果有剩余的列,请为它们指定条件。在这种情况下,我选择了“销售”列并选择 计算 > 求和。
- 点击 确定 按钮。见截图:

然后你可以看到指定列中的所有文本都基于关键列进行了合并。见截图:

如果您想免费试用(30天)此工具,请点击下载,然后按照上述步骤进行操作。
相关文章
在Excel中合并重复行并对值求和 在Excel中,当你有一组包含一些重复条目的数据时,经常会遇到这个问题。现在你想合并重复数据并在另一列中对相应的值求和,该如何解决这个问题?试试这篇文章中的方法。
在Excel中用空格、逗号或其他分隔符将多个单元格合并成一个单元格 当你从多列或多行合并单元格到一个单元格时,合并后的数据可能没有任何分隔。但如果你想用指定的标记(如空格、逗号、分号或其他)分隔它们,该怎么办?本教程将为你介绍一些方法。
在Excel中保持数字/日期格式连接单元格 你可能已经注意到,当我们在Excel中应用CONCATENATE函数时,日期格式(2014-01-03)和数字格式(如货币格式$734.7、百分比格式48.9%、小数位数24.5000等)会被移除,并在连接结果中显示为普通数字。本文提供了一些解决方案,帮助你在Excel中连接数据的同时保持日期或数字格式。
在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 for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...
Office Tab 为 Office 带来标签式界面,让你的工作更加轻松
- 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
- 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
- 办公效率提升50%,每天帮你减少上百次鼠标点击!