セミナーのときに、
「2 つのセルのデータが同じかどうかを簡単に確認するにはどうしたらよいですか?」と
質問をいただきました。
2 つのセルには文字列が入力されているようです。
計算式を使って処理をし、その戻り値 (計算結果) で判断をするのがよいと思うので、
EXACT 関数を使う方法と「=」を使う方法の 2 種類をご案内しました。
数式が短くて簡単なのは、比較したい 2 つのセルのデータがイコールなのかを
「=」で判断することです。
下図の場合、セル E9 には「=B9=C9」という数式が入力されていて、
メールアドレス 1 と 2 が同じなら「TRUE」、異なれば「FALSE」という結果が
表示されます。
しかし、B9 と C9 のメールアドレスをよく見ると、先頭の文字に違いがあります。
メールアドレス 1 は先頭の文字が小文字、メールアドレス 2 は大文字です。
そうです。
「=」の計算結果の場合、アルファベットの大文字と小文字は区別されないのです。
一方、EXACT 関数を使うとどうでしょう。
EXACT 関数は、2 つの文字列を比較し、その結果を返してくれる関数です。特徴は、
アルファベットの大文字と小文字が区別されることです。
「=EXACT(文字列1,文字列2)」というように、比較したい 2 つの文字列やその文字列が
入力されているセル番地を指定します。
下図の場合、セル D9 には「=EXACT(B9,C9)」という数式が入力されていて、
メールアドレス 1 と 2 が同じなら「TRUE」、異なれば「FALSE」という結果が表示されます。
B9 と C9 のメールアドレスの比較結果を見ると、「FALSE」となっています。
2 つのメールアドレスの先頭の文字の違いが結果に表れたということですね。
2 つの文字列を比較したとき、どうみても同じに見えるのに結果は「FALSE」ということが
あるかもしれません。
下図のセル B10 と C10 のメールアドレスは大文字/小文字も含めて、
まったく同じに見えるのですが、EXACT 関数でも「=」を使った数式でも
答えは「FALSE」です。なぜでしょう?
そんなときのチェック ポイントは、、、
「余計なスペースが入っていませんか?」
です。
下図の例では、セル C10 のメールアドレスの末尾にだけ半角スペースが入っており、
セル B10 にはこの半角スペースがありません。
これによって一致しないとみなされ、「FALSE」となるのです。
末尾の不要なスペースは TRIM 関数を使うと削除できます。
ここでは紹介しませんが、複数のセルに含まれる不要なスペースをまとめて削除したい場合に
使えますよ。
IF 関数を使って結果をわかりやすく表示しましょう。
たとえば、一致しているかどうかの結果が「TRUE」だったら「一致」、
そうでなかったら (「FALSE」だったら) 「不一致」のようにわかりやすい表示にすると
よいですよ。
IF 関数と EXACT 関数を組み合わせるのなら、
「=IF(EXACT(文字列1,文字列2),"一致","不一致")」という数式を作ればよいですね。
IF 関数と 「=」での処理を組み合わせるのなら、
「=IF(=文字列1=文字列2,"一致","不一致")」という数式を作ります。
2 つの文字列データを比較し、その結果を確認する方法をご紹介しました。
お使いくださいませ
私は、関数を使ったほうがスムーズなら使えばよいけれど、
使わなくていいなら使わないほうがいい、と思っているのです。
今回の例でいえば、「=」ですむならそのほうがいいけど、
アルファベットの大文字と小文字を区別しなきゃいけないなら EXACT 関数を使います。
自分がどうしたいかによって適した方法を選びたいですね。
石田かのこ