Excelで比較は=(イコール)よりExact関数を使う癖をつけたほうがいいよという記事です
Excelに慣れている人にとっては当たり前だと言われそうなんですけど、いまだにやる人がいるので。
現象:exact関数を使わないと何が起こるのか
「百聞は1件に如かず」ということで、何が起こるかまず紹介します。
以下のように値1と値2を比較して、E列とF列に出力するExcelシートを考えます。
- E列は=(equal)で比較します。
- F列はexact関数で比較します。
- 想定はD列の通りになるはずです。
シートの内容の比較とかでよくやる比較ですね。
こうしてみるとイコール記号のほうが見やすいですね。
しかし関数の実行結果は以下の通り、exact関数のほうが正確です。
何でこんなことが起こるの?
Excelで=(equal記号)を使用した場合は、大文字小文字を厳密に比較しないためです。
絶対に数値しか扱わないよというケース以外は、exact関数を使ったほうが無難です。
exact関数とイコールの比較
簡単に一覧化してみました。
文字列1と文字列2は、全半角、大文字小文字以外は同じとします。
文字列1 | 文字列2 | =(equal記号) | exact関数 | 結果 |
---|---|---|---|---|
数字(全角) | 数字(半角) | True | True | 問題なし |
英文字(大文字) | 英文字(小文字) | True | False | exact関数が正しい |
英文字(全角) | 英文字(半角) | False | False | 問題なし |
カタカナ(半角) | カタカナ(全角) | False | False | 問題なし |
以上です。
コメント