Try this:-
NB:- This code will modify your original Data sheet, Please make Backup.!!!
Sub MG20Dec35
Dim Rng As Range
Dim Dn As Range
Dim n As Long
Dim nRng As Range
Dim Q As Variant
Dim oHds As Variant
oHds = Array("id", "property", "amtoffered", "perce", "address")
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
With CreateObject("scripting.dictionary")
.CompareMode = vbTextCompare
For Each Dn In Rng
If Not .Exists(Dn.Value) Then
.Add Dn.Value, Array(Dn.Offset(, 1), 0, 1)
Else
ReDim ray(1 To 5)
Q = .Item(Dn.Value)
Q(2) = Q(2) + 1
Q(1) = Q(1) + 5
For n = 0 To UBound(oHds)
If n > 0 Then
ray(n + 1) = oHds(n) & Q(2)
Else
ray(n + 1) = oHds(n)
End If
Next n
Range("B1").Offset(, Q(1)).Resize(, 5) = ray
Dn.Offset(, 1).Resize(, 5).Copy Q(0).Offset(, Q(1))
If nRng Is Nothing Then
Set nRng = Dn
Else
Set nRng = Union(nRng, Dn)
End If
.Item(Dn.Value) = Q
End If
Next
End With
If Not nRng Is Nothing Then nRng.EntireRow.Delete
End Sub
Regards Mick
Bookmarks