Excel関数で重複を除いてカウントする方法をお探しですね。
広告
Excelで「何種類あるか」を数える方法【重複を除いてカウント】
Excelで商品名や顧客名、アンケート回答などの一覧を扱っていると、「全部で何件あるか」ではなく「重複を除くと何種類あるか」を知りたいときってありますよね。
単純にCOUNTA関数で数えると、同じ値も全部カウントされてしまうので、正確な種類数や実際の人数が分かりません。
この記事では、Excelで重複を除いて「何種類あるか」をカウントする方法を、お使いのExcelのバージョンやデータの状態に合わせて分かりやすく解説します。
「何種類あるか」を数えるってどういうこと?
Excelで「何種類あるか」を調べるというのは、同じ値が何回出てきても1種類として数えるということです。
例えば、A列に「りんご、みかん、りんご、バナナ、みかん」と入力されているとします。
データの件数は5件ですが、種類数は「りんご・みかん・バナナ」の**3種類**ですよね。
こういう重複を除いた数のことを、「ユニーク数」「一意のデータ数」「重複除外カウント」なんて呼んだりします。
どんなときに使うの?
仕事でよくあるのは、こんな場面です。
– 売上明細から取引先が**何社あるか**を知りたい
– 参加履歴から実際の参加者が**何人いるか**を確認したい
– 問い合わせ一覧からカテゴリが**何種類あるか**を調べたい
単純な件数だと実際より多く見えてしまうので、報告書や分析資料では重複を除いたカウントがとても大切になります。
特に顧客リストやアンケート結果のように同じ値が繰り返し出てくるデータでは、正しい集計方法を知らないと判断を間違えてしまうかもしれません。
大きく分けて2つの方法がある
重複を除いて種類数を数える方法は、大きく分けると2つあります。
1. **Excelの機能で重複を削除して数える方法**
一度だけ確認できればOKな場合に便利
2. **関数で自動計算する方法**
データが増減するたびに自動で結果を更新したい場合に便利
さらに、Microsoft 365やExcel 2021以降なら**UNIQUE関数**が使えるので、以前よりずっと簡単に求められるようになっています。
【新しいExcel】UNIQUE関数とCOUNTA関数で簡単カウント
Microsoft 365、Excel 2021、Excel 2024などの新しいExcelを使っているなら、**UNIQUE関数とCOUNTA関数を組み合わせる方法**が一番分かりやすいです。
UNIQUE関数って何?
UNIQUE関数は、指定した範囲から重複を除いた値だけを取り出してくれる関数です。
COUNTA関数は空白じゃないセルの個数を数える関数なので、この2つを組み合わせれば重複を除いた種類数が求められます。
基本の使い方
例えば、A2からA100までに商品名が入力されている場合、次の数式を空いているセルに入力します。
“`
=COUNTA(UNIQUE(A2:A100))
“`
この数式では、まず`UNIQUE(A2:A100)`で重複しない商品名の一覧が内部的に作られます。
次に`COUNTA`がその一覧の数を数えるので、「商品が何種類あるか」が表示されるんです。
元データに新しい商品名を追加したり、既存の商品名を変更したりすると、数式の結果も自動で更新されます。
毎月の集計や日々更新されるリストにピッタリですね。
空白セルがある場合の注意点
ただし、空白セルが含まれる場合はちょっと注意が必要です。
`=COUNTA(UNIQUE(A2:A100))`だと、空白も一つの値として扱われて、結果に1件分含まれることがあります。
空白をカウントしたくない場合は、**FILTER関数**と組み合わせて、空白以外だけを対象にしましょう。
“`
=COUNTA(UNIQUE(FILTER(A2:A100,A2:A100<>“”)))
“`
この数式では、`FILTER(A2:A100,A2:A100<>“”)`で空白じゃないデータだけを取り出してから、UNIQUEで重複を除いています。
空白行が混じりやすい一覧表や、将来データを追記するために広めの範囲を指定している表では、この形を使うと間違いを防げます。
複数列の組み合わせを数えたい場合
複数列の組み合わせを1種類として数えたいこともありますよね。
例えば「顧客名」と「商品名」の組み合わせが何種類あるかを数えたい場合です。
`UNIQUE(A2:B100)`で一意の行を抽出できますが、`COUNTA`を使うとセル数を数えてしまうので、正しい行数になりません。
その場合は、**ROWS関数**を使って行数を数えます。
“`
=ROWS(UNIQUE(A2:B100))
“`
**覚え方:**
– 単一列の種類数なら → COUNTA
– 複数列の組み合わせなら → ROWS
これで実務でも迷わなくなります!
【古いExcel】SUMPRODUCT関数とCOUNTIF関数で対応
UNIQUE関数が使えないExcel 2016やExcel 2019以前の環境では、**SUMPRODUCT関数とCOUNTIF関数を組み合わせる方法**が定番です。
数式はちょっと難しく見えますが、指定範囲を2か所に入れるだけで使えます。
基本の数式
A2からA100までの範囲で重複を除いた個数を数える場合は、次のように入力します。
“`
=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))
“`
どういう仕組み?
この数式のポイントは、COUNTIF関数がそれぞれの値の出現回数を数えていることです。
例えば「りんご」が範囲内に4回出てくる場合、COUNTIFは「りんご」に対して**4**を返します。
そこに`1/COUNTIF`を行うと、りんご1件あたりの値は`1/4`になります。
りんごが4回あるなら、`1/4`が4つ足されて合計は**1**になります。
つまり、同じ値が何回登場しても、その種類全体では1として数えられる仕組みなんです。
SUMPRODUCT関数は、その計算結果をまとめて合計する役割を持ちます。
結果として、りんごは1、みかんも1、バナナも1というように、種類ごとに1ずつ積み上がって、重複を除いた個数が求められます。
新しい関数が使えない環境でも利用できるので、会社のExcelが古い場合や、共有相手のバージョンが分からないファイルでは有効な選択肢です。
空白がある場合の対処法
ただし、この方法にも注意点があります。
範囲内に空白セルがあると、COUNTIFの結果が0になって、`1/0`の計算が発生して`#DIV/0!`エラーになる場合があります。
空白が含まれる可能性がある場合は、空白を除く条件を加えた次のような数式を使うと安全です。
“`
=SUMPRODUCT((A2:A100<>“”)/COUNTIF(A2:A100,A2:A100&””))
“`
この式では、`A2:A100<>“”`で空白以外のセルだけを対象にしています。
大量データには注意
データ件数が少ないうちはあまり気になりませんが、数万行以上の大きなデータでは、SUMPRODUCTとCOUNTIFの組み合わせは再計算に時間がかかることがあります。
大量データを頻繁に更新する場合は、可能であればUNIQUE関数やピボットテーブル、Power Queryなど別の方法も検討するといいでしょう。
その他の方法と使い分け
関数を使わない方法もいくつかあるので、状況に合わせて選びましょう。
重複の削除機能を使う方法
関数を使わずに一度だけ「何種類あるか」を確認したい場合は、Excelの**「重複の削除」機能**も便利です。
**手順:**
1. 対象の列をコピーして別の場所に貼り付ける
2. [データ]タブの[重複の削除]を実行
3. 一意の値だけが残るので、残った行数を数える
元データを直接変更すると戻せなくなる可能性があるので、**必ずコピーしたデータで作業**するのが安全です。
**メリット:**
– 関数を覚えなくても直感的に操作できる
– データの中身を目で確認しながら整理できる
– 初心者にも分かりやすい
**デメリット:**
– 元データが更新されても結果は自動で変わらない
– 毎回手作業で重複の削除を実行する必要がある
– 定期的な集計や更新頻度の高いリストには向いていない
ピボットテーブルで集計する方法
ピボットテーブルで集計したい場合は、**データモデル**を使うと「重複しない値の数」を集計方法として選べることがあります。
例えば、参加履歴からコース別の実参加者数を出したい場合、通常の「個数」では同じ参加者が複数回カウントされます。
でも、データモデルに追加したピボットテーブルで「重複しない値の数」を選べば、同じIDや氏名を1人として集計できます。
部署別、商品別、コース別など、**分類ごとにユニーク数を見たいとき**に役立ちます。
用途別の選び方まとめ
どの方法を選べばいいか迷ったら、この表を参考にしてください。
| 状況 | おすすめの方法 |
|——|————–|
| Microsoft 365やExcel 2021以降を使っている | `=COUNTA(UNIQUE(範囲))` が簡単 |
| 空白を除きたい | `=COUNTA(UNIQUE(FILTER(範囲,範囲<>“”)))` で正確に |
| Excel 2016以前の古いExcel | `=SUMPRODUCT(1/COUNTIF(範囲,範囲))` を使う |
| 一度だけ確認したい | コピーしたデータに「重複の削除」を使う |
| 分類別に一意の数を集計したい | ピボットテーブルのデータモデルを検討 |
注意点:データの整備も大切
Excelでは見た目が同じでも、前後にスペースが入っている値は別データとして扱われる場合があります。
例えば「りんご」と「りんご 」のように末尾に空白があると、重複として認識されません。
また、日付や数値が文字列として入力されている場合も、意図どおりに集計されない原因になります。
**結果がおかしいと感じたら:**
– TRIM関数で余分なスペースを削除する
– 表示形式ではなく実際の値を確認する
– 元データの整備も合わせて行う
こういったチェックも大切です。
まとめ
Excelで重複を除いて「何種類あるか」をカウントする方法は、使っているExcelのバージョンと集計の目的によって最適解が変わります。
– **新しいExcel** → UNIQUE関数
– **古いExcel** → SUMPRODUCTとCOUNTIF
– **一度きり** → 重複の削除
– **分類別の集計** → ピボットテーブル
こんな風に使い分けると、無駄な手作業を減らしながら正確な集計ができます。
まずは自分の表に空白や複数列の条件があるかを確認して、目的に合った方法を選ぶことが、ミスの少ないExcel集計への近道です。
ぜひ試してみてください!
広告
