提示:其他語言是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