Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr As Long, lr1 As Long
lr = Range("A1048576").End(xlUp).Row
Application.ScreenUpdating = False
lr1 = Range("D1048576").End(xlUp).Row
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Range("D2:D" & lr1).Clear
Range("A2:A" & lr).Copy Range("C2")
lr1 = Range("C1048576").End(xlUp).Row
Range("$C$2:$C$" & lr1).RemoveDuplicates Columns:=1, Header:=xlNo
lr1 = Range("C1048576").End(xlUp).Row
For i = 2 To lr1
Range("D" & i).Value = Application.WorksheetFunction.CountIf(Range("A2:A" & lr), Range("C" & i))
Next i
End If
Application.ScreenUpdating = True
End Sub