エクセルでデータの突き合わせ
エクセルを使っているとデータの加工だけではなく、同一かどうかの突き合わせをしたいことが出てきます。その2通りのやり方と結果の違いを解説をします。
下の例で、すべてが一致しているかどうかを突き合わせしてみます。
このテストデータには、A列に1が連続しており、B列にはl(小文字のL)が混ざっています。このA列とB列の一致度合いを突き合わせします。
突き合わせ方法
=を使う
=IF(A1=B1,"","!!!")
C1セルのこのように入力し、C10までオートフィルさせます。次に紹介するexactとは検出できるものが少し異なります。それについては注意点を参照ください
- A1=B1がTRUEかRALSEかを判断
- TRUEの時は”” (何も表示しない)
- FALSEのときは”!!!” (!!! と表示)
私は個人的に、このような表示(空白か!!!か)にしていますが、もちろん異なる自分好みのどんな表示でもOKです。
exact関数を使う
=ではなくexact関数を使っても同じことができます。ただし検出する挙動が少し変わります。詳細は注意点で紹介します。
=IF(EXACT(A1,B1),"","!!!")
exact関数自体は、TRUE(一致)またはFALSE(不一致)を返す関数です。これだと「TRUEの中に潜むFALSEを探す」という新たなミッションが課せられてしまいます(笑)。そこで私は、前述の=にしろexactにしろ、ifと併せて使います。
「一致しているなら問題ないので何も表示しない。不一致だけを表示する」という訳です。
注意点
=を使った突き合わせと、exactを使った突き合わせでは結果が異なる場合があるので注意が必要です。C2セルには、数値の5にするために ‘5 と入力しました。
!マークがついており、文字列になっていることが分かります。これを突き合わせすると、それぞれ結果はどうなるでしょうか。
こうなりました。
- 数値と文字列の比較
=では検出しましたが、exactでは検出していません - 大文字と小文字の比較
=では検出していませんが、exectでは検出しています
この特性の違いに注意をして使う必要があることが分かります。
まとめ
突き合わせをするには=を使う方法とexactを使う方法があります。
- =での突き合わせ
数値と文字列の違いを検出できます。大文字小文字の違いの検出はできません。 - exactでの突合せ
数値と文字列の違いは検出できません。大文字小文字の違いは検出することができます。
脱初心者のために
データ型チェックとして使う
=とexactは、場面によって使い分ける必要があることが分かりました。逆に言えば、異なる観点のチェックに使えるというべきでしょう。いわばデータ型チェックです。
- そもそも数値と文字列が混在していること自体がおかしいのなら、=で、そのチェックをする
- 大文字と小文字が混在していること自体がおかしいなら、exactでそのチェックをする
データ型チェックをした上で突き合わせをすれば、どちらで突き合わせ方法も同じくらい有効と言えます。
コメント