「カテゴリが『エクセル』かつ日付が今月以降の件数を数えたい」など、複数の条件をすべて満たす(AND条件の)件数を数えたい場面は集計作業でよくあります。結論から言うと、COUNTIFS関数を使えば「範囲と条件」のペアを追加するだけで、複数条件のAND集計が1つの数式で完結します。この記事では基本の書き方、具体例、OR条件を数えたい場合の対処法まで解説します。
COUNTIFSで複数条件を数える基本の書き方
基本の形は次の通りです。
=COUNTIFS(範囲1,条件1,範囲2,条件2,...)
「範囲と条件」のペアは何組でも追加でき、指定したすべての条件を同時に満たす行だけがカウントされます。
COUNTIFとの違い:なぜCOUNTIFSが必要なのか
COUNTIF関数は条件を1つしか指定できません。「カテゴリがエクセル」の件数と「日付が今月以降」の件数を別々に数えることはできても、両方を同時に満たす件数は求められません。COUNTIFSは条件のペアを複数指定できるように拡張された関数で、AND条件の集計に特化しています。
具体例:カテゴリと日付の2条件で件数を数える
次のような記事一覧(A1:C6)があるとします。
| A(タイトル) | B(カテゴリ) | C(公開日) | |
|---|---|---|---|
| 2 | XLOOKUP入門 | エクセル | 2026/6/15 |
| 3 | 猫の日記 | 雑記 | 2026/6/20 |
| 4 | COUNTIFS活用 | エクセル | 2026/7/1 |
| 5 | MEDIAN応用 | エクセル | 2026/7/5 |
| 6 | 旅行記 | 雑記 | 2026/7/8 |
「カテゴリがエクセル」かつ「公開日が2026/7/1以降」の件数を数えるには、次のように書きます。
=COUNTIFS(B2:B6,"エクセル",C2:C6,">="&DATE(2026,7,1))
条件を両方満たすのは4行目・5行目の2件なので、結果は「2」になります。
ワイルドカードで部分一致を条件にする
文字列の条件にはワイルドカード(*)も使えます。
=COUNTIFS(B2:B6,"エクセル*")
「エクセル」で始まる文字列すべてが対象になります。前後どちらにも部分一致させたい場合は「*エクセル*」のように前後に付けます。
OR条件(どちらか一方)を数えたいときの対処法
COUNTIFSは条件をすべて満たす行を数えるAND集計専用で、「どちらか一方を満たせばよい」というOR条件には対応していません。OR条件を数えたい場合は、条件ごとにCOUNTIFSを分けて足し算し、重複分を引く方法が基本になります。
=COUNTIFS(B2:B6,"エクセル")+COUNTIFS(B2:B6,"雑記")-COUNTIFS(B2:B6,"該当なし")
この「複数条件のうちどれか1つでも満たせばOK」という考え方は、合計を求めるSUMIFS関数でも同じように登場します。件数ではなく合計値でOR条件を集計したい場合は、エクセルのSUMIFS関数でOR条件の集計をする方法で詳しく解説しているので参考にしてください。
よくあるエラー・注意点
- 日付が数値として扱われない: セルの表示形式が「文字列」になっていると、日付の比較条件(”>=”&DATE(…))が正しく機能しません。表示形式を「日付」に変更してください。
- 範囲のサイズが揃っていない: COUNTIFSの複数の範囲は、行数・列数が一致していないとエラーになります。B2:B6とC2:C6のように、同じ行範囲で指定しましょう。
- ワイルドカードが意図せず一致してしまう: 「*」や「?」を含む文字そのものを検索したい場合は、直前に「~」を付けてエスケープする必要があります(例: “~*”)。
まとめ
COUNTIFSは「範囲と条件」のペアを追加するだけでAND条件の件数集計に対応できる便利な関数です。OR条件が必要な場合はCOUNTIFSを複数組み合わせるか、合計値ならSUMIFSのOR条件の考え方を応用しましょう。条件付きの集計をさらに極めたい方は条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。





