データがどの程度多いのかわかりませんが、上のような
関数でいいと思います。
B列 =countif(A:A,A2) ですね。
C列 =countif($A$1:A2,A2) の方がいいと思います。
上のような結果を求めるためにマクロ(VBA)を作成しても早くなるとは思え
ません。
重複している個数を調べるだけなら、A列だけを選択してピボットテーブルを
作成し、データの個数で集計する方法も考えられます。
どちらにしろ、大量のデータで確かめた訳ではないのでどの程度の時間で処理
できるのかはわかりません。