Надежда это то, что вы хотите:
Sub QuickCombine()
Dim X()
Dim Y()
Dim objDic As Object
Dim lngRow As Long
Dim lngCol As Long
Dim ws As Worksheet
X = Range([a1], Cells(Rows.Count, "G").End(xlUp))
Y = X
Set objDic = CreateObject("scripting.dictionary")
For lngRow = 1 To UBound(X, 1)
If Not objDic.exists(LCase$(X(lngRow, 1) & X(lngRow, 2))) Then
objDic.Add LCase$(X(lngRow, 1) & X(lngRow, 2)), lngRow
Else
Y(lngRow, 1) = vbNullString
Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) = Y(objDic.Item(LCase$(X(lngRow, 1) & X(lngRow, 2))), 3) & "," & X(lngRow, 3)
End If
Next
Set ws = Sheets.Add
[a1].Resize(UBound(X, 1), UBound(X, 2)) = Y
Columns("A").SpecialCells(xlBlanks).EntireRow.Delete
End Sub
получил от этого here.
'Как я могу это достичь?' Что вы пробовали? – findwindow
Я пробовал делать это Pivot, но как-то он всегда возвращается с суммой, а не с комбинированием столбцов. Я новичок в excel – user2854333
Хорошо, я использовал мобильное приложение и, видимо, написал два ответа, где я хотел прокомментировать. Извините за это (удалили ответы сейчас). Поэтому я сказал: вам нужно будет добавить дополнительные сведения о том, как настроены данные и что вы уже пробовали. На первый взгляд, вам нужно перебирать данные, чтобы искать дубликаты, поэтому вам может понадобиться VBA или по крайней мере формула массива. Если вы хотите, чтобы результат выглядел точно так, как ваш пример, это невозможно сделать с помощью сводных таблиц, насколько я знаю – NiH