スプレッドシートのCOUNTIF関数の使い方|条件の書き方一覧

スポンサーリンク

「出席」と入力されたセルが何個あるか、スプレッドシートでさっと数えたい。そんな場面は仕事でよくありますよね。

名簿や出欠表が長くなるほど、目で数えるのはつらくなります。数え直すたびに結果が変わる、なんてこともあるはず。「80点以上」「〇〇を含む」「チェックが入った数」となると、条件の書き方で手が止まりがちです。

この記事では、GoogleスプレッドシートのCOUNTIF関数の使い方を基本から解説します。条件の書き方は、やりたいことから引ける早見表にまとめました。チェックボックスやGoogleフォームの回答を数える実務例も紹介するので、手元の表で試してみてください。

スプレッドシートのCOUNTIF関数とは?書き方と基本の使い方

COUNTIF関数(読み方: カウントイフ)は、範囲の中で条件に合うセルの個数を返す関数です。名前はCOUNT(数える)とIF(もし)の組み合わせ。「営業部は何人?」「80点以上は何人?」といった問いに、数式1つで答えてくれます。

構文と引数(=COUNTIF(範囲, 条件))

=COUNTIF(範囲, 条件)
引数必須/任意説明
範囲必須条件に合うかを調べるセル範囲(例: B2:B9)
条件必須数える基準。文字列・数値・比較式・ワイルドカードなどで指定

引数は「どこを調べるか」と「何を数えるか」の2つだけ。ただし、条件は1つしか指定できません。条件が2つ以上あるときは、後半で紹介するCOUNTIFS関数を使います。

次のサンプル表を例に、具体的な数式を見ていきましょう。

行A(氏名)B(部署)C(点数)
2佐藤営業部85
3鈴木総務部72
4高橋営業部90
5田中経理部64
6伊藤営業部78
7渡辺総務部55
8山本経理部100
9中村営業部80

文字列に一致するセルを数える

=COUNTIF(B2:B9, "営業部")

B2:B9のうち「営業部」と入力されたセルを数えます。サンプル表では佐藤・高橋・伊藤・中村の4人なので、結果は「4」です。

文字列の条件は、ダブルクォーテーション(”)で囲むのが決まり。囲み忘れは、結果が合わない原因の定番なので最初に覚えておきましょう。

セル参照で条件を指定する

=COUNTIF(B2:B9, E2)

E2に「総務部」と入力しておくと、総務部のセル数「2」が返ります。E2を書き換えるだけで、数式を触らずに別の部署を数え直せるのが利点です。

部署ごとの集計表を作るときは、この形が基本になります。なお、セル参照はダブルクォーテーションで囲みません。"E2"と書くと「E2」という文字を探してしまうので注意してください。

数値に一致するセルを数える

=COUNTIF(C2:C9, 100)

C列で「100」ぴったりのセルを数えます。サンプル表では山本さんだけなので、結果は「1」。数値そのものを条件にするときは、ダブルクォーテーションなしで書けます。

COUNTIFの条件の書き方パターン一覧(逆引き早見表)

COUNTIF関数の便利さは、条件の書き方の幅広さにあります。「やりたいこと」から引けるよう、よく使う書き方を1枚にまとめました。範囲は例なので、自分の表に合わせて読み替えてください。

やりたいこと条件の書き方数式の例
「営業部」と完全一致"営業部"=COUNTIF(B2:B100, "営業部")
セルの値と一致E2=COUNTIF(B2:B100, E2)
80以上">=80"=COUNTIF(C2:C100, ">=80")
80より大きい">80"=COUNTIF(C2:C100, ">80")
60未満"<60"=COUNTIF(C2:C100, "<60")
「営業部」以外"<>営業部"=COUNTIF(B2:B100, "<>営業部")
セルの値以上">="&E3=COUNTIF(C2:C100, ">="&E3)
「東京」を含む"東京"=COUNTIF(A2:A100, "東京")
「東京」で始まる"東京*"=COUNTIF(A2:A100, "東京*")
「支店」で終わる"*支店"=COUNTIF(A2:A100, "*支店")
ちょうど3文字"???"=COUNTIF(A2:A100, "???")
空白以外"<>"=COUNTIF(A2:A100, "<>")
空白""=COUNTIF(A2:A100, "")
今日以前の日付"<="&TODAY()=COUNTIF(D2:D100, "<="&TODAY())
指定日以降">="&DATE(2026,4,1)=COUNTIF(D2:D100, ">="&DATE(2026,4,1))
チェックが入った数TRUE=COUNTIF(F2:F100, TRUE)
チェックが入っていない数FALSE=COUNTIF(F2:F100, FALSE)

以上・未満・〇〇以外(比較演算子)

数値の大小や「〇〇以外」で数えるときは、比較演算子を使います。使える記号は=・>・>=・<・<=・<>(等しくない)の6つです。

=COUNTIF(C2:C9, ">=80")
=COUNTIF(C2:C9, "<60")
=COUNTIF(B2:B9, "<>営業部")

サンプル表での結果は、上から「4」「1」「4」。80点以上は佐藤・高橋・山本・中村の4人、60点未満は渡辺さんの1人です。営業部以外は総務部2人と経理部2人で4人になります。

ポイントは、演算子と値をまとめてダブルクォーテーションで囲むこと。>=80ではなく">=80"と書きます。

基準の値をセルに入れておきたいときは、演算子だけを囲んで&でつなぐのがコツです。

=COUNTIF(C2:C9, ">="&E3)

E3に「70」を入れておけば、70点以上の人数を数えます。サンプル表なら結果は「6」。合格ラインを変えても、数式を直さずに済むのがメリットです。

〇〇を含む・〇〇で始まる(ワイルドカード)

部分一致で数えたいときは、ワイルドカードという記号を使います。

記号意味例
*0文字以上の任意の文字列"東京" → 「東京」を含む
?任意の1文字"??部" → 3文字で「部」で終わる
~直後の*や?を記号そのものとして扱う"~?" → 「?」を含む
=COUNTIF(A2:A50, "*東京*")

「東京都」「東京支店」「新東京ビル」のように、「東京」がどこかに含まれていれば数えます。前方一致の"東京"や後方一致の"支店"は、早見表のとおりです。

なお、チルダ(~)自体を探すときは~~と2つ重ねましょう。

空白以外・空白を数える

=COUNTIF(A2:A50, "<>")
=COUNTIF(A2:A50, "")

1行目は何か入力されているセル、2行目は空白のセルを数えます。入力済みと未入力の件数を並べると、記入漏れのチェックに便利です。

ただし、範囲を広めに取ると、データのない下の行まで「空白」として数えます。数式の結果が空になっているセルが混ざる表では、件数が想定とずれることもあります。

結果が合わないときは、COUNTA関数やCOUNTBLANK関数の解説もあわせて確認してみてください。

日付で数える(今日以前・今月)

=COUNTIF(D2:D50, "<="&TODAY())
=COUNTIF(D2:D50, ">="&DATE(2026,4,1))

1つ目は今日以前、2つ目は2026年4月1日以降の日付を数えます。比較演算子をダブルクォーテーションで囲み、TODAY関数やDATE関数を&でつなぐ形です。TODAYを使えば、基準日が毎日自動で切り替わります。

「今月」のように開始日と終了日がある期間は、条件が2つになります。この場合はCOUNTIFS関数で書くのがわかりやすいでしょう。

=COUNTIFS(D2:D50, ">="&EOMONTH(TODAY(),-1)+1, D2:D50, "<="&EOMONTH(TODAY(),0))

EOMONTH(TODAY(),-1)+1が今月1日、EOMONTH(TODAY(),0)が今月末日という意味です。

チェックボックスのチェック数を数える(TRUE / FALSE)

スプレッドシートのチェックボックスは、上部メニューの「挿入」→「チェックボックス」で入れられます。チェックが入ったセルはTRUE、外れたセルはFALSEの値を持つため、COUNTIFでそのまま数えられます。

=COUNTIF(F2:F100, TRUE)
=COUNTIF(F2:F100, FALSE)

TRUEとFALSEは、ダブルクォーテーションで囲まずに書くのが基本です。

注意したいのは、チェックボックスに「カスタムのセル値」を設定している場合。たとえばチェック時の値を「はい」にしているなら、条件もTRUEではなく"はい"にします。

スプレッドシートで使えるCOUNTIF活用例

条件の書き方がわかったら、実際の業務シートで使ってみましょう。ここでは、スプレッドシートならではの場面を中心に4つ紹介します。

重複チェックと条件付き書式で色付け

A列にメールアドレスが並んでいて、同じアドレスが二重に登録されていないか確かめたい場面です。補助列のB2に次の数式を入れ、下の行へコピーします。

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

COUNTIFで「自分と同じ値が範囲内に何個あるか」を数え、2個以上なら「重複」と表示する仕組みです。範囲を$A$2:$A$100と絶対参照にしておくと、コピーしても範囲がずれません。

補助列を作らずに色で目立たせたいなら、条件付き書式のカスタム数式が便利です。

  1. A2:A100を選択する
  2. メニューの「表示形式」→「条件付き書式」を開く
  3. 「セルの書式設定の条件」で「カスタム数式」を選ぶ
  4. 数式欄に=COUNTIF($A$2:$A$100, $A2)>1と入力する
  5. 背景色を選んで「完了」を押す

これで、重複しているセルにだけ色が付きます。データを追加・修正しても自動で判定し直してくれるので、名簿や顧客リストの管理にぴったり。

データが下へ増え続ける表なら、適用範囲をA:Aにする方法もあります。その場合の数式は=COUNTIF($A:$A, $A1)>1です。

設定画面の詳しい使い方は条件付き書式の解説を参考にしてください。重複を取り除いた一覧を作りたいときは、UNIQUE関数が役立ちます。

チェックボックスで出欠・タスク完了数を数える

A列に参加者名(A2:A11の10人)、B列にチェックボックスが並んだ出欠表を考えます。出席した人にチェックを入れていく運用です。

=COUNTIF(B2:B11, TRUE)
=COUNTIF(B2:B11, FALSE)
=COUNTIF(B2:B11, TRUE)/COUNTA(A2:A11)

7人にチェックが入っていれば、出席数は「7」、未チェックは「3」です。3行目は出席率の計算で、表示形式をパーセントにすると「70%」と表示されます。

タスク管理表でも考え方は同じ。完了列のチェック数を数えれば、残りのタスク数や完了率がすぐにわかるはず。進捗管理シートの作り方は、チェックボックスで進捗管理シートを作る方法で詳しく紹介しています。

Googleフォームの回答を選択肢ごとに集計する

Googleフォームの回答をスプレッドシートに連携すると、回答シートに1件ずつ行が追加されていきます。たとえば「参加方法」の回答がC列に入っているなら、数式は次のとおりです。

=COUNTIF('フォームの回答 1'!C:C, "会場")
=COUNTIF('フォームの回答 1'!C:C, "オンライン")

ポイントは、範囲をC:Cの列全体で指定すること。C2:C50のように行を区切ると、50行目より下に追加された回答が集計から漏れてしまいます。列全体なら、回答が増えても数式を直す必要はありません。

1行目の見出し「参加方法」は条件と一致しないので、列全体を指定しても数に入りません。集計用の数式は、回答シートとは別のシートに置くと管理しやすいでしょう。

シート名にスペースが含まれるときは、'フォームの回答 1'!のようにシングルクォーテーションで囲みます。

複数選択(チェックボックス形式)の質問では、1つのセルに複数の選択肢がまとめて入ることがあります。その場合は"オンライン"のように「含む」の条件で数えると、取りこぼしを防げるはず。

ステータス別の件数とOR条件(足し算)

C列に、タスクのステータス(未着手・進行中・完了)が入っているとします。ステータスごとにCOUNTIFを並べるだけで、内訳が出ます。

=COUNTIF(C2:C100, "未着手")
=COUNTIF(C2:C100, "進行中")
=COUNTIF(C2:C100, "完了")

では、「未着手または進行中」の件数を1つのセルで出したいときはどうするか。COUNTIFは条件を1つしか持てないので、COUNTIFどうしを足し算します。

=COUNTIF(C2:C100, "未着手")+COUNTIF(C2:C100, "進行中")

COUNTIFS関数でまとめたくなりますが、COUNTIFSは「すべての条件を満たす」AND条件で数える関数です。1つのセルに「未着手」と「進行中」が同時に入ることはないため、結果は0になってしまいます。OR条件はCOUNTIFの足し算と覚えておきましょう。

COUNTIFと似た関数の使い分け(Excelとの違いも)

スプレッドシートには、個数を数える関数や条件付きで集計する関数がいくつもあります。COUNTIFでできること・できないことの線引きを、1枚の表にまとめました。

関数できることこんなときに使う
COUNTIF条件1つに合うセルを数える「営業部は何人?」「80点以上は何人?」
COUNTIFS複数の条件をすべて満たすセルを数える「営業部で、かつ80点以上は何人?」
COUNT数値が入ったセルを数える(条件なし)点数が入力済みの人数
COUNTA空白以外のセルを数える(条件なし)回答件数・登録件数
COUNTBLANK空白セルを数える未入力の件数
SUMIF条件に合う行の値を合計する「営業部の売上合計は?」
COUNTUNIQUE重複を除いた値の種類を数える「回答した部署は何種類?」
REGEXMATCH正規表現のパターンに合うか判定する「東京都か大阪府で始まる」などの複雑なパターン

COUNTIFが苦手なことは、ほかの関数に任せるのが近道です。

  • 重複を除いた件数を数えたい → =COUNTUNIQUE(A2:A100)
  • 正規表現のパターンで数えたい → REGEXMATCHと組み合わせる(下の例)
  • 大文字と小文字を区別したい → EXACTと組み合わせる(よくある質問のQ2)

COUNTIFの条件として公式ヘルプで説明されているのは、ワイルドカードまで。正規表現を使いたいときは、次のように組み合わせましょう。

=SUMPRODUCT(--REGEXMATCH(A2:A100, "^(東京都|大阪府)"))

A2:A100の住所のうち、「東京都」か「大阪府」で始まるセルを数える例。REGEXMATCHが各セルの判定結果をTRUE/FALSEで返し、SUMPRODUCTがTRUEの数を合計しています。

ExcelのCOUNTIF関数も、構文は=COUNTIF(範囲, 検索条件)で基本の書き方は同じです。比較演算子やワイルドカードの考え方も、そのまま流用できます。

違いが出やすいのは、スプレッドシート固有の関数と組み合わせた数式。IMPORTRANGEやCOUNTUNIQUEはExcelにない関数なので、そのままでは動きません。Excelでの使い方はExcelのCOUNTIF関数の使い方にまとめています。

よくある質問

Q1. 結果が0になるのはなぜ?

数えられるはずのセルがあるのに0になるときは、まず次の3点を確認してみてください。

  • 文字列や比較演算子をダブルクォーテーションで囲んでいるか(>=80ではなく">=80")
  • データの前後に余計なスペースが入っていないか(「営業部 」と「営業部」は別の値)
  • 数値が文字列として入力されていないか(見た目は数字でも、数値の条件に合わないことがある)

それでも解決しないときは、SUMIF・COUNTIFが0になる原因と解決法で原因を順番に切り分けられます。

Q2. 大文字と小文字は区別される?

区別されません。Googleの公式ヘルプにも、COUNTIFは大文字と小文字を区別しないと書かれています。「ABC」と「abc」は同じ値として数えられるわけです。

区別して数えたい場合は、EXACT関数で完全一致を判定する方法があります。

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

EXACTは、大文字・小文字まで一致するかを判定する関数。SUMPRODUCTと組み合わせると、「ABC」と完全に同じセルだけを数えられます。

Q3. 複数の条件で数えたいときは?

「AかつB」のように、すべての条件を満たすセルを数えるならCOUNTIFS関数を使います。

=COUNTIFS(B2:B9, "営業部", C2:C9, ">=80")

サンプル表では、営業部で80点以上の佐藤・高橋・中村の3人が数えられ、結果は「3」です。「AまたはB」のOR条件なら、活用例で紹介したCOUNTIFの足し算を使いましょう。COUNTIFSの詳しい書き方は、COUNTIFS関数の使い方で解説しています。

Q4. 別シート・別ファイルのデータを数えたいときは?

同じファイル内の別シートなら、範囲の前に「シート名!」を付けるだけ。

=COUNTIF(名簿!B2:B100, "営業部")

別のファイルのデータを数えるときは、IMPORTRANGE関数で範囲を読み込んでからCOUNTIFに渡します。

=COUNTIF(IMPORTRANGE("スプレッドシートのURL", "名簿!B2:B100"), "営業部")

初めて別ファイルを参照するときは、アクセスを許可する操作が必要です。手順はIMPORTRANGE関数の使い方で確認してみてください。

まとめ

スプレッドシートのCOUNTIF関数は、条件に合うセルの個数を数式1つで数えられる関数です。ポイントを振り返っておきましょう。

  • 構文は=COUNTIF(範囲, 条件)で、条件は1つだけ
  • 文字列や比較演算子はダブルクォーテーションで囲み、セル参照は&でつなぐ
  • 「含む」「で始まる」はワイルドカードの*・?で書く
  • チェックボックスの数はTRUE/FALSEで数えられる
  • フォームの回答は列全体(C:C)で指定すると、回答が増えても漏れない
  • OR条件はCOUNTIFの足し算、AND条件はCOUNTIFS

条件に合う行の「件数」ではなく「中身」を取り出したくなったら、FILTER関数へ進むのがおすすめです。まずは手元の表で、=COUNTIF(範囲, "完了")を1つ書いてみてください。

タイトルとURLをコピーしました