COUNTIF関数で重複データを1件としてカウントする方法
ここでは、ExcelのCOUNTIF関数で「重複データを1件でカウントする」方法を解説します。
カウント元のデータに重複があった場合、方法を知らないと重複していても全て1件としてカウントされてしまいます。
すると、場合によっては正確な件数を求めることができません。
また、カウントの範囲が1列の場合だけでなく、複数列の場合も紹介します。
1.重複分を1件としてカウントするとは
まずは、ここで紹介する内容を確認します。
紹介するのはCOUNTIF関数で「1列に対して重複を1件としてカウントする方法」と「複数列に対して重複を1件としてカウントする方法」の2つです。
では、それぞれ例を見てみます。
1-1.1列に対して重複を1件としてカウントする
まずは、カウント範囲が1列の場合からです。こちらの方がよくある形だと思います。
上の表では、1列にレモンとりんご、ねぎの3種類がダブって入っています。
まずは、このような1列の範囲を対象に「何種類あるか?」など、重複分を1件としてカウントしたい時の方法です。
1-2.複数列に対して重複を1件としてカウントする
次は、カウント範囲が複数列の場合です。こちらはあまりないケースかもしれませんが、知っておくと便利です。
上の表ではB列に品名が、C列に産地が、それぞれダブって入っています。
このような表から例えば、「品名と産地が同じものは1件とすると、いくつあるか?」など、複数列をひと塊(品名+産地)として見て、重複分を1件としてカウントする方法です。
2.ダブりを1件としてカウントする方法
では、重複分を含まないカウントの仕方を、範囲が1列の場合と複数列の場合で分けて説明します。
2-1.カウント範囲が1列の場合
まずは、カウント範囲が1列の場合からです。
数式の形と、実際の例に分けてみてみましょう。
2-1-1.数式の形
まず、使う関数は「SUM関数」と「COUNTIF関数」です。
SUM関数は「範囲内の値を合計」する関数で、COUNTIF関数は「条件に合うセルをカウント」する関数です。
そしてカウントしたい範囲が1列の場合、数式は、
です。
「範囲」にはカウントしたい範囲を入れます。「範囲」が2回続いていますが、同じ範囲を2度入れてください。
そして、最後に「配列数式」にします。配列数式にする方法は、次項で説明します。
2-1-2.数式を使った例
次に、実際に数式を使った例を見てみましょう。
先ほどの表から、品名が何種類あるかを数えてみます。
例の場合数式は、
{=SUM(1/COUNTIF(B2:B8,B2:B8))}
となります。
ポイントは、カウントしたい範囲を2ヶ所の「範囲」に入れることと、配列数式にすることです。
配列数式にするには、数式入力後にCtrlキーとShiftキーを押しながら、Enterキーを押します。配列数式になると、数式が「{}」で囲まれるので、うまくいったかはここで判断してください。
2-2.カウント範囲が複数列の場合
次に、カウント範囲が複数列の場合です。
数式の形と、実際の例に分けてみてみましょう。
2-2-1.数式の形
まず、使う関数は1列の場合と同じ「SUM関数」と「COUNTIF関数」です。
そして数式の形も同じく、
です。
「範囲」にはカウントしたい範囲を入れます。「範囲」が2回続いていますが、同じ範囲を2度入れてください。 そして数式を「配列数式」にします。
では、1列の時と複数列の時では、なにを変える必要があるのでしょうか?
変える必要があるのは、表の方です。複数列の値をひと塊にした作業列を追加し、この列を「範囲」とするのです。
例えば先ほどの表だと、品名と産地がつながるような列を準備します。
数式は、
=セル番号1&セル番号2
です。
例だとセルD2には、
=B2&C2
という数式を入れています。
後は、追加した列に対して1列の場合と同じ数式でカウントすれば、複数列の場合でも重複分を1件としてカウントすることができるようになります。
ちなみに例の場、数式は、
{=SUM(1/COUNTIF(D2:D8,D2:D8))}
です。
1列の時と、範囲しか変わっていませんね。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
COUNTIF関数に関連したページは、次の通りです。
- COUNTIF関数 使いこなすためのポイントはこちら