跳到主要内容

如何在Excel中不重复的列中加入文本?

您是否知道如何将列中的文本连接到单元格中而在Excel中没有重复项? 如果在基于特定单元格值的列中加入文本而没有重复项,该怎么办? 本文提供了解决问题的方法。

用公式将列中的文本联接在一起,没有重复项
使用VBA代码根据另一单元格值将一列中的文本联接在一起,没有重复项
使用出色的工具轻松将基于另一个单元格值的文本合并到列中

有关合并单元格的更多教程…


用公式将列中的文本联接在一起,没有重复项

如下面的屏幕截图所示,您希望将A列中的文本连接到一个没有重复的单元格中。 请执行以下操作。

1.选择一个空白单元格,将以下公式复制到其中,然后按 其他 + 转移 + 输入 钥匙在同一时间。

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

请注意: 在公式, ”, ”是组合文本的分隔符; A2:A12是您将连接在一起的列单元格。 请根据需要更改它们。

现在,指定列中的文本已合并,没有重复。


使用VBA代码根据另一单元格值将一列中的文本联接在一起,没有重复项

有时,您可能需要在一列中加入文本,而不必根据另一个单元格中的值重复创建文本,如下面的屏幕截图所示,您可以按以下步骤进行操作。

1.在工作表中包含您要加入的文本,请按 其他 + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2.在 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块 然后将下面的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 对话框中,选择范围,包括将要加入的文本所基于的值和将加入的文本,然后单击 OK 按钮。

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


使用出色的工具轻松将基于另一个单元格值的文本合并到列中

也许您不擅长公式或VBA代码。 在这里推荐 高级组合行 实用程序 Kutools for Excel 为了你。 使用此实用程序,只需单击几下,即可基于另一个单元格中的值轻松地将文本连接到列中。

申请前 Kutools for Excel首先下载并安装.

请注意: 由于该实用程序将直接应用于原始范围,因此请在执行以下操作之前复制原始数据。

1.选择范围(包括要加入的文本和要加入的文本所基于的值),然后单击 库工具 > 内容 > 高级合并行。 看截图:

2.在 高级组合行 对话框,请执行以下操作:

  • 选择包含您将基于其连接文本的值的列,然后单击 首要的关键;
  • 选择包含要加入单元格的文本的列,然后单击 结合 > 逗号;
  • 如果还有列,请为它们指定条件。 在这种情况下,我选择“销售”列,然后选择 计算 > 和。
  • 点击 OK 按钮。 看截图:

然后,您可以看到指定列中的所有文本都基于键列进行了连接。 看截图:

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


相关文章

合并重复的行并在Excel中对值求和
在Excel中,当您具有一系列包含某些重复项的数据时,您可能总是会遇到此问题,而现在您想要组合重复数据并在另一列中求和相应的值,您如何解决此问题? 尝试本文中的方法。

在Excel中将多个单元格合并为带有空格,逗号或其他分隔符的单元格
当您将多个列或行中的单元格合并为一个单元格时,合并后的数据可能不会被分隔。 但是,如果要用指定的标记(例如空格,逗号,分号或其他标记)将它们分开,该怎么办? 本教程将为您介绍一些方法。

串联单元格以保持Excel中的数字/日期格式
您可能已经注意到,当我们在Excel中应用CONCATENATE函数时,日期格式(2014-01-03)和数字格式,例如货币格式($ 734.7),百分比格式(48.9%),小数位(24.5000)等。被删除并在连接结果中显示为常规数字。 在本文中,我们提出了几种解决方法,以在Excel中保留日期或数字格式来连接数据。

反转Excel中的串联功能
众所周知,Excel中的Concatenate函数可以帮助我们将多个单元格合并为一个单元格,但是,有时您想要做与Concatenate函数相反的操作,这意味着不合并单元格,而是将单元格值拆分为多个单独的单元格。 本文中的方法将有助于解决问题。

如果Excel中的另一列中存在相同的值,则串联单元格
本文提供了一些方法来帮助您轻松连接单元格(如果Excel的另一列中存在相同的值)。

有关合并单元格的更多教程…

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (5)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I like this formula, but often times i will have a blank cell in my data range and yet this formula won't work with blanks. how would i handle blank cells?
This comment was minimized by the moderator on the site
Thanks! This was helpful. I found that the formula below did the trick. I just needed to select a range to combine text, but didn't want to duplicate values.
=TEXTJOIN(", ",TRUE,UNIQUE($A2:$K2,TRUE))
This comment was minimized by the moderator on the site
This is a much easier way to join unique items based on another column:

=TEXTJOIN(", ",TRUE,UNIQUE(IF(Table1[Category]=Table2[Unique Categories],Table1[Items to Join],"")))

Works a treat, I use it a lot.
This comment was minimized by the moderator on the site
Thanks a Lot. You saved me.
This comment was minimized by the moderator on the site
Omg. You're a lifesaver, I was trying way more complex formulas and this worked like a charm! Thank you!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations