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列の場合、数式は、

{=SUM(1/COUNTIF(範囲,範囲))}

です。

 

「範囲」にはカウントしたい範囲を入れます。「範囲」が2回続いていますが、同じ範囲を2度入れてください。 

 

そして、最後に「配列数式」にします。配列数式にする方法は、次項で説明します。

 

2-1-2.数式を使った例

次に、実際に数式を使った例を見てみましょう。

 

先ほどの表から、品名が何種類あるかを数えてみます。

例の場合数式は、

{=SUM(1/COUNTIF(B2:B8,B2:B8))}

となります。

 

ポイントは、カウントしたい範囲を2ヶ所の「範囲」に入れることと、配列数式にすることです。

 

配列数式にするには、数式入力後にCtrlキーとShiftキーを押しながら、Enterキーを押します。配列数式になると、数式が「{}」で囲まれるので、うまくいったかはここで判断してください。

 

2-2.カウント範囲が複数列の場合

次に、カウント範囲が複数列の場合です。

 

数式の形と、実際の例に分けてみてみましょう。

 

2-2-1.数式の形

まず、使う関数は1列の場合と同じ「SUM関数」「COUNTIF関数」です。

 

そして数式の形も同じく、

{=SUM(1/COUNTIF(範囲,範囲))}

です。

 

「範囲」にはカウントしたい範囲を入れます。「範囲」が2回続いていますが、同じ範囲を2度入れてください。 そして数式を「配列数式」にします。

 

では、1列の時と複数列の時では、なにを変える必要があるのでしょうか?

 

変える必要があるのは、表の方です。複数列の値をひと塊にした作業列を追加し、この列を「範囲」とするのです。

例えば先ほどの表だと、品名と産地がつながるような列を準備します。

 

数式は、

=セル番号1&セル番号2

です。

 

例だとセルD2には、

=B2&C2

という数式を入れています。

 

後は、追加した列に対して1列の場合と同じ数式でカウントすれば、複数列の場合でも重複分を1件としてカウントすることができるようになります。

ちなみに例の場、数式は、

{=SUM(1/COUNTIF(D2:D8,D2:D8))}

です。

 

1列の時と、範囲しか変わっていませんね。

 

以上、参考になれば幸いです。

 


口コミ・評判のいいExcel本の紹介】


Top