重複を除いた件数の集計方法3選
データがあるときに、
重複を除いて、何件あるのかが知りたい、という場合があります。
重複を除いた件数の集計
具体的にいうと、
例えば、右の図のようなデータがある場合に、
A~Dまで「4種類」のデータがあるので、
エクセルの機能で「4」という数値を得たい、
という場合にどうすればいいでしょうか?
まずは、上の図のように、
データが順番に並んでいる場合に使える技を紹介します。
1.一つ上の行と比較をしていく
B2セルに次のような式を入れて下にコピーしましょう。
このようにすると、
件数としてカウントすべき行だけ、
B列に「X」が表示されます。
ですので、あとは、
B列について、「X」が出てくる件数を数えれば、
重複を除いた件数を得ることができます。
2.countifを使う
でも、
右の図のようにデータの順番がグチャグチャのときには、
上の方法は使えません。
そういうときは、countif関数が使えます。
B2セルに次のような式を入れて下にコピーしましょう。
このようにすると、
件数としてカウントすべき行だけ、
B列に「1」が表示されます。
あとは、countif関数を使って、
B列に「1」が何件出てくるか数えればOKです。
3.sumproductを使う
作業用セルを使いたくない、という場合には、
次のような式で、直接計算することもできます。
※説明は、
かなり複雑になってしまうので、
結論だけ書いておきます。
結局、どの方法がいいの?
さて、
今回は、重複を除いた件数の集計方法として、
3つの方法を紹介しましたが、
結局、どの方法を選べばいいと思いますか?
当然、
どんなときでも使えて、作業用のセルもいらない
「3.sumproductを使う」が良い、
と思われるかもしれませんが、
そうとも言い切れません。
というのは、
この方法は、実行時間が一番遅いからです。
試しに、
10000件あるデータについて、
重複を除いた件数を集計してみると、
- 1.一つ上の行と比較をしていく
-
0.67秒
- 2.countifを使う
-
5.01秒
- 3.sumproductを使う
-
17.03秒
という結果が出ました。
時間は、手でストップウォッチで測ったものですので、
測定誤差はかなり大きい、
ということを前提に見て頂きたいのですが、
それにしても、
かなり、実行時間が違うことがわかると思います。
このように、
それぞれの方法は、一長一短ありますので、
適宜使い分けてくださいね!