Excelでデータを管理する際、条件に合致するデータの件数や数量を集計したい場面は数多くあります。
特定の条件を満たす顧客数、不良品の発生件数、期間内の注文数、複数条件を満たす在庫数など、条件ごとにデータをカウントして集計することは、現状把握や意思決定のための重要な分析手法です。
しかし、単純なカウントだけでなく、複数の条件を組み合わせた集計、空白セルを除外した件数、重複を排除したユニークカウント、数値の合計ではなく件数だけを知りたい場合など、要件は様々です。
Excelには条件付きでデータをカウントする強力な関数群が用意されています。
COUNTIF関数による単一条件のカウント、COUNTIFS関数による複数条件のカウント、COUNTA関数による空白以外のカウント、SUMPRODUCT関数による複雑な条件の集計など、目的に応じて最適な方法が異なります。
本記事では、条件ごとにデータ件数を集計する基本的な方法から、複数条件を組み合わせた高度なカウント、数量の条件付き集計、ピボットテーブルによる柔軟なカウント分析まで、実務で即活用できる様々なテクニックを詳しく解説します。
データの傾向を数値で正確に把握したい方は、ぜひ最後までお読みください。
ポイントは
・COUNTIF関数で「=COUNTIF(範囲,条件)」と単一条件の件数をカウントできる
・COUNTIFS関数で「=COUNTIFS(条件範囲1,条件1,条件範囲2,条件2)」と複数条件のカウントが可能
・SUMPRODUCT関数で複雑な条件式による柔軟な集計ができる
です。
それでは詳しく見ていきましょう。
COUNTIF関数で単一条件のカウント
それではまず、一つの条件に合致するデータの件数をカウントする基本的な方法を確認していきます。
COUNTIF関数の基本構文と使い方
特定の条件を満たすセルの個数を数えたい場合、COUNTIF関数が最も基本的で使いやすい方法です。
COUNTIF関数の構文は「=COUNTIF(範囲,検索条件)」となります。
「範囲」は検索対象のセル範囲、「検索条件」はカウントしたい条件です。
例えば、A列に商品名が入っているデータで、「りんご」が何件あるかを数える場合、「=COUNTIF(A:A,”りんご”)」と入力します。
この数式は、A列全体から「りんご」という文字列を探し、該当するセルの個数を返します。
A2、A5、A8に「りんご」が入っていれば、結果は3になります。
COUNTIF関数によるカウント
データ
みかん
りんご
バナナ
りんご
数式
結果: 3
COUNTIF関数はSUMIF関数と似ていますが、合計ではなく個数を返す点が異なります。
データの存在確認、頻度の分析、在庫の種類数など、「いくつあるか」を知りたい場合に使用します。
| A列(商品名) | 数式 | 結果 | 意味 |
|---|---|---|---|
| りんご | =COUNTIF(A:A,”りんご”) | 3 | 「りんご」が3件 |
| みかん | |||
| りんご | |||
| バナナ | |||
| りんご |
比較演算子を使った数値の条件
COUNTIF関数では、比較演算子を使って数値の条件を指定できます。
「>」「=」「」などの演算子を条件に含めることで、特定の範囲や値に該当するセルをカウントできます。
例えば、B列に売上金額が入っているデータで、1000以上の取引件数を数える場合、「=COUNTIF(B:B,”>=1000″)」と入力します。
売上が500未満の件数なら「=COUNTIF(B:B,”=”&D1)」のように、&演算子で結合します。
数値条件によるカウント例
以上
1000以上の件数
未満
500未満の件数
不一致
りんご以外の件数
| 条件 | 数式例 | カウント対象 |
|---|---|---|
| 以上 | =COUNTIF(B:B,”>=1000″) | 1000以上の値 |
| より大きい | =COUNTIF(B:B,”>1000″) | 1000より大きい値 |
| 未満 | =COUNTIF(B:B,” | 500未満の値 |
| 等しい | =COUNTIF(B:B,0) | 0の値 |
| 等しくない | =COUNTIF(B:B,”0″) | 0以外の値 |
ワイルドカードを使った部分一致カウント
文字列の部分一致でカウントしたい場合、ワイルドカードを使用します。
アスタリスク(*)は任意の文字列、疑問符(?)は任意の1文字を表します。
例えば、「=COUNTIF(A:A,”*りんご*”)」とすれば、「青森りんご」「りんごジュース」「国産りんご」など、「りんご」を含むすべてのセルがカウントされます。
「=COUNTIF(A:A,”商品??”)」とすれば、「商品01」「商品AB」など、「商品」の後に2文字が続くセルがカウントされます。
特定の文字で始まるセルをカウントする場合は「=COUNTIF(A:A,”A*”)」、特定の文字で終わるセルをカウントする場合は「=COUNTIF(A:A,”*円”)」のように指定します。
ワイルドカードは、データの命名規則が統一されていない場合や、カテゴリをまとめてカウントしたい場合に便利です。
COUNTIF関数は、データの傾向を数値で把握するための基本的なツールです。
「何件あるか」という情報は、在庫管理、品質管理、顧客分析など、あらゆる業務で必要とされます。
SUMIF関数が「いくら」という金額や数量を集計するのに対し、COUNTIF関数は「いくつ」という件数を集計します。
例えば、不良品の発生件数、クレームの回数、特定商品の注文回数など、発生頻度を分析する際に非常に有用です。
ただし、COUNTIF関数は一つの条件しか指定できないため、複数の条件を組み合わせた集計には対応できません。
例えば、「商品がりんごで、かつ担当者が田中」という件数を数えたい場合は、後述するCOUNTIFS関数を使用する必要があります。
また、空白セルは自動的にカウントから除外されますが、空白に見えてもスペースや数式が入っている場合は注意が必要です。
COUNTIFS関数で複数条件のカウント
続いては、複数の条件を満たすデータの件数をカウントする方法を確認していきます。
COUNTIFS関数の基本構文
2つ以上の条件を満たすデータの件数をカウントしたい場合、COUNTIFS関数を使用します。
COUNTIFS関数の構文は「=COUNTIFS(条件範囲1,条件1,条件範囲2,条件2,…)」となります。
条件範囲と条件のペアを複数指定することで、すべての条件を満たすセルの個数を返します。
例えば、A列に商品名、B列に担当者名が入っているデータで、「りんご」かつ「田中」の取引件数を数える場合、「=COUNTIFS(A:A,”りんご”,B:B,”田中”)」と入力します。
この数式は、A列が「りんご」でB列が「田中」という両方の条件を満たす行の個数を返します。
COUNTIFS関数の構造
条件1
商品名の条件
条件2
担当者の条件
結果
件数
| A列(商品) | B列(担当者) | 数式 | カウント対象 |
|---|---|---|---|
| りんご | 田中 | =COUNTIFS(A:A,”りんご”,B:B,”田中”) | ○ |
| みかん | 田中 | × | |
| りんご | 佐藤 | × | |
| りんご | 田中 | ○ | |
| バナナ | 田中 | × |
日付や数値の範囲を組み合わせる
COUNTIFS関数では、文字列の条件と数値・日付の条件を組み合わせることができます。
例えば、2024年1月の「りんご」の取引件数を数える場合、「=COUNTIFS(A:A,”りんご”,C:C,”>=2024/1/1″,C:C,”=1000″)」となります。
同じ列に対して複数の条件を設定することで、範囲指定も可能です。
「=COUNTIFS(D:D,”>=500″,D:D,”
3つ以上の条件を指定する
COUNTIFS関数は、3つ、4つ、それ以上の条件も指定できます。
条件範囲と条件のペアを追加していくだけで、複雑な集計が可能になります。
例えば、「商品が『りんご』、担当者が『田中』、売上が1000以上、日付が2024年1月」という4つの条件を満たすデータの件数を数える場合、「=COUNTIFS(A:A,”りんご”,B:B,”田中”,D:D,”>=1000″,C:C,”>=2024/1/1″,C:C,”
AND条件とOR条件
AND条件
すべての条件を
満たす件数
OR条件
いずれかの条件を
満たす件数
COUNTIFS関数は、複雑な業務要件に対応できる強力な関数です。
複数の条件を組み合わせることで、非常に詳細な分析が可能になります。
例えば、特定の地域の特定の商品カテゴリで、特定の価格帯の取引が何件あったかという分析や、特定の期間に特定の担当者が処理した案件の中で、特定のステータスのものが何件あったかという分析ができます。
ただし、条件が増えるほど数式は長く複雑になり、計算負荷も高くなります。
非常に大量のデータ(数万行以上)で多数の条件を指定する場合は、計算速度が遅くなることがあります。
その場合は、ピボットテーブルの使用を検討するか、データを絞り込んでから関数を適用すると良いでしょう。
また、条件の記述ミスを防ぐため、複雑な条件は別のセルに条件値を入力し、セル参照で指定する方法も有効です。
COUNTA関数と空白以外のカウント
続いては、空白セルを除外してデータの件数をカウントする方法を確認していきます。
COUNTA関数で空白以外をカウント
空白ではないセル、つまり何らかのデータが入力されているセルの個数を数えたい場合、COUNTA関数を使用します。
COUNTA関数の構文は「=COUNTA(値1,値2,…)」となり、指定した範囲内で空白でないセルの個数を返します。
例えば、A1からA10までの範囲で、データが入力されているセルの個数を数える場合、「=COUNTA(A1:A10)」と入力します。
この関数は、数値、文字列、論理値、エラー値など、あらゆる種類のデータをカウントします。
COUNTA関数は、回答が入力されたアンケートの件数、データが記録された日数、入力済みの項目数など、「入力されているかどうか」を判定したい場合に使用します。
逆に、空白セルの個数を数えたい場合は、「=COUNTBLANK(A1:A10)」というCOUNTBLANK関数を使用します。
| 関数 | 構文 | カウント対象 |
|---|---|---|
| COUNTA | =COUNTA(範囲) | 空白以外のセル |
| COUNT | =COUNT(範囲) | 数値が入っているセル |
| COUNTBLANK | =COUNTBLANK(範囲) | 空白のセル |
| COUNTIF | =COUNTIF(範囲,条件) | 条件を満たすセル |
カウント関数の使い分け
COUNTA
セルの個数
COUNT
セルの個数
COUNTBLANK
セルの個数
COUNT関数で数値のみをカウント
数値が入力されているセルだけをカウントしたい場合、COUNT関数を使用します。
COUNT関数の構文は「=COUNT(値1,値2,…)」となり、指定した範囲内で数値が入っているセルの個数を返します。
文字列、論理値、エラー値は無視され、数値のみがカウントされます。
例えば、B列に売上金額が入っているが、一部のセルには「未入力」という文字列が入っている場合、「=COUNT(B:B)」とすれば、数値が入力されているセル(つまり売上が記録されている件数)だけがカウントされます。
この関数は、数値データの入力件数を確認する際や、データの欠損をチェックする際に便利です。
「=COUNTA(B:B)-COUNT(B:B)」とすれば、数値以外のデータ(文字列やエラー)が入っているセルの個数が分かります。
SUMPRODUCTで複雑な条件のカウント
より複雑な条件や、複数の条件をOR(または)で結合したカウントを行いたい場合、SUMPRODUCT関数を使用します。
SUMPRODUCT関数は本来は配列の積を合計する関数ですが、条件式を使うことで柔軟なカウントが可能になります。
例えば、「=SUMPRODUCT((A:A=”りんご”)*(B:B=”田中”))」とすれば、COUNTIFS関数と同じ結果が得られます。
SUMPRODUCT関数の利点は、複数の条件をOR(または)で結合できることです。
「=SUMPRODUCT(((A:A=”りんご”)+(A:A=”みかん”))*(B:B=”田中”))」とすれば、「商品が『りんご』または『みかん』で、担当者が『田中』」という件数がカウントできます。
括弧と演算子を工夫することで、非常に複雑な条件式も表現できます。
空白以外のカウントは、データの入力状況を把握するために重要です。
アンケートの回答率、必須項目の入力率、データの完全性などを評価する際に使用します。
COUNTA関数とCOUNTBLANK関数を組み合わせることで、入力済みと未入力の比率を計算できます。
「=COUNTA(A:A)/(COUNTA(A:A)+COUNTBLANK(A:A))」で入力率が求められます。
ただし、空白に見えても実際にはスペースや数式の結果として空文字列(””)が入っている場合、これらは空白とは見なされず、COUNTA関数でカウントされてしまいます。
真の空白セルだけをカウントしたい場合は、COUNTBLANK関数を使用するか、数式や書式をクリアしてから集計する必要があります。
SUMPRODUCT関数は非常に強力ですが、大量のデータに対して使用すると計算が遅くなることがあるため、用途に応じて使い分けましょう。
まとめ エクセルで条件ごとに集計(カウント:データ件数:複数条件:数量)する方法
エクセルで条件ごとにカウント・集計する方法をまとめると
・COUNTIF関数による単一条件カウント:「=COUNTIF(範囲,検索条件)」で特定条件の件数、「=COUNTIF(A:A,”りんご”)」で「りんご」の個数、比較演算子「>=」「空白セル、スペースのみのセル、数式の結果が空文字列のセルなど、見た目は同じでも内部的には異なる状態があり、カウント結果に影響するため、データのクレンジングを事前に行うことが重要です。
Excelの条件ごとカウントテクニックを適切に活用して、正確で効率的なデータ分析を実現していきましょう!