COUNTIF関数で「以上」「以下」を指定する

2020年4月9日

COUNTIF関数で特定の数値以上(あるいは以下)のセル数をカウントする方法を紹介します。「名簿から、レベル3以上の人は〇〇人」とカウントするような場合は本記事を参考にしてください。

本記事では、COUNTIF関数の基本的な作り方省略します。COUNTIF関数の基礎から学びたいという方は『COUNTIF関数の使い方』をご参照ください。

COUNTIF関数の検索条件に不等号をそのまま入れると…

エラーになる

「一定の値以上、あるいは以下のセル数をカウントしよう」として、COUNTIF関数の検索条件にそのまま不等式・等式を入力すると、エラーが発生します。

例えば、下記のような名簿とレベルの表から、「レベル3以上の人数を数えようとした場合」で考えてみましょう。

COUNTIFに続いて検索範囲「B2:B11」、そして条件となる「>=3」を入力すると、「トゥルーン」というWindowsがユーザーを小馬鹿にする際の効果音が鳴り、この通りエラーが表示されます。

COUNTIF関数で、検索条件の箇所に不等式・等式をそのまま記入するのは間違いなのです。

間違った記載例

=COUNTIF(B2:B11,>=3)

原因は「仕様です!」

IF関数であれば、「IF(B2>=3,真,偽)」のように、不等号・等号を論理式(条件)に使用できます。

しかし、COUNTIF関数を使う際に、「間違った記載例」のように不等号・等号を用いた式を作ってしまうと、エラーとなって関数を処理してくれません。

こうなる原因は、「COUNTIF関数は、検索条件に生の不等式・等式を入れても認識できないから」です。

ただ、そうすると「じゃあ、なぜIF関数は認識できるのか? IF関数と同じように、検索範囲のセルを1つ1つ判定していけばいいじゃないか!」と思われるかもしれません。その意見自体は仰る通りです。技術的には十分可能だと思います。

では、なぜそうなっていないのか。

これ、明確な答えはありません。「作った人が、そういう風に作ったから」としか言えず、「仕様です」としか言えないのです。

解決策は『"』で囲う

ここからは、上記した問題の解決策を紹介します。

実はこの解決策は予想外に簡単です。なんと、不等式・等式を「"」ダブルコーテーションで囲うだけです。

実際にやってみましょう。

さきほどの数式の検索条件部「>=3」を「"」で囲んで「">=3″」としました。この状態でエンターキーを押します。

エラーは発生せずに計算が実行されました。人数も正しくカウントされています。

このように、COUNTIF関数にて、検索条件で不等式・等式を用いる場合は「"」で囲うと、不等式や等式として認識され、その条件に合致するセルが数えられます。

式サンプル

=COUNTIF(B2:B11,">=3″)

以上以下の同時使用はCOUNTIFS関数を使用する

「"」で囲うことで、不等式や等式が認識されるのは、複数条件のCOUNTIFS関数も同様です。

複数条件で「以上」と「以下」を併記することで、「1以上3以下」といった特定数値範囲内の数をカウントできます。

※COUNTIFS関数の基本的な作り方については、こちらの「COUNTIFS関数の作り方」を参考にしてください。

今回は、先ほどと同じ名簿を使って、レベル1以上3以下の人数を数えてみましょう

上記のように、「=COUNTIFS(」に続けて、検索範囲1と検索条件1、検索範囲2と検索条件2を記述していきます。

検索範囲はB列で変わりませんので、範囲1も範囲2も、「B2:B11」です。検索条件にはそれぞれ、1以上を表す「">=1″」と、3以下を表す「"<=3″」と記入します。ダブルコーテーションを忘れないように。

ここまで入力できたなら、丸括弧を閉じて、エンターキーを押して完成です。

人数が正しく表示されました!

式サンプル

=COUNTIFS(B2:B11,">=1″,B2:B11,"<=3″)

特定の数値以上・以下のセルをカウントする方法は以上です。

全生徒成績表などで、「60点以上70点未満は何人だ?」みたいな場面でも使える技ですから、覚えておくと便利です。