この記事では、重複を除いた正確な件数をカウントする3つの方法を紹介します。
また、どの方法がどのような状況に向いているのかなどについても併せて解説していきます。
先に対応策の項目を示しておくと、以下のような方法となります。
・配列数式+COUNTIFS関数 → 複数条件対応可能。高機能だが数式が複雑。
・ピボットテーブル → 視覚的でわかりやすい。関数不要で出現回数も同時確認可能。慣れれば最も効率的。
それぞれの性質を理解したうえで、適宜使い分けするようにしてください。
それではサンプルを見ていきましょう。
エクセルで重複を除いてカウントする方法【重複は1件と数える:SUMPRRODUCT関数】
シンプルで確実に重複を除いたカウントを行いたい、または基本的な重複除外で十分な場合におすすめです。
B列に商品名が入力されていて、その中の重複を除いたユニークな商品数を知りたい場合(例:「りんご」が何回登場しても1とカウントする)、SUMPRODUCT関数とCOUNTIF関数を組み合わせる方法を使います。
ちなみにSUMPRODUCT関数とは、様々な使い方がありますが、たとえば指定した範囲の要素を合計するという性質があります。
「SUMPRODUCT(範囲1)」の形で使用されますが、簡単な例を見てみましょう。

A1~A4にそれぞれ「2,3,5,1」の数字が入っていた際に、SUMPRRODUCT関数を使用すると、「SUMPRODUCT({2; 3; 5; 1})」という形で、一旦配列として処理がされます。
この配列をすべて合算することで「11」と表示されることになります。
では、実際に重複を除いてカウントする方法として、先ほどのデータを使います。

B列に商品名データがあり、D3セルに重複除外した商品名のカウント数を表示したい場合、SUMPRODUCT関数とCOUNTIF関数を組み合わせていきます。
先に答えを提示すると、D3セルには、「=SUMPRODUCT(1/COUNTIF(B3:B8,B3:B8))」と入力します。
「COUNTIF(B3:B8,B3:B8)」は各項目が範囲内で何回出現するかを配列で返します。
りんご、バナナ、梨はそれぞれ2回ずつ登場しているため、{2,2,2,2,2,2}という配列が返されます。
「1/COUNTIF(…)」により、出現回数の逆数を計算します(例:2回出現なら1/2)。つまり、{0.5,0.5,0.5,0.5,0.5,0.5}という配列が返されます。
「SUMPRODUCT」でそれらを合計することで、つまりSUMPRRODUCT({0.5,0.5,0.5,0.5,0.5,0.5})を計算することで、結果として重複を除いたカウントが完成します。
よって、D3セルには、「B3:B8の範囲内のユニークな項目数」が表示されることになります。

この方法により、「りんご」が2回、「バナナ」が2回、「梨」が2回出現していても、それぞれ1つとしてカウントされ、結果は3種類のため「3」となります。
ただし、この方法では空欄がある場合にエラーが発生することがあるため、データに空欄が含まれる可能性がある場合は注意が必要です(「B3:B8」ではなく、空欄を含む「B3:B9」などと設定すると「#DIV/0!」とエラー表示がされてしまいます)。

エクセルで重複を除いてカウントする方法【複数条件:SUMPRODUCT関数、COUNTIFS関数】
この方法は、複数の条件を満たすデータの中から重複を除いてカウントするというものです。
先ほどの「単一条件のみ」という制限は解消されます。
B列に顧客名、C列に地域が入力されていて、「東京都」に住む顧客の重複を除いた数を知りたい場合、配列数式を使った複数条件での重複除外カウントを活用していきます。

先に答えを提示すると、E3セルには、「=SUMPRODUCT((C3:C12=”東京都”)/COUNTIFS(B3:B12,B3:B12,C3:C12,”東京都”))」と入力します。
「COUNTIFS(B3:B12,B3:B12,C3:C12,”東京都”)」とは、各顧客名が「東京都」の条件下で何回出現するかを計算する関数です。
よって、「(C3:C12=”東京都”)」で東京都の行を抽出し、「/COUNTIFS(…)」で重複を調整し、「SUMPRODUCT」で合計を出すという内容となります。

ただし、この計算式の場合、条件が増えるほど数式が複雑になってしまいますので、管理のしやすさに注意が必要です。
エクセルで重複を除いてカウントする方法【重複は1件と数える:関数以外】
次に紹介する方法が、最も視覚的でわかりやすい方法となりますが、関数を使わないピボットテーブル機能を使用します。

A列に顧客名、B列に地域が入力されていて、これらの重複を除いたカウントを視覚的に確認したい場合、ピボットテーブルを使用しますが、これは「データを自動的に集計し、重複を除外した状態で表示する」というものです。
まず、データ範囲(A1:B10)を選択し、「挿入」タブから「ピボットテーブル」をクリックします。

ピボットテーブルの作成ダイアログが表示されたら、「行」エリアに「顧客名」をドラッグ&ドロップし、「値」エリアに「顧客名」をもう一度ドラッグ&ドロップします。

先ほど、「データを自動的に集計し」と書きましたが、ピボットテーブルの特徴は、同じ項目は自動的に1つにまとめられ、その出現回数が「個数」として表示されることです。
これは、重複した顧客名は1行にまとめられ、右側に出現回数が表示されるため、ユニークな顧客数は行数を数えることで簡単に把握できるというものです。

この方法を使用することで、関数を使わずに重複除外カウントを実現でき、さらに各項目の出現回数も同時に確認できます。
まとめ Excelで重複を除外してカウント(複数・単一:同じ:関数を利用)する方法
ここでは、Excelで重複を除外してカウント(複数・単一:同じ:関数を利用)する方法について説明してきました。
特にデータ分析や顧客管理では、重複除外カウントは頻繁に使用される重要な技術となります。
状況に応じて最適な方法を選択することで、正確で効率的なデータ処理が可能になります。
それぞれの方法を理解し、業務に役立てていきましょう。


コメント