Excel忘備録:""は20より大きい?
仕事中に発見したので自分用メモとして置いておく。
エクセルで測定結果を整理しているとき、SUMIFSやCOUNTIFSで条件を指定して足したりカウントしたりを良くするものだ。
しかし、測定結果をよくよく見てみると、空欄に見えていたものは半角スペースであることがわかったのだ。これは条件式で判定したとき、どう処理されるのだろう?
比較演算で20より小さいか?をIF式で判定すると、数字はまぁいいとして空欄とか文字列とかはどうなるのか、が気になって調べた。
IF文でB列に入っているモノが<20を満たすかどうかを判定すると…
半角スペースや文字列は「20より小さい」を満たさないのはいいとして、空欄は満たすのに、返り値としての""は満たさないのはやや納得がいかない…というか取り扱い注意だ。
条件式の返り値を空欄にするために""にすることはよくやるが、そこが含まれる場所をさらに比較演算で使うときに、思わぬ処理をされることがありそう。
じゃあ""は20より大きいってのかよ!と聞いてみるとそのとおりだと言う。納得し難い。文字列はどんな数字よりも大きいという判定なのだろうか。
半角スペースも文字列扱い、考えてみればそりゃそうだ。
数値に混じってエラー等でログに半角スペースを吐くのは止めた方がいいことがわかる。打撃試験機、お前のことだぞ。
しかも、フィルター機能では空欄と半角スペースは同じものだとみなされているらしい。危険すぎる。
エラーであることを明示するならバー(-)などを出力してほしい。