「Excel」における「重複データのカウント」はよくある作業で、単純なCOUNT関数や、フィルタリングされたデータセットで簡単に実行することができる。だが、データの値自体よりもカウント値の方が重要な場合は、作業が少し難しいと感じるかもしれない。たとえば、何らかの値が1回、2回、3回、4回・・・と出現する回数を知る必要があるかもしれない。つまり、単純なカウントについての、条件付きカウントが必要ということだ。複雑に思えるかもしれないが、この問題は幸いなことに実は単純だ。この記事では、補助カラムとシンプルなマトリックス表を利用した簡単なソリューションを紹介する。式を使うソリューションが必要なら、それも取り上げる。
筆者は64ビット版の「Windows 10」で「Excel 2016」を使用しているが、ここで紹介するソリューションは、Excel 2007~2016で利用できる。「Excel 2003」以前のバージョンでは、COUNTIFS関数がサポートされていない。何らかのデータセットで作業してもいいし、「.xlsx」形式のデモファイルをダウンロードしてもいい。
準備
「条件付きカウント」とはどういう意味だろう、と思っている人がいるかもしれない。ExcelのCOUNTIFS関数には、まさにそういう機能がある。だが、条件付きで今回カウントするのは、普通の値ではなくカウント値だ。図Aは、シンプルなデータセットを示している。最初のステップでは、ある値がこのデータセットに出現する回数をカウントする。これは、次の単純なCOUNT関数を利用すれば、いとも簡単に実行できる。
COUNT(列, 値)
「列」は、カウントしようとしている値を含む列を参照し、「値」は、その列内のセルを指す。C列に打ち込むカウントの関数は、以下の通りだ。
=COUNTIF(B:B,B3)
この関数は、列の参照(B:B)を利用して、各値がB列に出現する回数をカウントする。
- MikeとSusanは、このデータセットで1つのレコードにしか出現しない。
- JohnとGeorgeは、このデータセットで2つのレコードに出現する。
- Dawnは、このデータセットで5つのレコードに出現する。

図A:COUNT関数を利用して、同じ値が出現する回数を返す。
列の参照は強力なツールだが、限界が少々ある。実際のデータセットの上下にあるB列の空白セルを、ほかのどんなことにも利用できないのだ。さて、人物ごとのレコード数を知ることが目的ではなく、レコードが何回繰り返されているかを知りたいと仮定しよう。つまり、1回、2回、3回・・・とレコードが出現する回数を知る必要がある。
カウント値の条件付きカウント
単純なデータセットなので、COUNT関数の結果を見れば、以下のことがすぐにわかる。
- MikeとSusanの2人は、それぞれ1つのレコードに出現する。
- JohnとGeorgeの2人は、2つのレコードに出現する。
- 3~4個のレコードに出現する人はいない。
- Dawnつまり1人だけ5つのレコードに出現する。
- 6つ以上のレコードに出現する人はいない。
名前は簡単に省けるし、名前を省いても結果の重要性は変わらない。われわれはカウント値を条件付きでカウントしたところであり、実際の値をカウントしたわけではない。筆者が名前に言及したのは、ひとえに結果を明確にするためだ。
図Bは、COUNTIFS関数を使って、C列のCOUNT関数の結果を条件付きカウントしたマトリックス表だ。

図B:簡単なマトリックス表で、COUNT関数の結果をカウントしている。