提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
注册账户
x

or

如何连接Excel中的唯一值?

如果我有一长串填充了重复数据的值列表,现在我只想找到唯一值,然后将它们连接到一个单元格中。 我如何在Excel中快速轻松地处理这个问题?

在列中查找唯一值并用VBA代码将它们连接成一个单元格

在列中查找唯一值并使用Kutools for Excel将它们连接成一个单元格

列出唯一值并将相应的值与VBA代码连接起来

列出唯一值并将相应的值与Kutools for Excel连接起来


箭头蓝色右泡 在列中查找唯一值并用VBA代码将它们连接成一个单元格


下列 用户自定义函数 可以帮助您将唯一值连接到列表中的单个单元格,请按照以下步骤操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到 模块 窗口。

VBA代码:将唯一值连接到单个单元格中:

Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice 20151228
    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(A1:A17,“,”) 进入您想要输出拼接结果的空白单元格,然后按 输入 键获得独特的连接结果,请参阅截图:

doc连结唯一1

注意:在上面的公式中, A1:A17 是您想要连接的单元格范围,逗号“,“是分隔组合值所需的分隔符,您可以根据需要更改它们。


箭头蓝色右泡 在列中查找唯一值并使用Kutools for Excel将它们连接成一个单元格

如果您不熟悉VBA代码, Kutools for Excel 也可以帮助你,你可以结合起来 选择重复和唯一单元格结合 实用程序来实现您需要的结果。

Kutools for Excel : 与超过300方便的Excel加载项,在60天免费试用没有限制.

安装后 Kutools for Excel,请按照以下步骤操作:( 免费下载Kutools for Excel! )

1。 选择您只想组合唯一值的单元格列表。

2。 点击 Kutools > 选择 > 选择重复和唯一单元格,看截图:

doc连结唯一2

3。 在 选择重复和唯一单元格 对话框中选择 全部唯一(包括1 st副本) 选项下 部分,看截图:

提示建议:如果要合并除首先出现的重复项以外的唯一值,请检查 唯一的值只 选项。

doc连结唯一3

4。 然后点击 OK 按钮,只选择了唯一值,然后按 按Ctrl + C 复制它们,然后通过按压将它们粘贴到特定位置 按Ctrl + V,看截图:

doc连结唯一4

5。 选择粘贴的唯一单元格,然后单击 Kutools > 结合,看截图:

doc连结唯一5

6。 在 组合列或行 对话框中选择 结合到单个单元格中 在下面 根据以下选项组合选定的单元格,然后为您的组合数据指定分隔符,请参阅截图:

doc连结唯一6

7。 然后点击 Ok or 申请 按钮,提取的唯一值已经连接成一个单独的单元格,如下面的截图所示:

doc连结唯一7

免费下载Kutools for Excel!


箭头蓝色右泡 列出唯一值并将相应的值与VBA代码连接起来

在另一种情况下,您有一系列包含两列的数据,现在,您只想列出唯一值并连接另一列的相应值以获得以下结果,您是否有任何好方法可以完成此项工作在Excel中?

doc连结唯一8

在这里,您可以应用以下VBA代码来处理这项工作,请按照以下步骤操作:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到 模块 窗口。

VBA代码:列出唯一值并连接相应的数据

Sub test()
'updateby Extendoffice 20151228
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    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
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
        End If
    Next
    Sheets.Add.Cells(1).Resize(xDic.Count, 2).Value = xArr
End Sub

3。 然后按 F5 键以运行此代码,并弹出一个提示框以提醒您根据唯一值选择要连接的数据范围,请参阅屏幕截图:

doc连结唯一9

4。 点击 OK,唯一值已被提取,并且其他列中的相应值已连接在一起形成新的工作表。

注意:在上面的代码中,你可以改变红色的逗号 xArr(xDic.Item(xArr(I,1)),2)= xArr(xDic.Item(xArr(I,1)),2)&“,“&xArr(I,2) 在这个脚本中,您可以将任何其他分隔符分隔为组合数据。


箭头蓝色右泡 列出唯一值并将相应的值与Kutools for Excel连接起来

如果你有 Kutools for Excel,其 先进的组合行 功能,您可以快速轻松地解决此问题,而无需任何代码。

安装后 Kutools for Excel,请按照以下步骤操作:( 免费下载Kutools for Excel! )

1。 首先,如果您想保留原始数据,您应该复制原始数据。 然后根据唯一值选择要连接的数据范围。

2。 然后点击 Kutools > 内容 > 先进的组合行,看截图:

doc连结唯一10

3。 在 先进的组合行 对话框中,单击仅列出唯一值的列名称,然后单击 首要的关键,看截图:

doc连结唯一11

4。 然后点击您想要连接的另一个列名称,然后单击 结合,并选择一个分隔符分隔您的组合数据,请参阅截图:

doc连结唯一12

5。 然后点击 Ok 按钮,这些值将根据另一列的唯一值进行连接,如下面的屏幕截图所示:

doc连结唯一13

免费下载Kutools for Excel!



推荐的Excel生产力工具

Kutools for Excel帮助您提前完成工作,并从人群中脱颖而出

  • 超过300强大的高级功能,专为1500工作场景设计,通过70%提高生产力,让您有更多时间照顾家庭和享受生活。
  • 不再需要记忆公式和VBA代码,从现在起让你的大脑休息一下。
  • 成为3分钟的Excel专家,复杂和重复的操作可以在几秒钟内完成,
  • 每天减少成千上万的键盘和鼠标操作,现在告别职业病。
  • 110,000高效人才和300 +世界知名公司的选择。
  • 60-day full功能免费试用。 60天退款保证。 2多年的免费升级和支持。

将选项卡式浏览和编辑带到Microsoft Office,远比浏览器的选项卡强大

  • Office选项卡专为Word,Excel,PowerPoint和其他Office应用程序设计:Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    MSBrown · 2 years ago
    I was successfully using the VBA function but something has gone wrong with it - I am only having a #VALUE! error returned now in places where it was working previously. I have combed my data for errors and tried removing and re-creating the VBA module, and renaming the function, nothing seems to be working. Any help would be appreciated, thanks!
  • To post as a guest, your comment is unpublished.
    Marek · 2 years ago
    Thank you! Great and simple function works perfect for me!

    https://www.extendoffice.com/documents/excel/3418-excel-concatenate-unique-values.html#a1