объединение дубликатов и объединение в строки для excel 2007

Я хочу сделать следующее, но не знаю, как это сделать...Можете помочь по этому поводу?

Оригинал

Column1   Column2
TitleA       123
TitleA       345
TitleB       888
TitleC       567
TitleC       789

после

Column1   Column2
TitleA       123   345
TitleB       888
TitleC       567   789

признателен, если кто может помочь посоветовать 🙂

12
задан tohuwawohu
25.12.2022 19:49 Количество просмотров материала 3109
Распечатать страницу

1 ответ

вы можете начать с этой старой макрос у меня и попробовать настроить ее под свои потребности, любое руководство вам нужно, просто спросите.

Sub ConcatenateAcrossColumns()

Dim data, numrows As Long, result, i As Long, n As Long

'turn off screen update
Application.ScreenUpdating = 0

'check if the data on the sheet start where the code expects it
If Range("a1") = "" Then Exit Sub

'define data range
With Range("a1", Cells(Rows.Count, "a").End(xlUp)).Resize(, 2)

    'sort data range by A1
    .Sort key1:=Range("a1"), Header:=xlNo
    'take data to array
    data = .Value
    'setting variable value equal to number of rows in array
    numrows = UBound(data)
    'creating result array
    ReDim result(1 To numrows, 1 To 1)

    'start loop from 1 row to the last row of array
    For i = 1 To numrows
    'taking first animal name to a variable
    temp = data(i, 1)
    'put number of the animal to result array
    result(i, 1) = result(i, 1) & data(i, 2)
    'loop until value of temp not equals current animal - ex.: cat <> dog
    For n = i + 1 To numrows
        'if cat = cat write it's corresponding value from the second column to result array
        If data(n, 1) = temp Then result(i, 1) = result(i, 1) & "," & data(n, 2) Else Exit For

    Next
    'going 1 row backward
    i = n - 1

    Next
    'output result array to the sheet
    .Offset(, 2).Resize(, 1) = result

End With

End Sub
0
отвечен Raystafarian 2022-12-27 03:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх