Try this - results in sheet2:
Sub x()
Dim oDic As Object, vOut(), vMax(), vIn(), i As Long, n As Long
vIn = Sheet1.Range("A4", Sheet1.Range("A" & Rows.Count).End(xlUp)).Resize(, 3).Value
ReDim vOut(1 To UBound(vIn, 1), 1 To UBound(vIn, 1))
ReDim vMax(1 To UBound(vIn, 1))
Set oDic = CreateObject("Scripting.Dictionary")
With oDic
For i = 1 To UBound(vIn, 1)
If Not .Exists(vIn(i, 1)) Then
n = n + 1
vOut(n, 1) = vIn(i, 1)
vOut(n, 2) = vIn(i, 3)
.Add vIn(i, 1), n
vMax(.Item(vIn(i, 1))) = 3
ElseIf .Exists(vIn(i, 1)) Then
vOut(.Item(vIn(i, 1)), vMax(.Item(vIn(i, 1)))) = vIn(i, 3)
vMax(.Item(vIn(i, 1))) = vMax(.Item(vIn(i, 1))) + 1
End If
Next i
End With
Sheet2.Range("A1").Resize(n, WorksheetFunction.Max(vMax)) = vOut
End Sub
Bookmarks