Try this:-
Sub RK()
Dim Rng As Range, Dn As Range, n As Long, c As Long
Set Rng = Range(Range("B2"), Range("B" & Rows.Count).End(xlUp))
ReDim ray(1 To Application.Max(Rng))
For Each Dn In Rng
    ray(Dn.Value) = ray(Dn.Value) & IIf(ray(Dn.Value) = "", Dn.Address, "," & Dn.Address)
Next Dn
For n = UBound(ray) To 1 Step -1
    If ray(n) <> "" Then
        c = c + 1
        For Each Dn In Range(ray(n)).Areas
            Range(Dn.Address).Offset(, 1).Value = c
        Next Dn
    End If
Next n
End Sub