エクセルで『2つの文字列が同じものであるかどうか』の判定は簡単にできます。
最も簡単なのが、比較演算子である=(イコール)を使う方法。
そして、大文字/小文字まで区別して比較できるEXACT関数を使う方法。
- 比較演算子を使った文字列の比較。
- EXACT関数を使った文字列の比較。
今回は、正確に文字列を比較するEXACT関数による判定方法を紹介します。
特にアルファベットが含まれる文字列を比較しないといけない場合は、EXACT関数を使うべきです。
ぜひ参考にしてください!
比較演算子『=』による文字列比較は大文字/小文字を区別しない
さきほど書いたように、比較演算子による比較は正確ではなく、実は『大文字/小文字』は比較しません。
比較演算子による文字列を比較する式は以下のように書きます。
=比較文字列のセルアドレス(B3など)=比較文字列のセルアドレス(C3など)
下のエクセルでは比較演算子を使って文字列を比較していますが、3番めの『abc』と『ABC』の比較結果がTRUE(一致している)になってます。
つまり、大文字と小文字の違いがあっても同じ文字列であるという判定になっているわけです。
比較したい文字列が日本語(全角、ひらがな、カタカナ)しかないのであれば、この比較演算子で十分な判定はできます。
ただし、英文字のように大文字/小文字がある文字列を比較する場合は、比較演算子を使うのではなく、次で紹介するEXACT関数を使うべきです。
EXACT関数の文字列比較は大文字/小文字も区別する
大文字と小文字を正確に区別するEXACT関数の使い方です。
といっても、比較演算子の比較と同じで2つの文字列アドレスを指定するだけです。
=EXACT(比較文字列のセルアドレス(B3など), 比較文字列のセルアドレス(C3など))
これでEXACT関数が文字列を比較し、一致していればTRUEを、一致していなければFALSEを返します。
実際にEXACT関数を書いて、さきほどの比較演算子の判定結果と並べてみました。
判定結果を見ると一目瞭然ですが、3番めの大文字と小文字の比較では、比較演算子が一致している(TRUE)という結果です。
これにたいして、EXACT関数は一致していない(FALSE)という結果になっていて、きちんと大文字と小文字の違いを判定していることがわかります。
スペースが含まれている場合のEXACT関数を使った文字列比較
EXACT関数を使っていれば、正確な文字列一致の判定はできますが、中には見た目が全く同じ文字列なのに、『一致していない』という結果になることもあります。
次のエクセルでは、最初の比較文字列はどちらも『abc』であるように見えますが、EXACT関数の結果は『一致していない(FALSE)』となっています。
これは、2番目の文字列『abc』の後ろにスペースが入力されていることが原因です。
スペースは見えない文字なので、あたかも同じ文字列であるように見えます。
文字列の前後にスペースが入力されている可能性がある場合は、前後のスペースを削除するTRIM関数の処理結果を使ってEXACT関数による判定をさせればOKです。
文字列のアドレスがB3とC3である場合の例です。
=EXACT(TRIM(B3), TRIM(C3))