簡體   English   中英

Excel根據另一列的值合並/合並一個列

[英]Excel Combining/Concatenating one column based on the value of another

抱歉,這個問題已經存在,我搜尋了一段時間,但找不到任何東西。

我在Excel中有2列,我需要將另一列的值相同的1列的值連接起來。 例如,我有這個:

A  | B
12 | Value 1
10 | Value 2
13 | Value 3
12 | Value 4
10 | Value 5

我想出去:

A  | B
12 | Value 1, Value 4
10 | Value 2, Value 5
13 | Value 3

我有成千上萬的行,理想情況下,我希望它用結果創建一個新的工作表,而不破壞現有的工作表。 B列中還有一些空白值,我希望它忽略而不是連接在一起。

提前致謝。

嘗試這個:

Sub combineValues()
    Dim dic As Dictionary
    Dim key, val, i, p, k
    Set dic = New Dictionary
    For i = 1 To Worksheets(1).Range("A65536").End(xlUp).Row
        key = Worksheets(1).Cells(i, 1).Value
        val = Worksheets(1).Cells(i, 2).Value
        If dic.Exists(key) Then
            dic.Item(key) = dic.Item(key) & ", " & val
        Else
            dic.Add key, val
        End If
    Next
    p = 1
    For Each k In dic.Keys
        Worksheets(2).Cells(p, 1) = k
        Worksheets(2).Cells(p, 2) = dic.Item(k)
        p = p + 1
    Next
End Sub

請注意,您必須在“參考”中包括“ Microsoft腳本運行時”,才能使用Dictionary

經過以下[Sheet 1]測試:

1   value 1
2   value 2
3   value 3
1   value 4
1   value 5
3   value 6
3   value 7
2   value 8
1   value 9
2   value 10
2   value 11
2   value 12

結果如下[表2]:

1   value 1, value 4, value 5, value 9
2   value 2, value 8, value 10, value 11, value 12
3   value 3, value 6, value 7

我發現Passerby的答案效果很好,但就我而言,我有幾列可以運行此列,並且在某些情況下,有空單元格。 為了避免獲取,,條目,我添加了以下內容:

If val <> "" Then

之前

dic.Item(key) = dic.Item(key) & ", " & val

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM