Hi krishnapunekar
Welcome to the forum
A quick site search finds this old classic
Sub tests()
Dim a, i As Long, b(), n As Long, maxCol As Long, w()
a = Range("a1").CurrentRegion.Resize(, 2).Value
ReDim b(1 To UBound(a, 1), 1 To Columns.Count)
With CreateObject("scripting.dictionary")
.comparemode = vbTextCompare
For i = 1 To UBound(a, 1)
If Not .Exists(a(i, 1)) Then
n = n + 1
.Add a(i, 1), Array(n, 1)
b(n, 1) = a(i, 1)
End If
w = .item(a(i, 1))
w(1) = w(1) + 1
b(w(0), w(1)) = a(i, 2)
.item(a(i, 1)) = w
maxCol = Application.Max(maxCol, w(1))
Next
Range("a1").CurrentRegion.ClearContents
End With
Range("A1").Resize(n, maxCol).Value = b
End Sub
Bookmarks