重複を除いた件数の集計方法3選

データがあるときに、
重複を除いて、何件あるのかが知りたい、という場合があります。

重複を除いた件数の集計

unique_1

具体的にいうと、
例えば、右の図のようなデータがある場合に、
A~Dまで「4種類」のデータがあるので、
エクセルの機能で「4」という数値を得たい、
という場合にどうすればいいでしょうか?

まずは、上の図のように、
データが順番に並んでいる場合に使える技を紹介します。

1.一つ上の行と比較をしていく

B2セルに次のような式を入れて下にコピーしましょう。

B2セル: =IF(A2=A1,"","X")

このようにすると、
件数としてカウントすべき行だけ、
B列に「X」が表示されます。

unique_1_2

ですので、あとは、
B列について、「X」が出てくる件数を数えれば、
重複を除いた件数を得ることができます。

2.countifを使う

unique_1_3

でも、
右の図のようにデータの順番がグチャグチャのときには、
上の方法は使えません。

そういうときは、countif関数が使えます。
B2セルに次のような式を入れて下にコピーしましょう。

B2セル: =COUNTIF(A$2:A2,A2)

このようにすると、
件数としてカウントすべき行だけ、
B列に「1」が表示されます。

unique_1_4



あとは、countif関数を使って、
B列に「1」が何件出てくるか数えればOKです。

3.sumproductを使う

作業用セルを使いたくない、という場合には、
次のような式で、直接計算することもできます。

※説明は、
かなり複雑になってしまうので、
結論だけ書いておきます。

=SUMPRODUCT(1/COUNTIF(A2:A11,A2:A11))

結局、どの方法がいいの?

さて、
今回は、重複を除いた件数の集計方法として、
3つの方法を紹介しましたが、
結局、どの方法を選べばいいと思いますか?

当然、
どんなときでも使えて、作業用のセルもいらない
「3.sumproductを使う」が良い、
と思われるかもしれませんが、
そうとも言い切れません。

というのは、
この方法は、実行時間が一番遅いからです。

試しに、
10000件あるデータについて、
重複を除いた件数を集計してみると、

1.一つ上の行と比較をしていく

0.67秒

2.countifを使う

5.01秒

3.sumproductを使う

17.03秒

という結果が出ました。

時間は、手でストップウォッチで測ったものですので、
測定誤差はかなり大きい、
ということを前提に見て頂きたいのですが、

それにしても、
かなり、実行時間が違うことがわかると思います。

このように、
それぞれの方法は、一長一短ありますので、
適宜使い分けてくださいね!

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。