この記事では、エクセルでCOUNTIF関数(COUNTIFS関数)を使用した際に、正しくカウントされない場合の原因と解決策について解説していきます。
原因として、以下の状況が考えられます。
COUNTIFS関数でエラーになる場合も、基本的にはCOUNTIF関数と同じ原因であることが多いです。
今回はこれらの対処法をいくつか紹介します。
目次
検索条件に「文字列」や「日付」を入力する方法に誤りがある場合
COUNTIF関数で正しくカウントされない(できない)原因は、検索条件の入力方法が誤っている場合がほとんどです。
まずはCOUNTIF関数の使用方法を確認しましょう。
=COUNTIF(範囲,検索条件) |
「範囲」には検索したい範囲を、「検索条件」にはカウントしたい条件を記載します。
まずは正しい計算式を紹介します。
例えば上記の表の中から「唐揚げ定食」を検索する場合、D4セルにこのように入力します。
「範囲」の指定の際、基本的には絶対参照にしておくことをオススメします。
絶対参照にするには、上記のように固定したいセルに「$」を付けます。F4キーを押すと自動的に入力されます。
このように、結果はきちんと「3」と表示されました。
この際に間違えやすいのが、「検索条件」の入力方法です。
=COUNTIF($B$2:$B$13,唐揚げ定食) |
上記のように、検索条件に文字列を指定する際に「“”」(ダブルクォーテーション)で囲うのを忘れがちです。
ダブルクォーテーションを忘れると、結果は「0」になりました。
特にややこしいのは、検索条件に「日付」を指定する場合です。
上記の表の中に4/9のデータがあるかどうかカウントしてみましょう。
検索範囲をA列に変更し、検索条件には表の表記通り「2023/4/9」と指定してみます。
しかし結果は「0」になりました。
なぜかと言うと、実際には「2023/4/9」と入っているように見えるデータも、実際は下記のような数字のデータとして保存されているからです。
4/9の「セルの書式設定」を「標準」に変更してみると、5桁の数字で保存されていることがわかります。
また、「””」で囲わずに「2023/4/9」を入力した場合、「2023÷4÷9」と解釈されてしまいます。
検索条件に日付を指定する場合も「“”」(ダブルクォーテーション)で囲う必要があります。
=COUNTIF($A$2:$A$13,”2023/4/9″) |
D4セルの式をこのように変更すると、結果はきちんと「1」になりました。
以上、COUNTIF関数(COUNTIFS関数)で正しくカウントされない場合の原因として、「文字列」や「日付」を入力する方法に誤りがある場合を紹介しました。
検索条件を「セル参照」にする方法に誤りがある場合
検索条件を直接入力する方法は、上記のように間違えが起こりやすいです。
そのため、COUNTIF関数を使用する際の検索条件は、セルを参照する形にすることをオススメします。
しかしこの「セル参照」も、入力方法を誤ってしまうと正しい結果が表示されなくなってしまいます。
実際の例を見てみましょう。
先程の表を編集して、各定食が何回ずつ登場したかを表にしてみます。
やり方は先程と同様です。
検索条件に「唐揚げ定食」と直接入力していたところを、セル番地を参照する形にします。
しかし、結果は0になりました。
先程とは逆で、セル参照をする際には「””」(ダブルクォーテーション)で囲う必要はありません。
=COUNTIF($B$2:$B$13,D3) |
「“”」で囲わずにセル番地を入力したところ、結果はきちんと「3」と表示されました。
以上、COUNTIF関数(COUNTIFS関数)で正しくカウントされない場合の原因として、「セル参照」にする方法に誤りがある場合を紹介しました。
比較演算子の使い方に誤りがある場合
今度は、メニューを価格によって絞り込んでみます。
定食それぞれの価格を、日替わりの表に反映したものです。
この中から「450円以上」のメニューが何回登場するかを計算してみます。
J3セルに入力する式を考えてみましょう。
~以上や~以下などの条件式には、「比較演算子」を使用します。
例えば比較演算子を用いて「450以上の数字」を表す式は、「>=450」となります。
これが「450以下の数字」の場合は「<=450」です。
「450である」場合は「=450」、「450ではない」場合は「<>450」です。
また、「以上」ではなく「450よりも上」なら「>450」です(450は含まず、451以上のみカウントする場合など)。
この比較演算子の書き方自体を間違えてしまうことも多いです。
「<=450」を「=<450」としてしまったり、「450<=」としてしまったりする例が挙げられます。
上記の表はH列のセルに価格の数値だけを入力しているため、数字を直接入力するのではなく、セル参照で比較演算子を使用してみましょう。
数字の場合「>=450」でしたが、セル参照の場合は「>=H3」と指定します。
この比較演算子の四季を、COUNTIF関数の「検索条件」に指定してみましょう。
「範囲」にはF列の価格を指定します。
しかし、エラーになってしまいました。
これは、「“”」(ダブルクォーテーション)が入力されていないせいです。
先程説明したように、セル番地には「””」を付けません。
かといって、式全体を「””」で囲ってもいけません。
「“>=H3“」と指定すると、結果が0になってしまいました。
正しい指定方法は、以下の通りです
=COUNTIF($F$2:$F$13, “>=”&H3) |
「>=」のみを「“”」で囲み、セル番地は「&」で繋げます。
これで、正しく3とカウントされました。
ちなみにこれをセル参照ではなく直接入力で指定した場合は、「””」が必要になります。
以上、COUNTIF関数(COUNTIFS関数)で正しくカウントされない場合の原因として、比較演算子の使い方に誤りがある場合を紹介しました。
全角と半角が一致していない場合
デジタルデータ上の文字には、全角と半角の2種類があります。
例えばアルファベットのAの場合、全角は「A」、半角は「A」です。数字の1なら全角は「1」、半角は「1」です。「カタカナ」や「カタカナ」なども、見れば違いがわかると思います。
ひらがなや漢字は全角です。
英数字とカタカナには全角と半角がありますが、主に使用されるのは英数字が半角で、カタカナは全角です。
この通りに使い分けするよう心がければ正しくカウントされるはずですので、使い分けは必ず意識しましょう。
今までの表の定食を、「A定食」という形でアルファベット表記にしてみます。
違いがかなりわかりにくいと思いますが、検索条件に指定しているH3セルの「A」は全角です。
表のアルファベットは全て半角のため、結果が0になってしまいました。
これを半角に直せば、正しくカウントされます。
ちなみに大文字と小文字は区別されません。
検索条件を「a定食」としても、カウントされました。
以上、COUNTIF関数(COUNTIFS関数)で正しくカウントされない場合の原因として、全角と半角が一致していない場合を紹介しました。
その他の原因
これまでの原因でも解決しない場合、単純なミスをしている可能性があります。
ここではそれらを一気に解説します。
例えば「○(まる)」と「〇(ゼロ)」など、似ているようで違う文字を比較している可能性が挙げられます。
また、名前などのデータを検索する場合、氏名の間にスペースが入っているか否かも確認しましょう。
検索したい文字は表の中からコピペをすると安心です。
範囲の指定の際に絶対参照にするのを忘れて、範囲がずれている可能性が挙げられます。
範囲の指定の際は、F4キーを押して絶対参照にするよう心がけましょう。
「文字列」「数値」などの、セルの書式設定が違っている可能性も考えられます。
表の中のデータは文字列なのに、比較演算子で数値と比較している場合、正しく計算されない可能性があります。
結合してあるセルの内の最初のセルにしかデータがないことになってしまい、正しくカウントされません。
セルの結合は印刷を想定したデータなど「見た目を整える」ことを重視した表の場合は便利ですが、関数を使用する機会が多いようなデータには極力使わないようにすることをオススメします。
以上、COUNTIF関数(COUNTIFS関数)で正しくカウントされない場合のその他の原因をまとめて紹介しました。
COUNTIFS関数の場合
COUNTIFS関数の数式は、以下になります。
COUNTIF関数で指定できる条件が1つなのに対し、COUNTIFS関数は複数の条件を指定でき、それらの条件を全て満たしている場合のセルの個数が表示されます。
基本的な使い方はCOUNTIF関数と同じです。そのため、正しくカウントされない原因も同じである可能性が高いです。
しかし、COUNTIFS関数の方がCOUNTIF関数よりも条件が増えるため、入力のミスも起こりやすいです。
ダイアログボックスなどを使用して、間違いがないか確認しながら入力しましょう。
特に起こりやすいのが、範囲で指定しているセル番地がずれている場合のエラーです。
例えば今までの表から、4/7~4/9のデータの個数をカウントするとします。
正解は目でも確認できますが、3個です。
どのような式になるか、わかりますか?
正解の条件式は、以下の通りです。
「4/7以上(以降)」かつ「4/9以下(以前)」という検索条件です。
これまでの復習になりますが、「比較演算子は””で囲む」「日付は””で囲む」という法則に倣い、「“>=4/7”」「“<=4/9”」と両方を囲んでいます。
正しく3とカウントされました。
この「範囲で指定しているセル番地」が各条件で異なると、正しくカウントされません。
上記は、範囲1は13行目までを指定しているにもかかわらず、範囲2は7行目までしか指定できていません。
7行目までの間に4/7~4/9が入っていますが、条件ごとに範囲で指定している行が異なっているとエラーになります。
行が異なるとエラーが出ますが、列は違う列を指定できます。
上記は、4/7以降かつコロッケ定食の場合のデータの数です。
ただし、列が違う場合も行の範囲が異なっているとエラーになります(D列は2~13行目を指定しているのにE列は2~6行目しか指定していない等の場合はエラーです)。
また、COUNTIFS関数は「AND 条件」で判定をするため、全ての条件に合致する場合のみカウントします。
もしこれを「OR条件」で判定したい場合も同様の式にしてしまうと、当然違う結果が出てしまいます。
OR条件にしたい場合は下記のように、関数の式同士を足し算にすればOKです。
=COUNTIF(範囲1,検索条件1)+COUNTIF(範囲2,検索条件2) |
以上、COUNTIFS関数で正しくカウントされない場合の原因と注意点を紹介しました。
まとめ
この記事では、エクセルでCOUNTIF関数(COUNTIFS関数)を使用した際に、正しくカウントされない場合の原因と解決策について解説しました。
今回のポイントは「“”」(ダブルクォーテーション)の使い方でした。
COUNTIF関数(COUNTIFS関数)以外でも使用する機会が多い「””」や比較演算子の使い方は、しっかり抑えておきましょう。