Private Sub Worksheet_Calculate()
Dim d As Object, cel As Range
Set d = CreateObject("Scripting.Dictionary")
For Each cel In Range([F3], [F65536].End(xlUp)).SpecialCells(xlCellTypeVisible)
If Not d.Exists(cel.Text) Then d.Add cel.Text, cel.Text
Next
[F1] = d.Count
End Sub