Sub COMBO()
Dim r As Range: Set r = Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row)
Dim AR() As Variant: AR = r.Value2
Dim SD As Object: Set SD = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(AR)
If i > 1 Then If AR(i, 1) = "" Then AR(i, 1) = AR(i - 1, 1)
SD(AR(i, 1)) = Join(Array(SD(AR(i, 1)), AR(i, 2)), IIf(IsEmpty(SD(AR(i, 1))), vbNullString, ","))
Next i
Range("D1").Resize(SD.Count) = Application.Transpose(SD.keys())
Range("E1").Resize(SD.Count) = Application.Transpose(SD.items())
End Sub