跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中无重复地合并一列中的文本?

Author Siluvia Last modified

你知道如何在Excel中将一列中的文本合并到一个单元格且不包含重复项吗?如果需要根据特定单元格的值来无重复地合并一列中的文本,又该怎么办呢?本文提供了多种方法来解决这些问题。

使用公式无重复地合并一列中的文本
通过VBA代码基于另一个单元格的值无重复地合并一列中的文本
使用一款强大的工具轻松基于另一个单元格的值合并一列中的文本

更多合并单元格的教程…


使用公式无重复地合并一列中的文本

如下图所示,你想将A列中的文本合并到一个单元格且不包含重复项。请按照以下步骤操作。

a screenshot showing the original data and the combined data without duplicates

1. 选择一个空白单元格,将以下公式复制到其中,并同时按下 Alt + Shift + Enter 键。

=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A12, A2:A12, 0)=MATCH(ROW(A2:A12), ROW(A2:A12)), A2:A12, ""))

注意: 在公式中,“, ”是合并文本的分隔符;A2:A12 是你想要合并的列单元格。请根据需要进行更改。

a screenshot of using formula to join texts in a column without duplicates

现在指定列中的文本已无重复地合并在一起。


通过VBA代码基于另一个单元格的值无重复地合并一列中的文本

有时,你可能需要根据另一个单元格的值无重复地合并一列中的文本,如下图所示,你可以按以下步骤完成。

a screenshot showing the original data and the combined results based on another cell value

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 Sub

3. 按下 F5 键运行代码。在弹出的 Kutools for Excel 对话框中,选择包括你要基于其合并文本的值和要合并的文本的区域,然后点击 确定 按钮。

a screenshot of selecting the cells you want to join after running the VBA code

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

a screenshot showing the combined results


使用一款强大的工具轻松基于另一个单元格的值合并一列中的文本

也许你不擅长公式或VBA代码。这里推荐给你 Kutools for Excel 高级合并行功能。使用此工具,只需几次点击即可轻松基于另一个单元格的值合并一列中的文本。

在应用 Kutools for Excel之前,请先下载并安装它

注意:由于该工具会直接应用于原始范围,请在执行以下操作之前备份原始数据。

1. 选择范围(包括要合并的文本和要基于其合并文本的值),点击 Kutools > 合并与拆分 > 高级合并行。

2. 在高级合并行对话框中,请按以下步骤操作:

  • 选择包含要基于其合并文本的值的列,并点击 主键
  • 选择包含要合并到一个单元格的文本的列,并点击 合并 > 逗号;
  • 如果有剩余的列,请为它们指定条件。在这种情况下,我选择了“销售”列并选择 计算 > 求和。
  • 点击 确定 按钮。见截图:

a screenshot showing how to configure the Advanced Combine Rows dialog box

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

a screenshot showing the original data and the combined results

  如果您想免费试用(30天)此工具,请点击下载,然后按照上述步骤进行操作。


相关文章

在Excel中合并重复行并对值求和 在Excel中,当你有一组包含一些重复条目的数据时,经常会遇到这个问题。现在你想合并重复数据并在另一列中对相应的值求和,该如何解决这个问题?试试这篇文章中的方法。

在Excel中用空格、逗号或其他分隔符将多个单元格合并成一个单元格 当你从多列或多行合并单元格到一个单元格时,合并后的数据可能没有任何分隔。但如果你想用指定的标记(如空格、逗号、分号或其他)分隔它们,该怎么办?本教程将为你介绍一些方法。

在Excel中保持数字/日期格式连接单元格 你可能已经注意到,当我们在Excel中应用CONCATENATE函数时,日期格式(2014-01-03)和数字格式(如货币格式$734.7、百分比格式48.9%、小数位数24.5000等)会被移除,并在连接结果中显示为普通数字。本文提供了一些解决方案,帮助你在Excel中连接数据的同时保持日期或数字格式。

在Excel中反转连接函数 我们都知道,Excel中的连接函数可以帮助我们将多个单元格合并成一个单元格,但有时你可能想做连接函数的反向操作,即不是合并单元格,而是将单元格值拆分为多个独立的单元格。本文中的方法将帮助你解决这个问题。

在Excel中如果另一列存在相同值则连接单元格 本文提供了多种方法,帮助你轻松实现当另一列中存在相同值时连接单元格的操作。

更多合并单元格的教程…


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件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中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠