エクセルで『同じ文字列か?』の判定を正確にする方法

エクセルで『同じ文字列か?』の判定を正確にする方法 判定

エクセルで『2つの文字列が同じものであるかどうか』の判定は簡単にできます。

最も簡単なのが、比較演算子である=(イコール)を使う方法。

『=文字列1のアドレス=文字列2のアドレス』と書けば、一致している場合は『TRUE』の結果が返り、一致してなければ『FALSE』の結果が返ってくるので、簡単に同じかどうかがわかります。

でも、この比較演算子での判定は、『正確に文字列が一致しているか』という判定にはならないんですよね。

今回は、正確に文字列を比較するEXACT関数による判定方法を紹介します。

特にアルファベットが含まれる文字列を比較しないといけない場合は、EXACT関数を使うべきです。

ぜひ参考にしてください!

比較演算子『=』で簡単に文字列比較できるが正確ではない

さきほど書いたように、比較演算子による比較は正確ではなく、実は『大文字/小文字』は比較しません。

比較演算子による文字列比較の書式

=比較文字列のセルアドレス(B3など)=比較文字列のセルアドレス(C3など)

 

下のエクセルでは比較演算子を使って文字列を比較していますが、3番めの『abc』と『ABC』の比較結果がTRUE(一致している)になってます。

比較演算子『=』だけで簡単に文字列比較できるが正確ではない

つまり、大文字と小文字の違いがあっても同じ文字列であるという判定になっているわけです。

比較したい文字列が日本語(全角、ひらがな、カタカナ)しかないのであれば、この比較演算子で十分な判定はできます。

でも、アルファベットが混じっている文字列比較の場合は、比較演算子を使うのではなく、次で紹介するEXACT関数を使うべきです。

EXACT関数は大文字/小文字も区別して文字列比較する

大文字と小文字を正確に区別するEXACT関数の使い方です。

といっても、比較演算子の比較と同じで2つの文字列アドレスを指定するだけです。

EXACT関数の書式

=EXACT(比較文字列のセルアドレス(B3など), 比較文字列のセルアドレス(C3など))

これでEXACT関数が文字列を比較し、一致していればTRUEを、一致していなければFALSEを返します。

実際にEXACT関数を書いて、さきほどの比較演算子の判定結果と並べてみました。

EXACT関数は大文字/小文字も区別して文字列比較する

判定結果を見ると一目瞭然ですが、3番めの大文字と小文字の比較では、比較演算子が一致している(TRUE)という結果です。

これにたいして、EXACT関数は一致していない(FALSE)という結果になっていて、きちんと大文字と小文字の違いを判定していることがわかります。

正確に判定するEXACT関数でも一致しない場合がある

EXACT関数を使っていれば、正確な文字列一致の判定はできますが、中には見た目が全く同じ文字列なのに、『一致していない』という結果になることもあります。

次のエクセルでは、最初の比較文字列はどちらも『abc』であるように見えますが、EXACT関数の結果は『一致していない(FALSE)』となっています。

正確に判定するEXACT関数でも一致しない場合がある

これは、2番目の文字列『abc』の後ろにスペースが入力されていることが原因です。

スペースは見えない文字なので、あたかも同じ文字列であるように見えます。

文字列の前後にスペースが入力されている可能性がある場合は、前後のスペースを削除するTRIM関数の処理結果を使ってEXACT関数による判定をさせればOKです。

文字列のアドレスがB3とC3である場合の例です。

=EXACT(TRIM(B3), TRIM(C3))

エクセルで『同じ文字列か?』の判定を正確にする方法のまとめ

まとめ

  • アルファベットが混じっていない文字列の比較であれば、比較演算子(=)の比較で十分に判定できる。
  • 大文字/小文字の違いも正確に判定したい場合は、EXACT関数を使う。

アルファベットが混じっていない2つの文字列を比較する場合は、比較演算子で十分です。

ただし、大量に文字列比較したい場合は、文字列にアルファベットが混じっているかどうかを事前にチェックすることは無駄な作業となります。

なので、比較する文字列が多い場合は、正確に文字列一致の判定をするEXACT関数の利用をおすすめします。

タイトルとURLをコピーしました