エクセル迷子案内所
← 学習記事一覧

COUNTIF / COUNTIFS が動かない6つの原因と解決法【上から順に試せばOK】

公開: 2026-05-17更新: 2026-07-08
執筆: FMaker(エクセル迷子案内所 運営者)対応を想定: Microsoft 365 / Excel 2021最終事実確認: 2026-07-08

「COUNTIF を書いたのに結果が 0 になる…」 「期待してた件数より少ない…」 「COUNTIFS で #VALUE! が出る…」

💡 関連記事:


症状

COUNTIFが0になる、期待した件数より少ない、#VALUE!や#NAME?が出る——そんな状態になっている。

即答

COUNTIFが動かないのは「型不一致・余白・範囲サイズ・クォート・ワイルドカード・空白仕様」の6パターンのどれかが原因で、上から順に確認すれば必ず特定できる。

なぜ起きるのか

COUNTIFは条件範囲と条件が「型・値ともに完全一致」したセルだけを数える仕組みのため、見た目が同じでも型や余分なスペースが違うだけでゼロになる。

確認手順

エラーの症状から最初に確認すべき節へ進んでください。「あなたのケースはどれ?」で原因を絞れます。

  1. 結果が0 / 件数が少ない → 「① 型の不一致」か「② 余白・改行」を確認
  2. #VALUE!が出る → 「③ COUNTIFSの範囲サイズ」を確認
  3. #NAME?が出る → 「④ 比較演算子のクォート」を確認
  4. 件数が期待と違う(0ではない) → 「⑤ ワイルドカード」か「⑥ 空白・重複の仕様」を確認
  5. 数式は合っているのに更新されない → 「おまけ:再計算・文字列扱い」を確認

COUNTIFSの典型例。=COUNTIFS(A2:A5,"商品A",B2:B5,"東京") で「商品A×東京」の件数だけを数える。E2に2が返る


まずはCOUNTIFとCOUNTIFSの基本(30秒で確認)

COUNTIFは2引数、COUNTIFSは条件ペアを複数指定できる。どちらも合計範囲は不要だ。

=COUNTIF(条件範囲, 条件)
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...)

COUNTIF と COUNTIFS は引数構造がシンプル ですが、注意点があります:

  • COUNTIF条件範囲 → 条件 の2引数だけ
  • COUNTIFS条件範囲と条件のペアを複数指定 できる
  • どちらも 合計範囲は不要(数えるだけだから)

📌 ポイント: 条件1つなら COUNTIF、複数なら COUNTIFS。SUMIFと違って引数の順番に「合計範囲」が混ざらないので、ペアで素直に並べるだけです。複数条件ごとの件数・合計を一覧で見たい場合は、数式ではなく ピボットテーブルを使った集計 が手軽なこともあります。


まず疑うべき3つの原因(これで9割解決します)

「型不一致・余白・範囲サイズ不一致」の3パターンが原因の9割を占める。まずこの順で確認する。

COUNTIF / COUNTIFS が思い通りに動かない原因の 9割 はこの3つです。 上から順番に確認 してください。

① データ型の不一致(文字列⇔数値)

条件と条件範囲の型(文字列⇔数値)が違うと、見た目が同じでも件数が0になる。

一番多い原因がこれです。SUMIFと同じパターン。

症状

  • 検索条件(例:"1001")と、表の中の値(例:1001)が 見た目は同じなのに数えられない
  • 結果が 0 になる
  • 元データをCSVや別システムから貼り付けたときに発生しがち

確認方法

セルを選択して、画面下のステータスバーを見てください。

  • 数値なら「合計」が表示される
  • 文字列なら「合計」が出ない(「データの個数」だけ)

または、セルの中身が 左寄せ=文字列右寄せ=数値 が初期動作です。

解決方法

条件範囲側を数値に変換するのが王道。一括で直すには:

  1. 空のセルに 1 を入力してコピー
  2. 数値化したい範囲を選択
  3. 右クリック →「形式を選択して貼り付け」→「乗算」

これで文字列の数字が一気に数値になります。

📌 ポイント: 「条件範囲」と「条件として指定する値」の 両方が同じ型 になっている必要があります。片方が文字列、片方が数値だと一致しません。

A列の商品コードが左寄せ(文字列)、D2の検索コードが右寄せ(数値)。見た目は同じ「1001」でも型が違うためE2の件数が0になっている


② 見えない余白・改行が混じっている

末尾スペースや改行が混入すると完全一致に失敗し、件数が期待より少なくなる。

「目視では同じなのに数えられない」場合、スペースや改行が混入している 可能性が高いです。

症状

  • 条件が "商品A" なのに、表側が "商品A "(末尾に半角スペース)
  • 別システムからのコピペデータでよく発生
  • 結果が「期待より少ない」など中途半端な値になる

確認方法

セルをダブルクリックして、カーソルキーで末尾まで移動してみる。 余分な余白があると気づけます。

解決方法

TRIM関数 で範囲側をクリーンアップした作業列を作るのが鉄板です。

=TRIM(A2)

この作業列を作ってから COUNTIF の条件範囲に指定します。 直接 COUNTIF の条件範囲(第1引数)側で TRIM することは できません(条件側=第2引数に TRIM(D2) のように書くこと自体は可能です)。

📌 ポイント: TRIMは 半角スペース しか処理しません。全角スペース( )が混じっている場合は、先に SUBSTITUTE で除去してください。

=TRIM(SUBSTITUTE(A2," ",""))

③ COUNTIFSの範囲サイズが揃っていない

COUNTIFSで条件範囲のサイズが揃っていないと#VALUE!になる。全範囲を同じ行数に揃える。

COUNTIFS には 致命的な仕様 があります。

すべての条件範囲は 同じサイズ(同じ行数・列数) でなければならない

症状

  • #VALUE! エラーが出る

ダメな例

=COUNTIFS(A2:A100, "商品A", B2:B50, "東京")
                              ↑ ここだけ B2:B50 で範囲が短い

正しい例

=COUNTIFS(A2:A100, "商品A", B2:B100, "東京")

解決方法

すべての範囲を 同じ開始行・終了行 に揃えてください。 列全体を指定する方法も使えます:

=COUNTIFS(A:A, "商品A", B:B, "東京")

📌 ポイント: 列全体(A:A など)を使うと範囲ズレの心配が消えますが、データ量が多いと処理が重くなることがあります。実務では $A$2:$A$1000 のように 絶対参照+十分な行数 を確保する書き方も定番。

COUNTIFSの2つ目の条件範囲だけ B2:B3 と短く指定したため、E2 が #VALUE! エラーになっている例


現場のケース

【実務でこれが起きた場面】

工場の月次棚卸シートで、前任者から引き継いだCOUNTIFSが突然「更新されない」というトラブルに遭遇した。数式を確認しても正しく、データも正常に入力されているのに、品番ごとの件数が前日のまま変わらない。半日かけてデータを手動で突き合わせたが原因がわからず、最後に試したF9キーで数字が動いて解決した。Excelが「手動計算モード」になっていたのが原因で、前任者が行数の多い重いシートの処理速度を上げるために切り替えたまま引き継いでいた。手動計算モードで再計算待ちのとき、Excelの右下ステータスバーの左側に「再計算」(環境により「計算」)と表示されるのがサイン(変更が無ければ常に出るわけではない)。F9キーを試すか、リボンの「数式」タブ→「計算方法の設定」→「自動」で解消できる。このパターンはシートを引き継いだ直後に起きやすく、データ修正より先にF9キーを試す習慣が実務では有効だ。


それでも直らないときの中級チェック

御三家で絞れない場合は、クォート・ワイルドカード・空白仕様の3つを順に確認する。

御三家で原因が特定できないときは、以下を疑います。

④ 比較演算子のクォート忘れ

「>=80」のような条件式はクォートで囲まないと#NAME?エラーになる。

「80以上」や「東京以外」のような 条件式文字列として クォートで囲む必要があります。

ダメな例

=COUNTIF(A2:A100, >=80)   ← >=80 がクォートされていない

正しい例

=COUNTIF(A2:A100, ">=80")
=COUNTIF(A2:A100, "<>東京")

セル参照を組み合わせるとき は、演算子だけクォートして & で連結します。

=COUNTIF(A2:A100, ">="&D1)

これは「D1 の値以上のもの件数」という意味。

📌 ポイント: 「= を含む条件」「<> を含む条件」は 必ずクォートが必要。クォートを忘れると #NAME? か想定外の結果になります。(Excelのバージョンによっては、入力した瞬間に「この数式には問題があります」というダイアログで弾かれ、#NAME?のまま確定入力できない場合もあります)

COUNTIFの2つ目の引数 >=80 をクォートで囲まずに書いたため、D2 で #NAME? エラーになっている


⑤ ワイルドカード(* ?)と完全一致の混同

COUNTIFはデフォルトで完全一致だが、「*」「?」を使えば部分一致になる。

COUNTIF / COUNTIFS は デフォルトで完全一致 ですが、ワイルドカードも使えます。

ワイルドカードの意味

記号意味
*任意の文字(0文字以上)
?任意の1文字
~* / ~?* / ? 自体を検索したいとき(エスケープ)

部分一致したいとき

=COUNTIF(A2:A100, "商品*")    ← "商品" で始まる
=COUNTIF(A2:A100, "*東京*")   ← "東京" を含む
=COUNTIF(A2:A100, "*店")      ← "店" で終わる

📌 ポイント: 部分一致で数えたいのに完全一致で書いている、または逆に完全一致のつもりが * を含む文字列が予想外にヒット…のパターンが多いです。

COUNTIFで "商品*" を条件にすると、A列の「商品A」「商品B」「商品C」(黄色ハイライト)が部分一致し、D2に件数3が返る


⑥ 空白セル・重複・大文字小文字の落とし穴

COUNTIFは大文字小文字を区別せず、重複があればその個数分だけカウントする。

仕様を勘違いしやすい3つのケース。

空白セルを数える / 除外する

=COUNTBLANK(A2:A100)        ← 空白セルの個数
=COUNTIF(A2:A100, "<>")     ← 何か入力があるセルの個数
=COUNTA(A2:A100)            ← 空白でないセルの個数(文字列・数値問わず)

COUNTIF(A2:A100,"") は「空文字」を数えるので、完全な空セル数式が返す "" で挙動が変わることがあります。

A列の回答セルのうち、A3だけが空白(黄色ハイライト)。COUNTIF(A2:A5,"<>") で「回答済み」3件が D2 に集計される

重複は どちらもカウントされる

=COUNTIF(A:A, "商品A") は「商品A」が10行あれば10と返ります。ユニーク数を数えたい ときは別の式を使います:

=SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))

⚠️ この式は範囲内に空白セルがあると #DIV/0! エラーになります(空白を COUNTIF が 0 と数え、1/0 が発生するため)。空白が混じる場合は下の UNIQUE 版が安全です。

または Microsoft 365 / Excel 2021 以降なら:

=COUNTA(UNIQUE(A2:A100))

大文字小文字は 区別されない

"abc""ABC" は同じ扱い。区別したい場合は SUMPRODUCT + EXACT を使います。

=SUMPRODUCT(--EXACT(A2:A100, "ABC"))

おまけ:式は合っているのに結果が反映・更新されない

数式が正しいのに更新されない場合は、手動計算モードかセルの文字列扱いが原因だ。

「数式は正しいはずなのに、元データを直しても 件数が古いまま変わらない」「反映されない・更新されない」ときは、原因が2つ考えられます。

原因1:手動計算モードになっている

Excel が 手動計算モード になっていると、データを書き換えても数式が自動で再計算されません。COUNTIF 自体は正しいのに、結果だけが古い値のまま固まります。

戻し方は次のどちらかです。

  • F9 キー を押す(開いている全ブックを再計算)
  • 「数式」タブ →「計算方法の設定」→「自動」 を選ぶ(恒久的に自動再計算へ戻す)

📌 ポイント: 一度だけ更新したいなら F9、今後ずっと自動に戻したいなら 「数式」タブ →「計算方法の設定」→「自動」 です。シートのどこを直しても結果が動かないときは、まずここを疑ってください。

原因2:セル自体が文字列扱いで、数式が文字列として表示されている

=COUNTIF(...) と入力したのに、計算結果ではなく 数式の文字がそのまま表示される 場合は、そのセルが文字列扱いになっています。これは COUNTIF 固有の問題ではなく、数式全般で起きるトラブルです。直し方は 数式が計算されない・=SUMがそのまま表示される で詳しく解説しています。


まとめ:判断フロー

エラーの種類(0/#VALUE!/#NAME?/期待値違い)で確認すべき原因が決まる。

順番疑うこと解決の道具
データ型の不一致「形式を選択して貼り付け→乗算」で一括変換
見えない余白・改行TRIM の作業列
COUNTIFS の範囲サイズ全範囲を同じ行数に揃える
比較演算子のクォート漏れ">=80" のように文字列化
ワイルドカード* ? ~* の意味を確認
空白・重複・大文字COUNTBLANK / COUNTA / UNIQUE / EXACT

この順番で確認すれば、ほぼ全ての COUNTIF / COUNTIFS のトラブルが解決できます。


よくある質問

日付・空白・重複・大文字小文字に関するよくある疑問への回答をまとめた。

Q. COUNTIFS と COUNTIF、どちらを覚えるべき?

COUNTIFSを覚えれば十分。条件1つでもCOUNTIFSで書けるので統一できる。

A. COUNTIFS を覚えれば十分 です。条件1つでも COUNTIFS で書けるので、統一感が出てメンテナンスしやすくなります。

Q. 「○○以外」をカウントしたい

<> 演算子を使えばよい。空白以外なら "<>" だけで対応できる。

A. =COUNTIF(A:A, "<>東京") のように <> を使います。空白以外なら "<>"

Q. 日付の範囲(ある月・期間)で件数を数えたい

COUNTIFSに ">="&DATE(...)"<"&DATE(...) を組み合わせて期間を挟む。

A. COUNTIFS で期間の上限・下限を指定 します。日付は数値(シリアル値)なので、比較演算子と DATE() 関数を & で連結して書くのが安全です。たとえば「2026年1月に入った件数」は次のように書きます。

=COUNTIFS(A:A, ">="&DATE(2026,1,1), A:A, "<"&DATE(2026,2,1))

「1月1日以上 かつ 2月1日未満」で1月分だけを数える書き方です。月末日を <=DATE(2026,1,31) と直接書くより、翌月1日を < で区切る ほうが時刻付きデータでも取りこぼしません。

⚠️ 件数が 0 になるときは、集計対象の日付そのものが「文字列の日付」(左寄せで、書式を変えても日付にならない)になっている可能性があります。その場合は 日付が数字になる・直らないときの直し方 で本物の日付に直してから数えてください。

Q. 結果がどうしても合わない…

この手順で直らない場合はレアケースの可能性があり、AIサポートでの切り分けが近道だ。

記事の手順を試しても直らない場合、特定の構成だけで起きるレアケースかもしれません。AIサポートで対話的に原因を切り分けてみてください。

無料ダウンロード・登録不要のメールだけ

Excelの「詰まりどころ」早見表を1枚に。

COUNTIF・SUMIF・#N/A・エラー6種の《症状→原因→即対応》をA4一枚に凝縮。印刷して手元に。

次に読む

よく読まれている

それでも解決しないときは

記事の手順を試しても直らない場合、特定の構成だけで起きるレアケースかもしれません。対話で原因を1つずつ切り分けるのが最短です。

AI案内人に相談する(無料・登録不要)→