Excelでデータを集計する際、「特定の文字を含むセルをカウントしたい」「複数の条件を組み合わせてカウントしたい」と感じたことはないでしょうか。
そんなときに役立つのが、COUNTIFS関数です。
COUNTIFS関数を使えば、複数列にまたがる条件や、特定の文字列を含むセルの合計カウントなど、さまざまな集計が可能になります。
本記事では、【Excel】エクセルで特定の文字を複数条件でカウントする方法(複数列・合計・COUNTIFS関数)について、基本から応用まで丁寧に解説していきます。
初心者の方でも理解できるよう、具体的な数式例や表を交えながら説明していくので、ぜひ最後までご覧ください。
COUNTIFS関数を使えば特定の文字を複数条件で自在にカウントできる
それではまず、COUNTIFS関数の基本的な役割と、なぜ複数条件のカウントに最適なのかについて解説していきます。
ExcelにはCOUNTIF関数とCOUNTIFS関数の2種類があります。
COUNTIF関数は「1つの条件」でカウントするのに対し、COUNTIFS関数は「複数の条件」を同時に指定できる点が大きな違いです。
たとえば、「A列が”東京”かつB列が”完了”のセルを数える」といった集計が、COUNTIFS関数1つで実現できます。
COUNTIFS関数は、複数の条件範囲と条件を組み合わせてセルをカウントできる、Excelの集計業務において非常に強力な関数です。
特定の文字列を含む条件と数値条件を同時に指定することもできるため、実務で幅広く活用されています。
COUNTIFS関数の基本的な書式は以下の通りです。
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, …)
条件範囲と条件はセットで指定し、最大127組まで設定できます。
条件には、完全一致の文字列だけでなく、ワイルドカードを使った部分一致の指定も可能です。
たとえば、「”東京”を含む」という条件は“*東京*”と表現します。
このように、COUNTIFS関数は柔軟な条件指定ができるため、特定の文字を複数条件でカウントする際の基本ツールと言えるでしょう。
COUNTIFS関数の基本構文とワイルドカードの使い方
COUNTIFS関数で特定の文字を含むセルをカウントするには、ワイルドカード文字の活用が欠かせません。
ワイルドカードとは、任意の文字列を表す特殊記号のことです。
| ワイルドカード | 意味 | 使用例 |
|---|---|---|
| *(アスタリスク) | 0文字以上の任意の文字列 | “*東京*”(東京を含む) |
| ?(クエスチョン) | 任意の1文字 | “東京?”(東京+1文字) |
たとえば、A列に「東京都」「大阪府」「東京都新宿区」などのデータがある場合、「東京」を含むセルをカウントするには以下のように記述します。
=COUNTIFS(A2:A100, “*東京*”)
この数式で、「東京」という文字を含むすべてのセルが対象になります。
完全一致でカウントしたい場合は、ワイルドカードを使わず“東京”とだけ記述すればOKです。
COUNTIFとCOUNTIFSの違いを整理しよう
COUNTIFとCOUNTIFSは名前が似ていますが、使いどころが異なります。
| 関数名 | 条件の数 | 主な用途 |
|---|---|---|
| COUNTIF | 1つ | 単一条件でのカウント |
| COUNTIFS | 複数(最大127組) | 複数条件を組み合わせたカウント |
単純に「特定の文字を含むセルを数えたい」だけであればCOUNTIF関数でも対応できます。
しかし、「複数の条件を同時に満たすセルを数えたい」場合は、COUNTIFS関数を使うのが正解です。
実務では条件が複数になるケースがほとんどなので、最初からCOUNTIFSに慣れておくことをおすすめします。
条件に文字列・数値・日付を混在させることも可能
COUNTIFS関数では、条件の種類を混在させることができます。
たとえば、「A列が”完了”かつB列が100以上かつC列が2024年以降」といった複合条件も一つの数式で表現可能です。
=COUNTIFS(A2:A100, “完了”, B2:B100, “>=100”, C2:C100, “>=”&DATE(2024,1,1))
このように、文字列・数値・日付を組み合わせた条件指定ができるのが、COUNTIFS関数の強みと言えるでしょう。
複数列にまたがる条件でカウントする具体的な方法
続いては、複数列を対象にしたCOUNTIFS関数の具体的な使い方を確認していきます。
実務では、1列だけでなく複数列のデータを組み合わせて集計したいケースが多くあります。
たとえば、以下のようなデータがあるとします。
| A列(担当者) | B列(地域) | C列(ステータス) |
|---|---|---|
| 田中 | 東京 | 完了 |
| 佐藤 | 大阪 | 未完了 |
| 田中 | 東京 | 未完了 |
| 鈴木 | 東京 | 完了 |
| 田中 | 大阪 | 完了 |
この表で「担当者が田中かつ地域が東京」の件数をカウントするには、以下のように記述します。
=COUNTIFS(A2:A6, “田中”, B2:B6, “東京”)
この数式の結果は「2」になります。
さらに「担当者が田中かつ地域が東京かつステータスが完了」の3条件でカウントする場合は、こちらです。
=COUNTIFS(A2:A6, “田中”, B2:B6, “東京”, C2:C6, “完了”)
この数式の結果は「1」になります。
条件範囲はすべて同じ行数でなければエラーになるため、範囲の行数を統一することが重要です。
セル参照を使って条件を柔軟に切り替える方法
条件を数式内に直接書くのではなく、セル参照を使うと管理が楽になります。
たとえば、E1セルに「田中」、F1セルに「東京」と入力しておき、以下のように数式を記述します。
=COUNTIFS(A2:A6, E1, B2:B6, F1)
この方法なら、E1やF1の値を変えるだけで集計結果が自動的に更新されます。
ワイルドカードと組み合わせる場合は、以下のように記述します。
=COUNTIFS(A2:A6, “*”&E1&”*”)
“*”&セル参照&”*”という形で記述することで、セルに入力した文字を含む条件を動的に設定できます。
OR条件(いずれかに一致)をCOUNTIFSで実現する方法
COUNTIFS関数はAND条件(すべての条件を満たす)が基本ですが、OR条件(いずれかの条件を満たす)も工夫次第で実現できます。
OR条件は、複数のCOUNTIFS関数の結果を足し合わせる方法が一般的です。
=COUNTIFS(A2:A6, “田中”) + COUNTIFS(A2:A6, “佐藤”)
この数式で「担当者が田中または佐藤」の件数をカウントできます。
ただし、同一行が両方の条件に該当する場合は重複してカウントされる点に注意が必要です。
NOT条件(一致しない)をCOUNTIFSで指定する方法
「〇〇以外をカウントしたい」というNOT条件も、COUNTIFS関数で対応できます。
たとえば、ステータスが「完了」以外のセルをカウントする場合は以下の通りです。
=COUNTIFS(C2:C6, “<>完了”)
“<>“は「等しくない」を意味する比較演算子です。
数値の条件でも同様に使えるため、覚えておくと便利でしょう。
複数条件の合計カウントをSUMやSUMPRODUCTと組み合わせる応用技
続いては、COUNTIFS関数をさらに活用するための応用テクニックを確認していきます。
条件ごとのカウント結果を合計したい場合や、より複雑な集計を行いたい場合には、SUM関数やSUMPRODUCT関数との組み合わせが効果的です。
SUMPRODUCT関数でOR条件を重複なくカウントする方法
OR条件を重複なくカウントしたい場合は、SUMPRODUCT関数が役立ちます。
SUMPRODUCT関数は配列を扱える関数で、複雑な条件の集計に対応できます。
=SUMPRODUCT(((A2:A6=”田中”)+(A2:A6=”佐藤”)>0)*1)
この数式では、「担当者が田中または佐藤」の行を重複なくカウントします。
「>0」を加えることで、複数条件に同時に該当する行が二重にカウントされるのを防ぐことができます。
| 方法 | OR条件 | 重複排除 | 複数条件AND |
|---|---|---|---|
| COUNTIFS合計 | 可能 | 不可 | 可能 |
| SUMPRODUCT | 可能 | 可能 | 可能 |
SUM関数と配列数式を使ってCOUNTIFSを複数条件で合計する
SUM関数とCOUNTIFS関数を組み合わせ、複数の条件ごとのカウント合計を一括で求める方法もあります。
たとえば、「東京」「大阪」「名古屋」のいずれかを含むセルの合計を求める場合は以下の通りです。
=SUM(COUNTIFS(B2:B6, {“東京”,”大阪”,”名古屋”}))
配列定数{“東京”,”大阪”,”名古屋”}を使うことで、3つの条件のカウント結果をまとめて求め、SUMで合計できます。
この方法はシンプルで読みやすく、実務でも多用されるテクニックです。
COUNTIFS関数の結果をグラフや他の集計に活用する
COUNTIFS関数の結果は、そのままグラフのデータソースとして活用できます。
たとえば、担当者ごとの完了件数を自動集計するサマリー表を作成しておけば、データが更新されるたびにグラフも自動で変わります。
COUNTIFS関数を活用した集計表は、ピボットテーブルの代替としても機能します。
特定の文字を含む件数をリアルタイムで把握できる集計シートを作成しておくと、業務効率が大幅に向上するでしょう。
COUNTIFS関数でよくあるエラーと対処法
続いては、COUNTIFS関数を使う際によくあるエラーと、その解決策を確認していきます。
正しい構文で書いているつもりでも、意図した結果が得られないことがあります。
原因を理解しておくことで、スムーズにトラブル対応できるようになるでしょう。
条件範囲の行数が一致していないとエラーになる
COUNTIFS関数では、すべての条件範囲の行数(または列数)が一致している必要があります。
たとえば、以下のように行数が異なる範囲を指定するとエラーが発生します。
=COUNTIFS(A2:A10, “田中”, B2:B6, “東京”) ← エラーになる例
A列はA2:A10(9行)、B列はB2:B6(5行)となっており、行数が一致していません。
すべての条件範囲を同じ行数に統一することで解決できます。
文字列条件はダブルクォーテーションで囲む必要がある
条件に文字列を指定する際は、必ずダブルクォーテーション(”)で囲む必要があります。
囲み忘れると、Excelが数式として解釈しようとしてエラーになる場合があります。
| 記述方法 | 結果 |
|---|---|
| =COUNTIFS(A2:A6, 田中) | エラーまたは誤動作 |
| =COUNTIFS(A2:A6, “田中”) | 正常動作 |
数値条件の場合はダブルクォーテーションなしでも動作しますが、比較演算子を使う場合は文字列として扱うため、ダブルクォーテーションが必要です。
全角・半角の違いがカウント結果に影響することがある
Excelのセルに「東京」(全角)と「東京」(半角カタカナ)が混在していると、条件に一致しない場合があります。
データ入力の段階で表記を統一するか、JIS関数やASC関数を使ってデータを統一変換してからカウントすることをおすすめします。
また、COUNTIFS関数は大文字・小文字を区別しないため、英字の大文字・小文字の違いは基本的に影響しません。
まとめ
本記事では、【Excel】エクセルで特定の文字を複数条件でカウントする方法(複数列・合計・COUNTIFS関数)について解説してきました。
COUNTIFS関数は、複数の条件範囲と条件を自由に組み合わせてセルをカウントできる、実務に欠かせない強力な関数です。
ワイルドカードを使った部分一致条件、複数列をまたぐAND条件、SUMPRODUCT関数を使ったOR条件など、さまざまな応用テクニックを組み合わせることで、複雑な集計も柔軟に対応できます。
よくあるエラーの原因と対処法も把握しておけば、トラブルが発生しても迅速に解決できるでしょう。
今回の内容を参考に、COUNTIFS関数をぜひ実務で積極的に活用してみてください。
データ集計の効率が大幅に向上するはずです。