COUNTIF関数の練習問題(全5問)
色のついたセルに数式を入力して Enter。範囲はドラッグでも選べます。
「合格」の人数を数える
B7 に、結果が「合格」の人数を数えてください。
ヒント 1
「=COUNTIF(範囲, 条件)」の形です。範囲は B2:B5。
ヒント 2
文字を条件にするときは " で囲みます。「=COUNTIF(B2:B5,"合格")」。
解説を見る
COUNTIF は範囲を1つずつ見て、条件に合ったものだけを数えます。「不合格」は「合格」と等しくないので数えません。文字の一致は完全一致で、部分一致にしたいときはワイルドカードを使います。
模範解答: =COUNTIF(B2:B5,"合格")
60点以上の人数を数える
B8 に、点数が60点以上の人数を数えてください。「欠席」の行がどう扱われるかも確かめてください。
ヒント 1
60以上は「>=60」と書きます。
ヒント 2
記号を含む条件は " で囲んで「">=60"」と渡します。
解説を見る
数えられたのは 80・60・92 の3人です。「欠席」は文字なので、数値の大小を条件にしたときは対象から外れます。Excel は数値と文字を別の種類として扱い、比べようとしないためです。全員分を数えたつもりで人数が足りないときは、この取りこぼしを疑ってください。
模範解答: =COUNTIF(B2:B6,">=60")
基準点をセルから読む
B9 に、B8 の基準点以上の人数を数えてください。B8 を書き換えたら人数も変わるようにします。
ヒント 1
「">=B8"」と書くと、B8 という「文字」と比べてしまい正しく数えられません。
ヒント 2
記号とセルを & でつなぎます。「=COUNTIF(B2:B6,">="&B8)」。
解説を見る
記号は " の中、セルは " の外に置き、& でつなぎます。B8 が 60 なら、つないだ結果は「>=60」という文字列になり、直接書いたときと同じものが渡ります。基準点を書き換えると人数も自動で変わります。
模範解答: =COUNTIF(B2:B6,">="&B8)
「田」で始まる名前を数える
B7 に、氏名が「田」で始まる人数を数えてください。
ヒント 1
* は「0文字以上の任意の文字」を表します。
ヒント 2
「田」で始まるものは「"田*"」と書きます。
解説を見る
「田*」は「田」で始まればあとは何文字でも一致します。「中田一郎」は途中に田があるだけなので数えません。含むかどうかで数えたいときは「*田*」、終わりで数えたいときは「*田」と書きます。
模範解答: =COUNTIF(A2:A6,"田*")
部署と点数の両方で絞る
B8 に、部署が「営業」かつ点数が60以上の人数を数えてください。
ヒント 1
条件が2つ以上のときは COUNTIFS を使います。
ヒント 2
範囲と条件を2つ1組で並べます。「=COUNTIFS(B2:B6,"営業",C2:C6,">=60")」。
解説を見る
COUNTIFS は、並べたすべての条件を満たす行だけを数えます。営業は4人いますが、そのうち60点以上は田中・鈴木・高橋の3人です。範囲の大きさは必ずそろえてください。ずれていると正しく数えられません。
模範解答: =COUNTIFS(B2:B6,"営業",C2:C6,">=60")
COUNTIF関数は、指定した範囲の中から条件に合うセルの個数だけを数える関数です。
- 書き方
=COUNTIF(範囲, 条件)- 例
=COUNTIF(B2:B6,">=60")
COUNTIF関数とは
COUNTIF(カウントイフ)関数は、条件に合うセルだけを数える関数です。
COUNT・COUNTA・COUNTBLANK は範囲の中を無条件に数えました。COUNTIF はそこに「ただし〇〇のものだけ」という絞り込みが付きます。
合格者は何人か、60点以上は何人か、営業部は何人か。表を作ったあとに必ず聞かれる「で、何件?」に答えるのがこの関数です。
2つの引数
=COUNTIF(範囲, 条件)
| 位置 | 意味 |
|---|---|
| 1つめ | 数える対象の範囲 |
| 2つめ | 数える条件 |
条件は「1つの値」として渡す
条件の書き方が何通りもあるように見えて、ここでつまずきます。しかしやっていることは1つで、条件という名前の値をひとつ渡しているだけです。
| 書きたいこと | 書き方 | 渡している値 |
|---|---|---|
| 60 と等しい | =COUNTIF(B2:B6,60) |
数値の 60 |
| 60 以上 | =COUNTIF(B2:B6,">=60") |
文字列の >=60 |
| 「合格」と等しい | =COUNTIF(B2:B6,"合格") |
文字列の 合格 |
>= のような記号を式にそのまま書くことはできません。そこで記号を含む条件は文字列にして渡し、COUNTIF が受け取ったあとで先頭の記号を読んで解釈します。
この仕組みが分かると、次のつまずきの理由も見えてきます。
つまずきポイント1: セルを条件にするときは & でつなぐ
「B8 に入れた基準点以上の人数を数えたい」という場面はよくあります。ここで多くの人が次のように書きます。
=COUNTIF(B2:B6,">=B8") ← 間違い
これは動きますが、答えが合いません。条件として渡っているのは >=B8 という文字列であり、Excel は「B8 という文字より大きいもの」を探してしまいます。セルを見に行ってくれません。
正しくは、記号とセルの値をつないで1つの文字列を作ります。
=COUNTIF(B2:B6,">="&B8) ← 正しい
& は左右の値をつなぐ記号です。B8 が 60 なら、つないだ結果は >=60 という文字列になり、直接書いたときと同じものが渡ります。
記号は " の中、セルは " の外。 これを境目として覚えると迷いません。
なお、条件が記号を含まない場合は & は不要です。「B8 と等しいものを数える」なら =COUNTIF(A2:A6,B8) とセルをそのまま書けます。
つまずきポイント2: 数値の条件に文字は数えられない
点数の列に「欠席」「未提出」といった文字が混ざることがあります。このとき ">=60" で数えると、文字のセルは数に入りません。
80 / 55 / 60 / 92 / 欠席
=COUNTIF(B2:B6,">=60") → 3
Excel は大小を比べるとき、数値と文字を別の種類として扱い、そもそも比べようとしないためです。「欠席」が 60 より大きいか小さいかは判定されず、対象から外れます。
これは多くの場合ありがたい動きです。しかし「全員分を数えたつもりが、実は欠席者が抜けていた」という取りこぼしにはなります。人数が合わないときは、COUNTA との差を見ると原因が分かります。
=COUNTA(B2:B6)-COUNT(B2:B6) → 数値でないセルの個数
ワイルドカード — 部分一致で数える
* と ? を使うと、一部だけ一致するものを数えられます。
| 記号 | 意味 | 例 |
|---|---|---|
* |
0文字以上の任意の文字 | "田*" → 田中、田村、田 |
? |
ちょうど1文字 | "田?" → 田中、田村(田口も)。「田」1文字は含まない |
=COUNTIF(A2:A6,"田*") 「田」で始まる名前を数える
=COUNTIF(A2:A6,"*中") 「中」で終わる名前を数える
=COUNTIF(A2:A6,"*田*") 「田」を含む名前を数える
* は文字を対象にした記号です。数値の列に使っても意図した結果になりません。
大文字と小文字は区別しない
"apple" と書いても "APPLE" と書いても、両方が数えられます。区別して数えたい場合、COUNTIF では対応できません。
COUNTIFS — 条件を複数にする
条件を2つ以上にしたいときは COUNTIFS を使います。名前の最後に S が付くだけで、考え方は同じです。
=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, ...)
引数は範囲と条件をセットで並べます。順番を間違えやすいので、必ず2つ1組で読んでください。
=COUNTIFS(B2:B6,"営業",C2:C6,">=60")
これは「部署が営業かつ点数が60以上」の人数です。すべての条件を満たす行だけが数えられます。
範囲の大きさはそろえてください。 1つめが5行なら2つめも5行です。ずれていると正しく数えられません。
なお、条件が1つでも COUNTIFS は使えます。書き方を1つに統一したい場合は、最初から COUNTIFS だけ覚えるのも手です。
関連する関数
| 関数 | 用途 |
|---|---|
COUNT / COUNTA |
条件なしで数える。COUNTIF の出発点 |
COUNTIFS |
条件を複数にする |
SUMIF / SUMIFS |
条件に合うものを合計する。引数の並びは COUNTIF と少し違う |
IF |
1つのセルについて条件で表示を変える |
次に進むには
条件に合うものを「数える」ことができたら、次は条件に合うものを合計する SUMIF に進むと、売上表や集計表がぐっと扱いやすくなります。考え方は同じで、引数の並びだけが違います。