COUNTA関数で一見空白なのにカウントされてしまう。長さ0の文字列の罠!
人にエクセルを教える時に、数式中の""は空白だと説明しています。
実際には長さ0の文字列というのが正確なのですが、厳密な説明をしても???となっていまうだけなので、あえて空白だと言っていますが、COUNTA関数を使う時、この違いを正確に理解していないと、ドツボにはまってしまう事があるので注意して下さい。
COUNTA関数で空白が正しくカウントされない?その原因は?
COUNTA関数を使って、空白以外のセル個数を数えようとしても、下図のように、見た目は空白なのに、COUNTA関数で正しい(と思う)値が返ってこない場合があります。
あまり厳密な話をすると面倒臭く思われるので、人にエクセルを教える時には、数式中の""は空白だと説明していますが、厳密には長さ0の文字列なのです。IF関数でセルが空白かどうか判定する際には "" で良いのに、やっかいですね。
数式で長さ0の文字列を返している場合、見た目は空白でも、COUNTA関数では空白では無いと判定されます。
こちらは、数式バーにも何も表示されていませんが、長さ0の文字列をコピーしたため、こちらもCOUNTA関数では空白ではないと判定されてしまいます。
また、ゼロを非表示にしたものも、見た目は空白ですがセルの値は空白ではありませんのでCOUNTA関数を使う時に、つまづかなようにしましょう。
対応方法は?
- まず数式ではなく値のみに変換する。(形式を選択して貼り付けで値に)
- 長さ0の文字列をDELETEキーで消す
という事を行って下さい。動画の方も参照いただければ幸いです。
どうしても数式を値に変換できないのであれば、COUNTIF関数など別の方法を使ってカウントするようにします。
エクセルで時間をムダにしないためにも、は見た目とセルの値の違いを意識できるようなりましょう。