Группировать текстовые данные из строк в ячейку
У меня есть такие данные:
A B
Start End
A D
A X
A Y
A Z
B P
B R
B O
B T
.. ..
Без VBA как мне сгруппировать эти данные?:
A D,X,Y,Z
B P,R,O,T
Через VBA у меня есть:
Sub identify_unique_values()
Dim vData As Variant
Dim lLoop As Long
Dim strID As String, strDesc As String
'// Original data sheet, change codename to suit
vData = Sheet1.UsedRange.Value
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For lLoop = 1 To UBound(vData, 1)
strID = vData(lLoop, 1): strDesc = vData(lLoop, 2)
If Not .exists(strID) Then
.Add strID, strDesc
Else
.Item(strID) = .Item(strID) & " " & strDesc
End If
Next
'// Data output, change sheet codename to suit
Worksheets("Sheet2").Range("A1").Resize(.Count).Value = Application.Transpose(.keys)
Worksheets("Sheet2").Range("B1").Resize(.Count).Value = Application.Transpose(.items)
End With
End Sub
Чтобы скопировать значения из листа 1 в лист 2 и вставить его в нужное место, используя vba
1 ответ
Если предположить, Start
в A1
Пожалуйста, попробуйте, в C2:
=IF(A1=A2,C1&","&B2,B2)
и в D2:
=LEN(C2)
и скопировать оба вниз, чтобы удовлетворить затем отфильтровать ColumnD для 7
,
Более общее решение, которое должно работать для любого размера набора (будь то регулярного размера или нет) при условии сортировки ColumnA, будет применяться вместо этого в D2:
=A2<>A3
и фильтр ColumnD для TRUE
,
Чтобы извлечь только необходимые результаты, формулы должны быть заменены значениями, скажем, с помощью Select, Copy, Paste Special, Values.