COUNTIF関数の使い方・読み方|条件に合う件数を数える

執筆者:

カテゴリ:

COUNTIF関数の使い方・読み方のイメージ

集計

COUNTIF関数の使い方・読み方

Excel関数辞典

読み方:COUNTIF は「カウントイフ」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

COUNTIFは、条件に合うセルの個数を数える関数です。「東京の件数」「未処理の件数」といった集計に使います。

使える環境Excel○Googleスプレッドシート○
このページの中身(23項目)
  1. 書式
  2. 基本の使い方
  3. 条件の書き方
  4. 重複チェックに使う
  5. リストに含まれるか判定する
  6. 条件が2つ以上あるとき
  7. COUNT・COUNTAとの違い
  8. よくある失敗
  9. Excelとの違い
  10. 数えられないときに何が起きているか
  11. ワイルドカードで部分一致を数える
  12. 重複を見つける実務的な使い方
  13. 数える対象による使い分け
  14. 数える対象を業務の言葉で定義する
  15. 「集計」の関数を全体から見る
  16. 数式を書く前の手順
  17. どの関数でも共通する確認
  18. 引き継ぐときに残すこと
  19. このサイトの収録状況
  20. よくある質問
  21. この分野の他の記事
  22. まとめ
  23. 関連する関数

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

合計ではなく件数を数える点だけが SUMIF との違いで、書き方の考え方は同じです。Excel・Googleスプレッドシート両方で同じ書式が使えます。

COUNTIF関数の使い方の記事構成図
COUNTIF関数の使い方:この記事で扱う内容

書式

=COUNTIF(範囲, 条件)
引数内容
範囲数える対象の範囲
条件判定の内容。文字列や比較式は " で囲む

引数は2つだけです。SUMIF と違い、「数える範囲」を別に指定する必要はありません。

基本の使い方

AB
1支店売上
2東京1200
3大阪800
4東京1500
5名古屋950
=COUNTIF(A2:A5, "東京")   → 2

数値の条件も同じように書けます。

=COUNTIF(B2:B5, ">=1000")   → 2

条件をセル参照にすれば、入力で切り替えられます。

=COUNTIF(A:A, D1)
COUNTIF関数の使い方の要点図
COUNTIF関数の使い方

条件の書き方

条件意味
"東京"東京と完全一致
">1000"1000より大きい
">=1000"1000以上
"<>東京"東京以外
""空欄
"<>"空欄でない
"東*"「東」で始まる
"*店"「店」で終わる
"*営業*"「営業」を含む

セルの値と比較したいとき

比較演算子とセル参照を組み合わせるには、& で連結します。

=COUNTIF(B:B, ">"&D1)

">D1" と書くと文字列の「D1」を探しに行きます。 ここが最も多い間違いです。

重複チェックに使う

COUNTIFの実務での最大の用途がこれです。

重複している行に印を付ける

=IF(COUNTIF(A:A, A2) > 1, "重複", "")

A列全体で自分と同じ値を数え、2件以上あれば重複と判定します。この数式を下方向にコピーするだけで、重複が一目で分かります。

2件目以降だけに印を付ける

上の書き方だと、重複している行がすべて「重複」になります。1件目は残して2件目以降だけ消したい場合は、範囲を「自分の行まで」に限定します。

=IF(COUNTIF($A$2:A2, A2) > 1, "削除対象", "")

範囲の開始だけを絶対参照($A$2)にするのがポイントです。下にコピーすると範囲が $A$2:A3、$A$2:A4 と伸びていき、「ここまでに自分と同じ値が何件あったか」を数えます。

入力規則で重複を防ぐ

データの入力規則 → カスタム数式に次を入れます。

=COUNTIF(A:A, A1) = 1

同じ値が既にあると入力できなくなります。後から掃除するより、入れさせないほうが確実です。

2つのリストを突き合わせる

「Aのリストにあって、Bのリストにないもの」を探すのにも使えます。

=IF(COUNTIF(B:B, A2) = 0, "Bに無い", "")

VLOOKUP で #N/A を見る方法もありますが、存在確認だけならCOUNTIFのほうが素直です。エラー処理が不要になります。

リストに含まれるか判定する

「東京・神奈川・千葉・埼玉のどれかか」を判定したいとき、OR を並べると長くなります。

=IF(OR(A2="東京", A2="神奈川", A2="千葉", A2="埼玉"), "首都圏", "地方")

別シートにリストを作れば、COUNTIFで1行で書けます。

=IF(COUNTIF(リスト!A:A, A2) > 0, "首都圏", "地方")

候補が増えても数式を触らずに済みます

候補が5つを超えたらこちらに切り替えるのが実用的な目安です。

条件が2つ以上あるとき

COUNTIFは条件を1つしか取れません。「東京」かつ「1000以上」のような判定には COUNTIFS を使います。

=COUNTIFS(A2:A5, "東京", B2:B5, ">=1000")

COUNT・COUNTAとの違い

関数数えるもの
COUNT数値が入っているセル
COUNTA空欄でないセル(文字列も含む)
COUNTIF条件に合うセル

「入力済みの行数を数えたい」なら COUNTA です。COUNTは数値しか数えないので、文字列の列に使うと0になります。

注意: 数式が返した ""(空文字)は、見た目は空欄ですが COUNTA では1件として数えられます。ここは実務でよく引っかかります。

よくある失敗

数えられない・0になる

1. 余分なスペース

"東京 " と "東京" は別物です。元データを TRIM で整えてください。

2. 数値と文字列の食い違い

101(数値)と "101"(文字列)は別物です。セルが左寄せなら文字列です。

3. 比較演算子とセル参照を & でつないでいない

">"&D1 が正解です。

4. 全角と半角

"ABC" と "ABC" は一致しません。

意図より多く数えられる

ワイルドカードが効いてしまっている可能性があります。検索したい文字列に * や ? が含まれていると、任意の文字として解釈されます。文字そのものを探すなら ~* のように ~ を付けてください。

部分一致してしまう

COUNTIFは、条件に * を書かなければ完全一致です。ただしセル内改行や不可視文字が入っていると、一致しないのに一致しているように見えることがあります。LEN() で文字数を確認すると判別できます。

Excelとの違い

書式・挙動ともにExcelと同じです

ワイルドカード、比較演算子、& での連結もすべて共通です。

Googleスプレッドシート特有の利点として、QUERY を使うとグループごとの件数を一度に出せます。

=QUERY(A:B, "select A, count(B) group by A", 1)

COUNTIFを支店の数だけ並べる代わりに、この1行で全支店の件数が出ます。集計表を作るならQUERYのほうが速いです。


数えられないときに何が起きているか

COUNTIFで「0件と出るが、目で見ると確かに存在する」という状況は頻繁に起こります。原因はほぼ決まっていて、条件の書き方か、データの中身のどちらかです。順に見ていきます。

まず疑うべきは、セルの中身が見た目と違うことです。他のシステムから貼り付けたデータには、前後に空白が入っていることがよくあります。「東京」と表示されていても、実際には「東京 」のように末尾に半角スペースが付いていれば、条件「東京」とは一致しません。人の目にはまったく同じに見えるので、これが最も気づきにくい原因になります。

確かめる方法は簡単です。空いたセルに文字数を数える数式を入れてください。「東京」なら2と出るはずですが、3や4と出れば余計な文字が入っています。前後の空白を落として数えたい場合は、条件側ではなくデータ側を整えるのが確実です。作業列にTRIM関数で整えた値を出し、そちらを数える範囲にしてください。

次に疑うのは、数値と文字列の食い違いです。売上や個数を条件にするとき、データ側が文字列として入っていると数値の条件では一致しません。表示が左寄せになっていれば文字列の可能性が高いと考えてください。逆に、条件をダブルクォートで囲んで文字列にしてしまうと、数値のデータとは一致しません。ここは両方向で間違えやすいところです。

三つ目は、セル参照を条件に使うときの書き方です。条件を別のセルから取ってくる場合、比較演算子と参照をつなぐ必要があります。単に不等号とセル番地を並べて書いても、そのまま文字として解釈されてしまいます。アンパサンドで連結して、ひとつの文字列として渡してください。この書き方を知らないと、条件を変数化した瞬間に動かなくなります。

四つ目は、改行が混ざっている場合です。フォームの回答やメールから貼り付けたデータには、セルの中に改行が入っていることがあります。改行はスペースよりさらに見えにくく、セルの高さが妙に高いことだけが手がかりになります。


ワイルドカードで部分一致を数える

COUNTIFの条件には、部分一致を表す記号が使えます。アスタリスクは任意の長さの文字列、クエスチョンマークは任意の1文字を表します。この2つを使い分けられると、数えられる範囲が一気に広がります。

たとえば「東京都」で始まる住所を数えたい場合、条件を「東京都」の後ろにアスタリスクを付けた形にします。逆に「支店」で終わるものを数えたいなら、アスタリスクを前に置きます。どこかに含まれていればよい場合は、前後の両方に付けます。

文字数を条件にすることもできます。クエスチョンマークを3つ並べれば、ちょうど3文字のものだけが対象になります。コード体系の桁数チェックに使えます。

注意点がひとつあります。アスタリスクやクエスチョンマーク自体を文字として探したい場合は、そのままでは記号として解釈されてしまいます。この場合は記号の前にチルダを付けてください。商品名に記号が入る業種では、これを知らないと数が合いません。

もうひとつ、ワイルドカードは文字列にしか効きません。 数値のセルに対して部分一致で数えることはできません。「1で始まる数値」を数えたいなら、文字列に変換した作業列を用意するか、別の関数を使う必要があります。


重複を見つける実務的な使い方

COUNTIFの用途として最も多いのが、重複のチェックです。考え方は単純で、それぞれの値が範囲全体に何回現れるかを数え、2以上なら重複していると判断します。

作業列に数式を入れて下までコピーすれば、重複している行が一目で分かります。範囲は絶対参照で固定し、条件は行ごとに変わるように相対参照にするのがポイントです。ここを間違えると、下の行ほど範囲が狭くなり、正しく数えられません。

さらに一歩進んで、何件目の重複かを出すこともできます。範囲の開始行だけを固定して終了行を相対参照にすると、その行までに何回現れたかが返ります。1なら初出、2以上なら2回目以降ということです。これを使うと、初出だけを残して後から出てきたものを消す、という処理ができます。

重複を見つけるだけでなく、そもそも重複を入力させない方法もあります。データの入力規則にCOUNTIFの数式を設定し、1より大きくなる入力を弾くようにします。入力の時点で防げるので、後から掃除する手間がなくなります。

なお、重複を除いた一覧そのものが欲しい場合は、COUNTIFで判定するより専用の関数を使うほうが簡単です。→ UNIQUE関数の使い方 / 重複を削除・抽出する方法


数える対象による使い分け

COUNTから始まる関数は数が多く、どれを使うべきか迷いやすいところです。判断の基準は「何を数えたいか」の一点です。

数値だけを数えたいならCOUNT、空白以外をすべて数えたいならCOUNTA、条件に合うものだけならCOUNTIF、条件が2つ以上ならCOUNTIFS、空白そのものを数えたいならCOUNTBLANKになります。この5つを押さえておけば、日常の集計はほぼ足ります。

つまずきやすいのは、数式が返した空文字の扱いです。IF関数で条件に合わないときに空文字を返すようにしていると、そのセルは見た目には空白ですが、COUNTAでは1件として数えられます。COUNTBLANKでは数えられません。「空白の件数が合わない」という相談の大半はこれが原因です。

もうひとつ、COUNTIFの条件に空文字を指定したときの挙動も環境によって差が出ます。確実に空白を数えたいならCOUNTBLANKを使い、確実に入力済みを数えたいならCOUNTAを使う、と決めておくほうが安全です。


数える対象を業務の言葉で定義する

数式を書く前に、何を数えたいのかを日本語で書き出してください。この一手間で、条件の取り違えが激減します。

「今月の東京の受注件数」と書けば、条件が三つあることが分かります。期間、地域、区分。それぞれの定義も明確にする必要があります。

今月とは、暦月なのか締め日で区切った月なのか。受注日を基準にするのか、計上日を基準にするのか。

東京とは、都道府県が東京のものか、支店が東京のものか。両方の列がある場合、どちらで判定するかで結果が変わります。

受注とは、どの状態を指すのか。見積段階を含むのか、キャンセルを除くのか。

こうした定義を曖昧にしたまま数式を書くと、動いてはいるが業務と合わない、という状態になります。原因が数式ではなく解釈にあるため、いくら数式を見直しても見つかりません。

書き出した定義は、集計表の近くに残してください。後で数字を説明するときに必要になります。他人が引き継いだときも、同じ基準で運用できます。

この習慣は、件数に限らずすべての集計に当てはまります。数式を書く時間より、定義を決める時間のほうが重要です。

「集計」の関数を全体から見る

数値をまとめる関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに48本あります。

記事
ABS
AGGREGATE
AVERAGE
AVERAGEIF
AVERAGEIFS
CEILING
CORREL
COUNT
COUNTA
COUNTBLANK
COUNTIFS
COUNTUNIQUE
FLOOR
GEOMEAN
INT
LARGE
MAX
MAXIFS
MEDIAN
MIN
MINIFS
MOD
MODE
PERCENTILE
POWER
PRODUCT
QUARTILE
QUOTIENT
RAND
RANDBETWEEN
RANK
ROUND
ROUNDDOWN
ROUNDUP
SIGN
SMALL
SPARKLINE
SQRT
STDEV
SUBTOTAL
SUM
SUMIF
SUMIFS
SUMPRODUCT
SUMSQ
TRIMMEAN
TRUNC
VAR

このカテゴリで共通するつまずき

空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

先に決めておけば、書くのは数分で終わります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

うまくいかないときに見る場所は、ほぼ決まっています。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

収録は201本です。カテゴリごとの内訳を出しておきます。

カテゴリ記事数
目的別51本
集計47本 ←この記事
文字列31本
日付19本
検索・参照15本
条件15本
機能12本
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 複数の条件で数えたいのですが

条件が2つ以上ならCOUNTIFSを使います。条件と範囲をペアで並べていく形なので、書き方はCOUNTIFの延長で理解できます。→ COUNTIFS関数の使い方

Q. 「または」の条件で数えられますか

COUNTIF単体ではできません。それぞれの条件でCOUNTIFを書いて足す方法が最も分かりやすく、実務でもよく使われます。ただし両方に当てはまるものが二重に数えられる点には注意してください。

Q. 別のシートの範囲を数えられますか

できます。範囲の指定にシート名を付けるだけです。別ファイルの場合は、スプレッドシートならIMPORTRANGE経由になります。

Q. 大文字と小文字を区別できますか

COUNTIFでは区別されません。区別して数えたい場合は、EXACT関数とSUMPRODUCTを組み合わせる方法があります。

Q. 日付を条件にすると数が合いません

日付は内部的には数値として扱われます。条件に日付を直接書くと解釈が環境によって変わるため、DATE関数で作った値と比較するか、別セルに日付を置いて参照するほうが確実です。

Q. 色の付いたセルを数えられますか

標準の関数ではできません。条件付き書式で色を付けているなら、色ではなくその条件そのものをCOUNTIFの条件にしてください。

Q. 範囲を列全体にしても大丈夫ですか

動作はしますが、行数の多いシートでは再計算が重くなります。実際にデータのある範囲に絞ることをおすすめします。

Q. 0件のときにエラーになりますか

なりません。該当がなければ0が返ります。エラーが出る場合は、条件の書き方か範囲の指定に問題があります。




この分野の他の記事

同じ「集計」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。

まとめ

  • 書式は =COUNTIF(範囲, 条件)
  • 比較演算子は ">1000" のように " で囲む
  • セル参照と組み合わせるときは ">"&D1
  • 重複チェックの定番は COUNTIF(A:A, A2) > 1
  • 2件目以降だけなら COUNTIF($A$2:A2, A2) > 1
  • 条件が2つ以上なら COUNTIFS

関連する関数