Excel COUNTIF 関数の使い方
COUNTIF(カウントイフ)は、条件に合うセルの個数を数える Excel(エクセル)の関数です。重複した注文番号、合格者の人数、「発送済み」の件数などを1つの数式で数えられます。条件が2つ以上のときは COUNTIFS を使います。構文と条件の書き方、複数条件のカウント、文字列が入ったセルの数え方を、例題と練習問題で身につけましょう。
COUNTIF 関数の構文と2つの引数
COUNTIF は、範囲のセルを1つずつ調べて、検索条件に合うセルの個数を数えます。数えるだけで、合計はしません。条件は1つで、結果は1つの数です。
数える対象のセル範囲です(状態の列 B2:B6、注文番号 A2:A11 など)。COUNTIF はこの範囲のセルを1つずつ調べます。
数えるセルの条件です。文字列はダブルクォーテーションで囲み("発送済み")、数値は囲みません(60)。比較演算子は全体を文字列にします(">=60")。セルとは & でつなげます(">="&E1)。ワイルドカード("*りんご*" や "*")も使えます。
COUNTIF の基本例題:発送済みの注文数を数える
B 列が注文の状態です。この COUNTIF の基本例題では、状態が「発送済み」の行だけを数えます。範囲が1つ、条件が1つです。
| 注文 | 状態 |
|---|---|
| ORD-1 | 発送済み |
| ORD-2 | 保留 |
| ORD-3 | 発送済み |
| ORD-4 | キャンセル |
| ORD-5 | 発送済み |
COUNTIF は B2:B6 から「発送済み」のセルを数え、3 を返します。条件が2つになったら COUNTIFS に切り替えます。単語ではなく、文字列が入ったセルの数を数えたいときは =COUNTIF(A2:A6, "*") と書きます。* は文字列だけに一致し、数値と空白のセルは数えません。
COUNTIF と COUNTIFS:複数条件で数える方法
COUNTIF が指定できるのは「範囲と条件」の1組だけです。COUNTIFS は、この組を必要な数だけ並べられ、すべての組に当てはまる行だけが数えられます。COUNTIFS には合計範囲がないので、SUMIFS のように最初に数値の列を書かないでください。
| 地域 | 状態 |
|---|---|
| 東京 | 発送済み |
| 大阪 | 発送済み |
| 東京 | 保留 |
| 東京 | 発送済み |
4行のうち、「東京」かつ「発送済み」の行は2行です。COUNTIF(B2:B5, "発送済み") だけだと、大阪の行も数えるので 3 になります。条件が複数あるときは COUNTIFS、1つなら COUNTIF を使います。
文字列が入ったセルを数える方法
COUNT は数値しか数えず、COUNTA は空白以外のすべてを数えます。文字列のセルだけを数えるには、条件にワイルドカードの "*" を指定します。* は任意の文字列に一致し、数値と本当の空白のセルは数えません。
| セル | 値 |
|---|---|
| A2 | りんご |
| A3 | 12 |
| A4 | — |
| A5 | バナナケーキ |
| A6 | 4 |
結果は 2 で、「りんご」と「バナナケーキ」です。12 と 4 は数値、A4 は空白なので数えません。1文字以上入っていることを条件にするなら "?*"、特定の語を含むセルなら "*ケーキ*" と書きます(ここでは 1 になります)。英字の大文字と小文字は区別されません。数式が返した空の文字列("")は、ISTEXT では文字列ですが、COUNTIF の "*" では数えられません。
Excel のカウント関数の違い(COUNT・COUNTA・COUNTBLANK・COUNTIF)
Excel でセルの個数を数える関数はいくつかあります。何を数えたいかで、次のように使い分けます。
| 関数 | 数えるもの | 数式の例 |
|---|---|---|
| COUNT | 数値が入ったセル | =COUNT(B2:B9) |
| COUNTA | 空白ではないセル(文字列も数値も) | =COUNTA(A2:A9) |
| COUNTBLANK | 空白のセル | =COUNTBLANK(A2:A9) |
| COUNTIF | 条件に合うセル(条件1つ) | =COUNTIF(B2:B9, ">=60") |
| COUNTIFS | すべての条件に合う行(条件2つ以上) | =COUNTIFS(A2:A9, "東京", B2:B9, ">=60") |
「文字が入っているセルの数」を数えるときは、COUNT ではなく COUNTA か、COUNTIF の条件 "*" を使います。COUNT は数値しか数えません。
COUNTIF の条件の書き方(以上・以外・空白・ワイルドカード)
検索条件には、文字列・数値・比較演算子・ワイルドカードを指定できます。文字列と比較演算子は、ダブルクォーテーションで囲みます。
| 数えたいセル | 条件の書き方 | メモ |
|---|---|---|
| ちょうど 60 のセル | 60 | 数値は囲まない |
| 60 以上のセル | ">=60" | 比較演算子も " で囲む |
| 「保留」以外のセル | "<>保留" | <> は「等しくない」 |
| 「東京」を含むセル | "*東京*" | * は任意の文字列 |
| ちょうど3文字のセル | "???" | ? は任意の1文字 |
| 空白のセル | "" | COUNTBLANK でも数えられる |
| E1 のしきい値以上のセル | ">="&E1 | 演算子とセルを & でつなぐ |
ワイルドカードの * と ? は半角で入力します。全角の「*」は、ただの文字として扱われます。英字の大文字と小文字は区別されません。
COUNTIFS で範囲指定・OR 条件を数える(複数条件の応用)
COUNTIFS に並べた条件は AND 条件で、すべてに当てはまる行だけが数えられます。「60 以上 80 未満」のような範囲指定は、同じ範囲に条件を2つ書きます。
点数が 60 以上 80 未満の人数を数える
「東京または大阪」のような OR 条件は、COUNTIF を足し算するか、配列定数と SUM を組み合わせます。
地域が「東京」または「大阪」の件数を数える
条件に合うセルを数えるのではなく、金額を合計したいときは SUMIF と SUMIFS を使います。SUMIFS は、合計範囲が最初の引数です。COUNTIFS には合計範囲がなく、最初の引数が条件の範囲になります。
COUNTIF で重複を数える・見つける
同じ値が何回出てくるかは、範囲を固定した COUNTIF で数えられます。作業列に次の数式を入れて下にコピーすると、2 以上の行が重複です。
A2 の値が A2:A11 に何回あるかを数える(B2 に入れて下にコピー)
同じ式を =COUNTIF($A$2:$A$11, A2)>1 の形にして、条件付き書式の「数式を使用して、書式設定するセルを決定」に入れると、重複したセルだけに色を付けられます。この考え方は、下の練習問題「重複して登録された注文を見つける」と同じです。
COUNTIF でつまずきやすい4つの落とし穴
1. 検索条件のダブルクォーテーション
文字列の条件は "発送済み" のように囲みます。数値だけの条件(60)は囲みません。比較演算子は全体が1つの文字列で、">=60" と書きます。>=60 をそのまま書くと構文エラーです。しきい値がセルにあるなら ">="&E1 のようにつなぎます。
2. COUNTIFS を SUMIFS の書き方で書いてしまう
SUMIFS の最初の引数は合計範囲ですが、COUNTIFS にはその引数がなく、最初に書くのは1つ目の条件の範囲です。数値の列を余計に入れると、組がずれて、結果が 0 や #VALUE! になります。
3. ワイルドカードと大文字・小文字
COUNTIF は大文字と小文字を区別しません(shipped と Shipped は同じ)。"東京*" は「東京」で始まるセルすべてに一致します(東京都、東京支店など)。完全に等しいセルだけを数えたいときは、* を付けません。ワイルドカードは半角で入力します。
4. 結果が 0 になるときの原因
条件の前後に見えないスペースがある(TRIM で除去)、数値が文字列として入っている、数値の列に "*" を使っている、などが原因です。COUNTIF は一致するセルがなくてもエラーにならず、0 を返します。
Excel と Google スプレッドシートの違い
Microsoft Excel (365 / Desktop)
Excel の COUNTIF・COUNTIFS は、別のシートも参照できます:=COUNTIF(Sheet2!B:B, "発送済み")。COUNTIFS は Excel 2007 以降で使えます。列全体の指定は便利ですが、データが多い表では、範囲を絞った指定より遅くなります。
Google スプレッドシート
Google スプレッドシートでも、書式とワイルドカードの規則は同じです。COUNTIFS も AND 条件です。グループごとの件数が必要なら QUERY 関数も使えますが、条件が1つの件数は COUNTIF が基本です。
このページの COUNTIF 練習問題
COUNTIF の練習問題
重複した注文番号は文字列の完全一致、合格人数は比較演算子を条件に含める練習です。
よくある質問
COUNTIF とは何ですか?
COUNTIF(カウントイフ)は、条件に合うセルの個数を数える Excel(エクセル)の関数です。書式は =COUNTIF(範囲, 検索条件) で、「状態が発送済みの行の数」「60 点以上の人数」といった集計に使います。
COUNTIF の使い方を教えてください。
=COUNTIF(B2:B6, "発送済み") のように、数えるセルの範囲(B2:B6)と、条件("発送済み")を指定します。文字列や、">=60" のような比較演算子は、ダブルクォーテーションで囲みます。数値だけの条件(60 など)は囲みません。
COUNTIF で複数条件を指定するにはどうしますか?
COUNTIFS 関数を使います。=COUNTIFS(A2:A5, "東京", B2:B5, "発送済み") のように、「範囲, 条件」の組を必要な数だけ並べます。すべての条件に当てはまる行だけが数えられます。「または」の条件は、COUNTIF を足し算するか、=SUM(COUNTIF(A2:A5, {"東京", "大阪"})) と書きます。
COUNTIF と COUNTIFS の違いは何ですか?
COUNTIF は条件を1つしか指定できませんが、COUNTIFS は2つ以上指定できます。SUMIFS と違って COUNTIFS には合計範囲がなく、すべての引数が「範囲, 条件」の組になります。
文字が入っているセルの数を数えるにはどうしますか?
=COUNTIF(A2:A10, "*") と書きます。* は任意の文字列に一致するので、文字列のセルだけが数えられ、数値と空白のセルは数えられません。1文字以上入っていることを条件にするなら "?*"、特定の語を含むセルなら "*りんご*" のように書きます。空白以外のセルすべてを数えるなら COUNTA を使います。
COUNTIF で重複を数えるにはどうしますか?
作業列に =COUNTIF($A$2:$A$11, A2) を入れて下にコピーすると、その行の値が何回出てくるかが分かります。2 以上が重複です。=COUNTIF($A$2:$A$11, A2)>1 を条件付き書式の数式に使えば、重複したセルに色を付けられます。
COUNTIF の結果が 0 になるのはなぜですか?
条件の文字列にダブルクォーテーションがない、数値が文字列として入っている、条件の前後に余分なスペースがある(TRIM 関数で除去できます)、ワイルドカードが全角になっている、のどれかであることが多いです。COUNTIF は一致するセルがなくてもエラーにならず、0 を返します。
Google スプレッドシートでも COUNTIF は使えますか?
使えます。書式と条件の書き方は Excel と同じです。COUNTIFS も同じように使えます。