COUNTIF関数の使い方|条件の書き方と重複チェック・複数条件の数え方

COUNTIF関数は、範囲の中で条件に合うセルの個数を数える関数です。引数は範囲と条件の2つだけ。つまずくのはほぼ「条件の書き方」で、>=100 のような比較演算子やセル参照を使うときに書式が変わります。

この記事でわかること

  • COUNTIF関数の条件の書き方6パターン(数値・文字列・比較・セル参照・部分一致・空欄)
  • 重複チェックと、重複した項目に連番を振る書き方
  • 複数条件で数えるCOUNTIFS関数と、日付で期間を区切る方法
  • COUNT・COUNTA・COUNTBLANKとの違い
  • 0件になる/数が合わないときの原因と直し方


目次

COUNTIF関数の構文と条件の書き方

構文

=COUNTIF(範囲, 検索条件)
引数指定するもの
範囲数える対象のセル範囲
検索条件どんなセルを数えるかの条件

条件の書き方6パターン

やりたいこと書き方例
特定の値と一致そのまま書く=COUNTIF(A2:A100, "東京")
数値と一致引用符は不要=COUNTIF(B2:B100, 100)
〇以上・〇未満演算子ごと " で囲む=COUNTIF(B2:B100, ">=100")
セルの値を条件にセル参照をそのまま=COUNTIF(A2:A100, D2)
セルの値と演算子を組む"演算子"&セル=COUNTIF(B2:B100, ">="&D2)
〇〇を含む(部分一致)* で挟む=COUNTIF(A2:A100, "*東京*")

引っかかりやすいのは5番目です。">=D2" と書くと「D2という文字列以上」という意味になって数えられません。演算子だけを引用符に入れ、& でセル参照をつなぎます。

ワイルドカードの3記号

記号意味例
*任意の文字列(0文字以上)"東京*" =東京で始まる
?任意の1文字"A?01" =A、任意の1文字、01
~直後の記号を文字として扱う"~*" =アスタリスクそのもの
COUNTIF関数の使い方|条件の書き方と重複チェック・複数条件の数え方の解説図1

基本の使い方

A列に都道府県、B列に金額が入った100行の表を例にします。

=COUNTIF($A$2:$A$100, "東京")

A列の中で「東京」と完全に一致するセルの数を返します。大文字と小文字は区別されませんが、全角と半角は別の文字として扱われます。

金額が10万円以上の件数なら、次の式です。

=COUNTIF($B$2:$B$100, ">=100000")

範囲は絶対参照にする

集計表を作って下へコピーする場合、範囲は $A$2:$A$100 のように固定します。固定しないと範囲が1行ずつずれ、下の行ほど件数が減っていきます。F4キーで切り替えられます。

条件のほうは固定しません。条件欄のセルを参照する形にすれば、都道府県ごとの件数を一気に出せます。

=COUNTIF($A$2:$A$100, D2)

実務でよく使う4パターン

① 重複しているかを調べる

同じ値が2件以上あるかを判定します。

=COUNTIF($A$2:$A$100, A2)>1

TRUE になった行が重複です。この式をそのまま条件付き書式のルールに入れれば、重複行に色を付けられます。

② 重複した項目に連番を振る

範囲の始点だけを固定するのが要点です。

=COUNTIF($A$2:A2, A2)

下へコピーすると範囲が $A$2:A3、$A$2:A4 と伸びていくため、同じ値の1件目は 1、2件目は 2 と連番になります。始点だけ固定する書き方は、累計や通し番号を作るときにも同じ形で使えます。

この連番と元の値をつなげば、VLOOKUP関数で「2件目だけを引く」といった処理もできます。

③ 複数条件で数える(COUNTIFS)

条件が2つ以上ならCOUNTIFS関数です。範囲と条件をセットで並べます。

=COUNTIFS($A$2:$A$100, "東京", $B$2:$B$100, ">=100000")

⚠️ すべての範囲は同じ行数でなければなりません。$A$2:$A$100 と $B$2:$B$50 のように長さが違うと #VALUE! になります。

④ 期間で区切って数える

同じ列を2回指定して、開始日と終了日ではさみます。

=COUNTIFS($A$2:$A$100, ">="&DATE(2026,4,1), $A$2:$A$100, "<="&DATE(2026,4,30))

日付を ">=2026/4/1" と直接書くと環境によって解釈が変わるため、DATE関数か日付セルの参照で指定するほうが確実です。

COUNTIF関数の使い方|条件の書き方と重複チェック・複数条件の数え方の解説図2

COUNT系5つの関数の違い

名前が似た関数が5つあり、数える対象が違います。

関数数えるもの対応
COUNT数値が入ったセル2016〜
COUNTA空欄でないセル(文字列も含む)2016〜
COUNTBLANK空欄のセル2016〜
COUNTIF1つの条件に合うセル2016〜
COUNTIFS複数の条件すべてに合うセル2016〜

⚠️ 数式が "" を返しているセルの扱いが分かれます。見た目は空でも、COUNTAは「データあり」として数え、COUNTBLANKは「空欄」として数えます。両方の結果が食い違ったら、その列に "" を返す数式が入っているサインです。

COUNTIF関数の使い方|条件の書き方と重複チェック・複数条件の数え方の解説図3

うまくいかないときの原因と直し方

症状原因直し方
0件になる演算子とセル参照のつなぎ方が違う">="&D2 の形に直す
0件になる(文字列)前後に空白がある/全角半角の混在TRIM・ASCで確認して整える
数が合わない数値が文字列として入っている元データを数値に直す(左寄せなら文字列)
#VALUE!(COUNTIFS)範囲の行数がそろっていないすべての範囲を同じ行数にする
#VALUE!(別ブック参照)参照先のブックが閉じているブックを開く。またはSUMPRODUCTで書き換える
下の行ほど件数が減る範囲が相対参照のままコピーされた$A$2:$A$100 に固定する
再計算が重い範囲に列全体を指定している$A$2:$A$5000 のように行数を区切る

16桁以上の番号が正しく数えられない

COUNTIFは、数字だけの文字列を数値として比較します。Excelが数値として保持できる有効桁数は15桁なので、16桁以上の番号は先頭15桁が同じだと同一とみなされるという挙動になります。会員番号やカード番号の重複チェックで実際に問題になります。

回避するには、条件の末尾にワイルドカードを付けて文字列としての比較を強制します。

=COUNTIF($A$2:$A$100, A2&"*")

大文字と小文字を区別して数える

COUNTIFは ABC と abc を同じ値として数えます。区別したい場合はEXACT関数を組み合わせます。

=SUMPRODUCT(--EXACT($A$2:$A$100, D2))

EXACTが大文字小文字を区別して TRUE/FALSE を返し、-- で数値に変換してから合計する形です。

複数の値のいずれかを数える

COUNTIFは「または」の条件を直接書けません。条件を波かっこで並べ、結果を合計します。

=SUM(COUNTIF($A$2:$A$100, {"東京","大阪","名古屋"}))
COUNTIF関数の使い方|条件の書き方と重複チェック・複数条件の数え方の解説図4

似た関数との使い分け

やりたいこと使う関数対応バージョン
条件に合う件数COUNTIF・COUNTIFS2016〜
条件に合う金額の合計SUMIF・SUMIFS2016〜
条件に合う行を取り出すFILTER2021〜
重複を除いた種類の数UNIQUE+COUNTA2021〜
掛け算しながら条件集計SUMPRODUCT2016〜
軸を変えながら件数を見るピボットテーブル2016〜

数えるのがCOUNTIF、足すのがSUMIF、取り出すのがFILTERと役割が分かれています。

重複を除いた種類の数は、Excel 2021以降ならUNIQUE関数が最短です。

=COUNTA(UNIQUE($A$2:$A$100))

2019以前の環境では、COUNTIFを使った次の形が使えます。ただし範囲に空白セルがあると #DIV/0! になるため、範囲は実データの行数ぴったりに指定します。

=SUMPRODUCT(1/COUNTIF($A$2:$A$100, $A$2:$A$100))

集計軸を何度も変えるならピボットテーブルのほうが速く、式の保守も要りません。件数を決まった位置のセルに出したい場合だけCOUNTIFを選ぶ、という分け方が扱いやすくなります。


よくある質問

Q1:条件に「〇〇以外」を指定できますか?

できます。=COUNTIF($A$2:$A$100, "<>東京") と書きます。<> が「等しくない」を表す演算子です。

Q2:色が付いたセルの数を数えられますか?

COUNTIFでは数えられません。COUNTIFが見ているのはセルの値だけで、書式は判定できないためです。色分けの基準になっている値(ステータス列など)を条件にして数えてください。

Q3:セルの値を含むかどうかで数えたいのですが。

条件にセル参照を使う場合も、ワイルドカードは文字列として & でつなぎます。

=COUNTIF($A$2:$A$100, "*"&D2&"*")

Q4:空欄の数を数えるにはどう書きますか?

COUNTBLANK関数が確実です。COUNTIFで "" を条件にすると、空欄と「空文字列を返す数式」の扱いが分かれて結果が食い違うことがあります。

Q5:別のシートの範囲を数えられますか?

数えられます。=COUNTIF(データ!$A$2:$A$100, "東京") のようにシート名と ! を付けて指定します。別のブックを参照する場合は、そのブックを開いていないと #VALUE! になる点に注意してください。


まとめ

COUNTIFの要点
  • 引数は範囲と検索条件の2つ。つまずくのはほぼ条件の書き方
  • 比較演算子は " の中、セル参照は ">="&D2 と外で & つなぎ
  • 重複チェックは >1、連番は始点だけ固定した $A$2:A2
  • 複数条件はCOUNTIFS。すべての範囲を同じ行数にそろえる
  • 0件になったら「空白・全角半角・型」の3点を先に確認する

※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。

あわせて読みたい

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次