Maybe this one :
Sub Test3()
Dim coll As New Collection, arrIn, arrOut, i As Long, p As Long, v1, v2
arrIn = Sheet1.Range("A1").CurrentRegion.Value
For i = 2 To UBound(arrIn, 1)
On Error Resume Next
coll.Add key:=arrIn(i, 2), Item:=Array(arrIn(i, 2), New Collection)
With coll(arrIn(i, 2))(1)
.Add key:=CStr(arrIn(i, 3)), Item:=Array(arrIn(i, 3), .Count + 1)
End With
On Error GoTo 0
Next i
ReDim arrOut(1 To UBound(arrIn, 1), 1 To 4)
p = 1: arrOut(p, 1) = "SYMBOL": arrOut(p, 2) = "COUNT": arrOut(p, 3) = "SYMBOL": arrOut(p, 4) = "DATE"
For Each v1 In coll
arrOut(p + 1, 1) = v1(0)
arrOut(p + 1, 2) = v1(1).Count
For Each v2 In v1(1)
p = p + 1
arrOut(p, 3) = v1(0) & "-" & Application.WorksheetFunction.Roman(v2(1))
arrOut(p, 4) = v2(0)
Next v2
Next v1
Columns("R:U").ClearContents
Range("R1").Resize(UBound(arrOut, 1), UBound(arrOut, 2)).Value = arrOut
ReDim arrOut(1 To UBound(arrIn, 1), 1 To 1)
For i = 2 To UBound(arrIn, 1)
v1 = coll(arrIn(i, 2))
v2 = v1(1)(CStr(arrIn(i, 3)))
arrOut(i, 1) = v1(0) & "-" & Application.WorksheetFunction.Roman(v2(1))
Next i
Range("P1").Resize(UBound(arrOut, 1), UBound(arrOut, 2)).Value = arrOut
End Sub
Bookmarks