Article

COUNTIFS関数の基本|Excelで複数条件に一致するセルを数える方法

この記事で分かること

ExcelのCOUNTIFS関数で複数条件に一致するセルを数える基本を解説。完全一致・比較演算子・ワイルドカード・セル参照の4パターン、#VALUE!エラーの原因、テーブル化して行追加に自動追従させる方法まで実機画面付きで紹介します。

Excel で複数の条件に一致するセルを数えたいときは、COUNTIFS 関数を使います。範囲と条件をペアで並べるだけで、AND 条件(すべてを満たすもの)の件数を一発で出せます。

この記事では、基本の書き方から 4 つの条件パターン(完全一致・比較演算子・ワイルドカード・セル参照)、実践的な集計例、よくある #VALUE! エラーの直し方、テーブル化して行追加に自動追従させる方法までを、Excel 2024 の実機画面で確認しながら整理します。

まずは結論の式から:

=COUNTIFS(B2:B21,"東京",C2:C21,"営業部")

これで「支店が東京、かつ部署が営業部」の件数が出ます。

COUNTIFS 関数の基本構文

COUNTIFS は、範囲と条件のペアを並べた分だけ AND 条件を重ねられます。書式は次のとおりです。

=COUNTIFS(範囲1, 条件1, [範囲2, 条件2], …)
  • 範囲1, 範囲2, …: 条件を判定するセル範囲。すべて同じサイズで指定します(サイズが合わないと #VALUE! になります)
  • 条件1, 条件2, …: 各範囲に対する判定条件。文字列・数値・比較演算子・ワイルドカード・セル参照のいずれでも書けます

COUNTIFS は Excel 2007 以降、Microsoft 365 すべてで使えます。

COUNTIF との違い

よく似た関数に COUNTIF(末尾 S なし)があります。COUNTIF は「範囲1つ・条件1つ」の単一条件用で、COUNTIFS は「範囲と条件のペアを複数指定できる」複数条件用です。条件が 1 つだけでも COUNTIFS は使えるので、「迷ったら COUNTIFS」で覚えて問題ありません。

売上台帳の20行データと条件セルを配置したサンプルシート
この記事で使うサンプル表。A〜F 列が売上データ、H〜I 列が条件セルです。

条件の書き方 4 パターン

COUNTIFS の条件には、次の 4 つの書き方があります。どれも同じ第 2 引数(条件1)の位置に入れるだけなので、使い分けを覚えればどんな集計にも応用できます。

パターン書き方ヒットする値
完全一致"値""東京"「東京」と完全一致
比較演算子(以上・以下)">=数値"">=100000"10 万以上
比較演算子(未満)"<数値""<500000"50 万未満
不等号(〜以外)"<>値""<>佐藤"佐藤以外(空白も含む)
空白以外"<>""<>"空白でないもの
ワイルドカード(部分一致)"*値*""*電*"「電」を含む
ワイルドカード(先頭)"値*""文*"「文」で始まる
ワイルドカード(末尾)"*値""*電"「電」で終わる
ワイルドカード(? = 1 文字)"??""??"ちょうど 2 文字
セル参照セルI2I2 の値と完全一致
セル参照+演算子"演算子"&セル">="&I4I4 の値以上

ポイント: 比較演算子やワイルドカードを使う場合は、必ずダブルクォート " で囲んで文字列として渡す 必要があります。=COUNTIFS(F2:F21, >=100000) のようにクォートなしで書くと、Excel が数式エラーとして拒否します。

ワイルドカードの詳しい使い分け(半角 * と全角 の挙動差、? の桁数指定、配列 OR、空白セル混在の罠など)は Excelで文字を含むセルをCOUNTIFSで数える方法 で 5 つの罠を Excel 2024 実機で網羅検証しています。

実践例: 売上データから 5 つの集計を出す

上のサンプル表(A2:F21 の 20 行データ)に対して、実際に 5 通りの集計を並べてみます。まずは単一条件の最小例から。

例 1: 売上金額が 10 万円以上の件数(比較演算子のみ)

=COUNTIFS(F2:F21,">=100000")

売上金額(F 列)が 10 万円以上のデータを数えます。範囲・条件のペアが 1 組だけでも COUNTIFS は使えます。比較演算子 >= を使うときは、条件全体を ダブルクォートで囲む のを忘れないでください。このサンプルでは結果は 10 件です。

例 2: 支店 × 部署で数える(完全一致 2 条件)

=COUNTIFS(B2:B21,"東京",C2:C21,"営業部")

支店(B 列)が「東京」で、部署(C 列)が「営業部」のデータだけを数えます。このサンプル表では結果は 7 件です。

COUNTIFSで東京かつ営業部を数える数式と結果7
M2 セルに入れた COUNTIFS。数式バーに式、セルに結果の 7 件が表示されます。

例 3: 商品カテゴリをワイルドカードで数える

=COUNTIFS(D2:D21,"*電*")

商品カテゴリ(D 列)に「電」という文字を含むものを数えます。このサンプルでは「家電」が該当して 10 件です。先頭と末尾の * が「任意の文字列」を表すので、「家電」「電気製品」「電卓」など、どこに「電」があってもヒットします。

COUNTIFSでカテゴリに電を含む件数を数える
ワイルドカード *電* で部分一致させた例。家電カテゴリ 10 件がヒットします。

例 4: 日付範囲で数える(比較演算子+セル参照)

=COUNTIFS(A2:A21,">="&I4,A2:A21,"<="&I5)

受注日(A 列)が I4 セルの日付以降、かつ I5 セルの日付以前のデータを数えます。I4=2026/2/1、I5=2026/2/28 なので、2026 年 2 月の件数で 7 件です。

ポイントは ">="&I4 の書き方です。比較演算子とセル参照を同じ条件で使うときは、演算子部分をダブルクォートで囲み、&(アンパサンド)でセル参照と連結 します。">=I4" のように全部ダブルクォートで囲むと、「I4」という文字列と比較してしまい結果が 0 になるので注意してください。

COUNTIFSで日付範囲をセル参照で指定する数式
M4 セルに入れた日付範囲の COUNTIFS。セル参照を & で連結するのがポイントです。

例 5: 条件をすべてセル参照で渡す

=COUNTIFS(B2:B21,I2,C2:C21,I3)

支店の値を I2 セル、部署の値を I3 セルから読み取って集計します。I2 の値を切り替えるだけで、東京・大阪・名古屋の件数をワンタッチで比較できるようになります。

文字列を直接書く "東京" と違って、セル参照ならダブルクォートは不要です。

COUNTIFS でよくあるエラーと対処

#VALUE!: 範囲サイズが合わない

COUNTIFS の最も多いエラーが #VALUE! です。原因は 範囲のサイズ(行数)がそろっていない こと。たとえば次の式は範囲 1 が 5 行(A4:A8)、範囲 2 が 2 行(B4:B5)で長さが違うため、エラーになります。

=COUNTIFS(A4:A8,"東京",B4:B5,"営業部")
範囲サイズが合わないときの#VALUE!エラー再現画面
範囲サイズを揃えないと #VALUE! になります。正しくは下段のように B4:B8 に揃えます。

対処はシンプルで、すべての範囲を同じ行数にそろえる だけです。上の例なら B4:B5B4:B8 に直せば正しく 2 件と返ります。列全体で指定する A:A を使う場合も、すべての範囲を列全体で揃えてください。

結果が 0 になってしまう

エラーにはならないのに結果が想定より少ない、もしくは 0 になるときは、次の 3 つをまず疑います。

  • 全角と半角の数字が混在している: ">=100000"(全角の 10 万)は絶対にヒットしません。必ず半角で ">=100000" と書きます
  • 英字の大文字・小文字は区別されない: "Tokyo""TOKYO" は同じ扱いですが、日本語の全角と半角カナは区別されます("東京""トウキョウ" は別)
  • セルの中身が文字列扱いになっている: 数値のはずが緑の三角マーク付きの文字列になっていると、">=100000" の比較にヒットしません。対象セルの表示形式と中身を確認してください

応用: 同じ範囲で OR 条件を書く(東京または大阪)

COUNTIFS はそのままでは AND 条件しか書けませんが、配列定数SUM を組み合わせると「同じ範囲で A または B」の OR 条件も書けます。

=SUM(COUNTIFS(B2:B21,{"東京","大阪"}))

条件部分を {"東京","大阪"} という配列定数にすると、COUNTIFS が「東京の件数」「大阪の件数」の 2 要素の配列を返し、それを SUM で合計します。このサンプルでは東京 10 件 + 大阪 4 件で 14 件です。

SUM+COUNTIFSの配列定数でOR条件を表現する数式
配列定数 {"東京","大阪"}SUM で囲むことで OR 条件になります。

3 つ以上の OR もそのまま並べられます: {"東京","大阪","名古屋"}。もっと複雑な OR 条件には、SUMPRODUCT や FILTER を使う方法もあります。詳細は関連記事をご参照ください。

テーブル構造化参照で行追加に自動追従させる

固定範囲 B2:B21 で書いた数式は、後から行を追加しても範囲は広がりません。20 行目まで集計するつもりが、21 行目以降に追加したデータは集計に入らない、という落とし穴があります。

これを防ぐには、データ範囲を テーブル化(Ctrl+T) して構造化参照で指定します。

=COUNTIFS(売上テーブル[支店],"東京")
テーブル構造化参照を使ったCOUNTIFSの数式
テーブル化した範囲に 売上テーブル[支店] の形で指定すると、行追加にも自動で追従します。

テーブル化した範囲の末尾に新しい行を追加すると、テーブルが 1 行下に広がり、COUNTIFS の結果も自動で更新されます。下は「東京 300,000 円」という行を 8 行目に追加した直後の画面です。東京の件数が 2 → 3 件、10 万円以上の件数が 3 → 4 件に、手を触れずに更新されています。

行追加後にCOUNTIFSの結果が自動更新される様子
8 行目に「東京 300,000」を追加した直後。テーブルが自動拡張し、結果も 2→3、3→4 に自動更新されます。

頻繁にデータが追加される売上台帳や在庫表では、最初からテーブル化しておく のがおすすめです。

関連記事(角度別の深掘り)

COUNTIFS のより細かい使い方については、以下の角度別の記事でそれぞれ詳しく解説しています。

まとめ

  • COUNTIFS の基本形は =COUNTIFS(範囲1, 条件1, 範囲2, 条件2, …)。範囲と条件を ペアで並べる だけ
  • 条件の書き方は 4 パターン: 完全一致・比較演算子・ワイルドカード・セル参照。比較演算子やワイルドカードは必ずダブルクォートで囲む
  • セル参照と演算子を組み合わせるときは ">="&I4 のように & で連結する
  • エラーで一番多いのは #VALUE!範囲のサイズがそろっていない のが原因なので、すべての範囲を同じ行数にそろえる
  • 同じ範囲で OR 条件を書きたいときは =SUM(COUNTIFS(範囲,{"値1","値2"})) の配列定数パターン
  • データが追加されるシートでは テーブル化(Ctrl+T) して テーブル名[列名] で指定すると、行追加に自動追従する
=COUNTIFS(B2:B21,"東京",C2:C21,"営業部")

Next Read

このあと読む記事

今の内容に近い記事から、次の1本と補助記事を続けて見つけられるようにしています。

Keep Exploring

このテーマをさらに探す

同じテーマの入口記事と更新記事を、一覧の形でまとめています。