重複したデータを1件として数える(重複件数を一発で数える)

データの件数を数えるならば通常はCOUNT、COUNTA、COUNTIF・・・などがあります。
しかし重複データを1件として数えたい場合には、これらの式だけでは対応できません。

下図のように重複したデータがあります。
個数を数えるだけなら13件ですが、重複は1件として数えると5件となります。

0322

こういった場合は以下の式が使えます。

=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13))

この「1/COUNTIF」を使うことによって重複を「1」と数えることができます。
この図でいうと「りんご」をCOUNTIFで数えると4件ありますね。
これを「1」で割るため「1/4=0.25」となります。
SUMPRODUCTは配列のように列全体を見て合計してくれるので、「0.25*4」と計算し、結果「1」となります。
重複が何件あっても「1」で割り、割った数をまたその件数ぶんだけ掛けるので、最終的に「1」となり、それを合計するので重複を除いた件数が求められるということです。

ちなみに上記の式だと空白セルを含んでいる場合は計算できません。
「0」として計算してしまうので、結果「#DIV/0!」エラーが返ります。

「&""」を使って「0」を空白にし文字列のように扱えばエラーになりません。
そして空白もまた1件として数えてしまうので、これを省くために「-1」と追加します。
以下のような式になります。

=SUMPRODUCT(1/COUNTIF(A1:A13,A1:A13&""))-1

以上です。