「特定の担当者の件数だけ数えたい」「複数の条件を同時に満たすデータが何件あるか知りたい」——Excelを日常的に使っていれば、そんな場面は必ず訪れます。COUNTIF関数・COUNTIFS関数はそれを一発で解決してくれる、Excelの実務で最も使用頻度が高い関数のひとつです。
本記事では、COUNTIF関数の基本構文から始まり、COUNTIFS関数による複数条件AND集計、ワイルドカードを使った部分一致カウント、比較演算子による数値・日付条件、エラー対処法まで段階的に解説します。MOS Excel試験の出題ポイントとも対応させているため、資格取得を目指す方にも役立てていただけます。
この記事の対象読者
- 「特定の値が何個あるか」を手作業で数えている方
- COUNTIF は知っているが COUNTIFS の複数条件設定で詰まっている方
- MOS Excel(Associate/Expert)の合格を目指している方
- SUMIF/SUMIFS とセットで条件集計を使いこなしたい方
1. COUNTIF関数とは|条件に一致するセルを数える
COUNTIF(カウントイフ)は、指定した範囲のなかで「ある条件に一致するセル」の数を返す関数です。COUNT関数が数値セルの個数を数えるのに対して、COUNTIF は文字列・数値・日付など任意の条件で絞り込めるのが特徴です。
1-1. 基本構文
=COUNTIF(範囲, 検索条件)
| 引数 | 説明 | 例 |
|---|---|---|
| 範囲 | カウント対象のセル範囲 | A2:A100 |
| 検索条件 | 一致させたい値・文字列・比較式 | “東京”、”>100″、D2 |
1-2. 基本的な使い方の例
売上明細表(A列:担当者名、B列:売上額)があるとします。
- 担当者「山田」が何件あるか:
=COUNTIF(A2:A100,"山田") - 売上額が100,000円超の件数:
=COUNTIF(B2:B100,">100000") - E2セルに入力した担当者名で絞り込む:
=COUNTIF(A2:A100,E2)
検索条件は文字列のときダブルクォーテーションで囲みます。セル参照を使う場合はクォーテーション不要です。比較演算子(>、<、>=、<= など)を使うときは、演算子も含めてダブルクォーテーションで囲みます。
1-3. COUNT・COUNTA・COUNTIFの違い
| 関数 | 数えるもの | 条件指定 |
|---|---|---|
| COUNT | 数値が入力されているセルの個数 | なし |
| COUNTA | 空白以外のセルの個数(文字列・数値・エラー値を含む) | なし |
| COUNTIF | 1つの条件に一致するセルの個数 | 1条件 |
| COUNTIFS | 複数の条件すべてに一致するセルの個数 | 最大127条件 |
2. COUNTIFS関数|複数条件でカウントする
COUNTIFS(カウントイフス)は、2つ以上の条件をすべて満たす(AND条件)セルの個数を返す関数です。「担当者が山田かつ売上が10万円以上」「部門が営業かつ月が3月」など、複合条件でのカウントをシンプルに書けます。
2-1. 基本構文
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, …)
引数は「条件範囲と条件」をペアで指定します。ペアは最大127組まで追加できます。
2-2. 2条件でカウントする例
売上明細表(A列:担当者、B列:部門、C列:売上額)の例:
- 担当者「鈴木」かつ部門「営業」の件数:
=COUNTIFS(A2:A100,"鈴木",B2:B100,"営業") - 担当者「田中」かつ売上が50,000円以上:
=COUNTIFS(A2:A100,"田中",C2:C100,">=50000")
2-3. 各条件範囲の行数を揃える
COUNTIFS の条件範囲はすべて同じ行数(同じ大きさ)でなければなりません。たとえば「A2:A100」と「B2:B50」のように大きさが異なると #VALUE! エラーになります。条件範囲を追加するたびに行数が一致しているか確認しましょう。
3. ワイルドカードで部分一致カウント
検索条件に「*(アスタリスク)」や「?(クエスチョンマーク)」を使うと、完全一致でなく部分一致でカウントできます。「〇〇株式会社」のように末尾が変わるデータの集計に役立ちます。
3-1. ワイルドカードの種類と意味
| 記号 | 意味 | 例 |
|---|---|---|
| * | 0文字以上の任意の文字列 | “東京*”(東京都、東京都渋谷区 等) |
| ? | 任意の1文字 | “山?商事”(山田商事、山本商事 等) |
| ~* | アスタリスク自体を検索 | “~*” で * を含むセルを検索 |
3-2. ワイルドカードの使い方
- 「東京」で始まるセルの数:
=COUNTIF(A2:A100,"東京*") - 「商事」で終わるセルの数:
=COUNTIF(A2:A100,"*商事") - 「株式会社」を含むセルの数:
=COUNTIF(A2:A100,"*株式会社*") - ちょうど3文字のセルの数:
=COUNTIF(A2:A100,"???")
3-3. セル参照とワイルドカードを組み合わせる
E2セルに入力した文字列を含むセルを数えたい場合は、アンパサンド(&)で文字列を結合します。
=COUNTIF(A2:A100,"*"&E2&"*")
E2 に「株式会社」と入れれば「株式会社を含む」件数が動的に集計されます。
4. 比較演算子で数値・日付を条件にする
数値や日付を条件にするときは、比較演算子を使います。演算子と値を組み合わせた文字列をダブルクォーテーションで囲むのが基本形です。
4-1. 比較演算子の種類
| 演算子 | 意味 | 例(売上100,000円の場合) |
|---|---|---|
| > | より大きい(超える) | “>100000” |
| >= | 以上 | “>=100000” |
| < | より小さい(未満) | “<100000” |
| <= | 以下 | “<=100000” |
| <> | 等しくない(以外) | “<>100000” |
4-2. セル参照と比較演算子を組み合わせる
しきい値をセルに入力して動的に条件を変えたい場合は、演算子をダブルクォーテーションで囲み、アンパサンドでセル参照を結合します。
=COUNTIF(B2:B100,">="&F2)
F2 に「50000」と入れると「50,000円以上の件数」が返ります。F2 の値を変えるだけで条件が変わるため、ダッシュボード的な使い方に便利です。
4-3. 日付を条件にする
日付の比較も同じ方法で書けます。
- 2026年1月1日以降の件数:
=COUNTIF(C2:C100,">="&DATE(2026,1,1)) - 今日以前の件数:
=COUNTIF(C2:C100,"<="&TODAY())
日付をダブルクォーテーション内に直書きする(例:">=2026/1/1")方法は環境によって動作が不安定になる場合があります。DATE関数やTODAY関数をアンパサンドで結合する方法が確実です。
5. COUNTIFSで日付範囲をカウントする
特定の期間内のデータを数えるときは、COUNTIFSで「開始日以上かつ終了日以下」の2条件を組み合わせます。COUNTIF は1条件しか指定できないため、範囲カウントには必ずCOUNTIFSを使います。
5-1. 日付範囲カウントの基本形
=COUNTIFS(C2:C100,">="&DATE(2026,4,1),C2:C100,"<="&DATE(2026,6,30))
上記は C列の日付が2026年4月1日~2026年6月30日(第1四半期)に含まれる件数を返します。
5-2. セル参照で開始日・終了日を入力する
F1セルに開始日、F2セルに終了日を入力しておけば、数式を変えずに期間を絞り込めます。
=COUNTIFS(C2:C100,">="&F1,C2:C100,"<="&F2)
月次レポートや定期集計のように「期間を毎回変える」運用に最適です。
5-3. 月別件数を一覧で出す
MONTH関数を補助列に追加する方法も実務でよく使われます。D列に =MONTH(C2) と入れ、D列を条件範囲にして =COUNTIF(D2:D100,1)(1月の件数)とすると、月別集計が簡単になります。補助列を増やしたくない場合はCOUNTIFSで直接書く方法が清潔です。
6. 空白・空白以外・エラー値のカウント
「入力漏れを数えたい」「エラーが何件あるか確認したい」場面でも COUNTIF は役立ちます。
6-1. 空白セルの件数
=COUNTIF(A2:A100,"")
空文字列(長さゼロの文字列)を含まない「本当の空白」だけを数えます。COUNTBLANK関数(=COUNTBLANK(A2:A100))は空白セルと空文字列の両方をカウントするため、厳密に空白を数えたい場合は挙動の違いを確認しておきましょう。
6-2. 空白以外のセルの件数
=COUNTIF(A2:A100,"<>")
または COUNTA 関数(=COUNTA(A2:A100))でも同様の結果が得られます。
6-3. エラー値のセルを数える
エラー値(#VALUE!、#N/A 等)のセルを数えるには ISERROR 関数を組み合わせた SUMPRODUCT が使われることが多いですが、COUNTIF でも "#*" というワイルドカードが有効な環境もあります。確実な方法は次のとおりです。
=SUMPRODUCT(ISNUMBER(MATCH(A2:A100,{"#VALUE!","#N/A","#REF!"},0))*1)
ただし、特定のエラー種別のみ数えたい場合は ISERROR/ISNA を使ったほうがシンプルです。
7. よくあるエラーと対処法
COUNTIF・COUNTIFS は比較的シンプルな関数ですが、特定のミスパターンで意図しない結果になることがあります。
7-1. 結果が 0 になる(一致しているはずなのに)
原因1:検索条件の文字列に全角・半角の不一致がある。
対処:TRIM 関数や SUBSTITUTE 関数で余分なスペースを除去するか、データ入力時に統一する。
原因2:数値が「文字列として保存された数値」になっている(セル左上に緑の三角が出る)。
対処:対象範囲を選択→「データ」タブ→「テキストを列に分割」→そのまま完了 で数値に変換する。または VALUE 関数を補助列で使う。
原因3:条件の比較演算子とセル参照の結合でスペースが混入している。
対処:">="&E2 の書式に余分なスペースがないか確認する。
7-2. #VALUE! エラーになる
原因:COUNTIFS の条件範囲と条件のペアで行数が異なる。
対処:各条件範囲の行数が完全に一致しているか確認する(例:A2:A100 と B2:B50 は不一致)。
7-3. 大文字・小文字が区別されない
仕様:COUNTIF・COUNTIFS は大文字と小文字を区別しません。「Excel」と「EXCEL」は同一として扱われます。区別が必要な場合は EXACT 関数と SUMPRODUCT を組み合わせます。
=SUMPRODUCT((EXACT(A2:A100,"Excel"))*1)
7-4. 15桁を超える数値が一致しない
仕様:Excelは有効数字15桁までしか正確に扱えません。16桁以上の数値(商品コードや管理番号など)は文字列として入力・管理するほうが安全です。
8. 実務で使えるCOUNTIF・COUNTIFSの組み合わせ集
単独での使い方を覚えたら、他の関数と組み合わせることでさらに表現の幅が広がります。
8-1. COUNTIF を使った重複チェック
B列に重複があるか確認したい場合、C列に補助数式を追加します。
=COUNTIF($B$2:$B$100,B2)
結果が 2 以上のセルには重複があります。条件付き書式と組み合わせて「2以上のセルを赤くする」設定にすると、視覚的に重複を確認できます。
8-2. COUNTIF による順位付け(自動採番)
連番を自動で振る方法のひとつとして、COUNTIF を使った自己参照があります。
=COUNTIF($A$2:A2,A2)(行ごとにコピー)
同じ値が現れるたびに 1、2、3 と連番が増えます。グループごとの連番を振りたい場面で使えます。
8-3. IF と組み合わせてメッセージを表示する
=IF(COUNTIF(A2:A100,D2)=0,"未登録","登録済み")
D2 の値が A列に存在するかどうかを確認し、存在しない場合に「未登録」と表示します。マスタデータとの照合・入力チェックに役立ちます。
8-4. SUMIF との使い分け
| 関数 | 返す値 | 使う場面 |
|---|---|---|
| COUNTIF | 件数(個数) | 「何件か」を知りたいとき |
| SUMIF | 合計(金額・数量) | 「いくらか・いくつか」を知りたいとき |
| AVERAGEIF | 平均 | 「平均値は何か」を知りたいとき |
9. MOS Excel試験での出題ポイント
MOS Excel一般(Associate)・上級(Expert)ともに、COUNTIF・COUNTIFSは頻出の出題領域です。操作手順を覚えるだけでなく、引数の構造と条件の書き方を手で書けるようにしておくことが合格への近道です。
9-1. 一般(Associate)の出題範囲
- COUNTIF 関数を使って特定の文字列に一致するセルをカウントする
- 比較演算子(>、<= 等)を条件にした COUNTIF の記述
- COUNTIFS を使った2条件AND集計
- 空白セルまたは空白以外のセルをカウントする
9-2. 上級(Expert)の出題範囲
- ワイルドカードを使った部分一致カウント
- セル参照とアンパサンドを使った動的な条件指定
- 日付範囲を組み合わせた COUNTIFS の記述
- COUNTIF を IF や他の関数と組み合わせた複合数式
9-3. 試験対策の3つのコツ
| コツ | 内容 |
|---|---|
| ①条件の書き分け | 文字列は "東京"、比較は ">=100000"、セル参照は引用符なしの E2。3パターンの書き分けを反射的に出せるようにする。 |
| ②COUNTIFとCOUNTIFSの選択 | 条件が1つなら COUNTIF、2つ以上なら COUNTIFS。問題文の条件数を読み間違えないこと。 |
| ③範囲の絶対参照 | 数式をコピーして使う場面では条件範囲を $A$2:$A$100 と絶対参照にする。参照がズレるとカウント結果がすべて狂う。 |
10. よくある質問(FAQ)
10-1. Q. OR条件でカウントしたい(「東京か大阪か」)
A. COUNTIF や COUNTIFS はAND条件(すべて一致)のみ対応しています。OR条件のカウントは、条件ごとに COUNTIF を計算して足し算するか、SUMPRODUCT を使います。
足し算の方法(重複なし前提):
=COUNTIF(A2:A100,"東京")+COUNTIF(A2:A100,"大阪")
SUMPRODUCT で重複しても1件として数える方法:
=SUMPRODUCT((COUNTIF(A2:A100,{"東京","大阪"})>0)*1)
10-2. Q. COUNTIF は大文字・小文字を区別しますか?
A. 区別しません。「Excel」「EXCEL」「excel」はすべて同じとみなされます。大文字・小文字を区別してカウントする場合は、EXACT 関数と SUMPRODUCT を組み合わせてください(本記事7-3参照)。
10-3. Q. テーブル(Excelのテーブル機能)で使えますか?
A. 使えます。テーブル形式では構造化参照を使って =COUNTIF(テーブル名[列名],"条件") と書けます。テーブルにデータを追加すると範囲が自動拡張されるため、集計ミスが起きにくくなります。
10-4. Q. 500,000行を超える大量データでも使えますか?
A. COUNTIF・COUNTIFS は数十万行でも動作しますが、計算が遅くなる場合があります。大量データの場合はピボットテーブルや Power Query での集計を検討してください。特にCOUNTIFS に複数の比較演算子条件を重ねると処理時間が伸びやすい傾向があります。
10-5. Q. COUNTIF でシート間の参照はできますか?
A. できます。他シートのセル範囲を参照する場合は =COUNTIF(Sheet2!A2:A100,"東京") と書きます。別ブックの参照(外部参照)も可能ですが、ブックが閉じていると計算が停止する場合があるため、同一ブック内でまとめることを推奨します。
10-6. Q. COUNTIF・COUNTIFSとSUMPRODUCTはどう使い分けますか?
A. COUNTIF・COUNTIFSはAND条件のみで、OR条件や複雑な複合条件には不向きです。OR条件・配列演算・複数列を合算するような場合は SUMPRODUCT のほうが柔軟に書けます。ただし SUMPRODUCT は揮発性が高く再計算コストがかかるため、シンプルなAND条件は COUNTIF・COUNTIFS のほうが高速です。
11. まとめ|COUNTIF・COUNTIFSを使いこなして集計を自動化する
COUNTIF・COUNTIFS関数を使えば、手作業でフィルタをかけて件数を確認するという非効率な作業がなくなります。本記事のポイントを整理すると次のとおりです。
- 1条件のカウントは
=COUNTIF(範囲,"条件")、2条件以上は=COUNTIFS(範囲1,"条件1",範囲2,"条件2",...) - 文字列・ワイルドカード・比較演算子・日付・セル参照の5つの条件パターンを使い分ける
- 条件をセル参照にして動的に集計できる仕組みを作ると、毎月の集計作業が更新不要になる
- 重複チェック・入力チェック・IF関数との組み合わせで実務の「確認作業」を自動化できる
- MOS試験では条件の書き方(引用符の使い分け・アンパサンド結合)が正確に書けるかが問われる
まずは自分が普段扱っている表のひとつに COUNTIF を入れてみてください。「担当者別の案件数」や「ステータスが完了の件数」を数式一行で出せるようになるだけで、毎週の集計作業が大幅に楽になるはずです。SUMIF/SUMIFS と組み合わせることで、件数と合計を並べた集計表も簡単に作れます。
Excel・Word・MOS試験対策の最新ノウハウを毎週配信
excel-mous.comでは、Office製品の実務テクニックとMOS試験対策記事を毎週更新しています。ブックマーク登録で見逃しゼロ。
