Excelでテキストを比較する方法:8つのシンプルで効果的なテクニック

📅
🕑 1 分で読む

住所、顧客名、製品コードが数百または数千件も記載されている巨大な Excel シートがある場合、重複したテキストや一致するテキストを手動で探すのは、頭痛の種になるだけです。行数が数千行であっても、すべてを目視するだけでは気が狂いそうです。そこでこれらのテクニックが役に立ち、Excel に面倒な作業を任せることができます。条件付き書式などの数式や、VLOOKUPEXACTなどの関数を使用すると、重複を見つけたり、大文字と小文字を区別してテキストを比較したり、部分一致を見つけたりすることができます。目標は、レポートや分析で一貫性が本当に重要である場合に特に、乱雑なデータをより速く、より確実にクリーンアップすることです。ただし、データが完全に構造化されていない場合は一部の方法ではすべてを検出できない可能性があるため、多少の試行錯誤が必要になる場合があります。

Excel でよくあるテキスト比較の問題を修正する方法

Excelで等号演算子を使ってテキストを比較する

これは、大文字と小文字を区別せずに2つのセルが同じかどうかをチェックする最もシンプルで、少し手間のかかる方法です。文字列が同一かどうかを素早く「はい/いいえ」で確認したい場合は、以下のコードを新しい列にコピーしてください。

=A2=B2

両方のセルが完全に一致する場合(大文字と小文字は区別されません)、TRUEを返します。一致しない場合はFALSE を返します。注文リスト、顧客リスト、在庫データなど、不一致のエントリを素早く検出するのに最適です。ただし、設定によっては、スペースや隠し文字が含まれている場合、精度が十分ではない場合があるので、事前にデータをクリーンアップする必要があるかもしれません。

大文字と小文字を区別する比較には EXACT 関数を使用する

2つのテキストが同じかどうかを知るだけでは不十分な場合があります。特に、大文字と小文字が区別される文字列(パスワードやコードなど)の場合です。そんな時に役立つのがEXACT関数です。この関数は、2つのテキストが大文字と小文字を含めて*完全に*一致するかどうかを教えてくれます。

=EXACT(B2, C2)

異なるシート間で比較を行う場合は、それに応じてセルを参照するだけです。

=EXACT(Sheet8!B2, Sheet9!C2)

こうすることで、大文字と小文字の違いが問題を引き起こしているかどうかを正確に判断できます。繰り返しますが、この方法は余分なスペースや印刷できない文字をデータから除去した後に機能します。Excelはそういう奇妙な挙動をすることがあります。

フレンドリーラベルのIFと比較

TRUEまたはFALSEの表示に飽きて、「一致」または「一致しない」を表示したい場合は、比較をIFステートメント内にネストします。

=IF(EXACT(B2, C2), "Matched", "Not Matched")

これにより、特にExcelを使わない人がシートを見る際に、データを確認する際の見やすさが大幅に向上します。ただし、Excelは複雑な処理をするため、TRUE/FALSEの結果だけでは不十分で、代わりに分かりやすいラベルが必要になる場合があることを覚えておいてください。

列間のテキストを一致させるためのVLOOKUP

名前やコードのリストを別のリストと照合する場合、例えば売上リストとVIP顧客リストを比較する場合などです。VLOOKUP関数を使えば、これらの値を照合し、どの値が存在するか、どの値が存在しないかを確認できます。

=VLOOKUP(A2, $C$2:$C$15, 1, FALSE)

エラーをスムーズに処理したい場合(一致が見つからない場合など)、IFNAでラップします。

=IFNA(VLOOKUP(A2, $C$2:$C$15, 1, FALSE), "Failed")

こうすることで、シートが乱雑になる大量の醜い #N/A エラーを回避できます。

VLOOKUP と IFNA を使用して出席者や欠落データを素早く特定する

たとえば、イベント登録を管理する場合、VLOOKUP とIFNAを組み合わせると、欠席を簡単にフラグ付けできます。

=IFNA(VLOOKUP(A2, $C$2:$C$15, 1, FALSE), "Absent")

これは、出席しなかった人を「欠席」とマークするだけなので、紙のリストに手動でチェックを入れるよりもはるかに迅速です。ただし、リストに誤ってスペースが入らないように注意してください。スペースがあると、マッチングが正しく機能しません。

FINDとISNUMBERで部分一致をチェックする

文字列の一部が他の場所に出現するかどうかを調べたい場合(例えば、商品コードがより大きなテキストの一部であるかどうかを調べる場合など)、FINDを使うのが最適です。ただし、FIND は何も見つからない場合はエラーをスローするため、ISNUMBER内にネストするのが最適です。

=ISNUMBER(FIND(C2, A2))

C2のテキストの一部がA2に見つかった場合はTRUEを返し、見つからない場合はFALSEを返します。部分的な検索や、データのフォーマットが統一されていない場合に適しています。

条件付き書式で重複を強調表示する

視覚的なアプローチを好む場合は、条件付き書式を使用して、列全体の重複をすばやく強調表示できます。

  • 確認したい範囲を選択してください。
  • [ホーム] > [条件付き書式] > [セルの強調表示ルール] > [重複する値]に移動します。
  • 好きな色を選んで「OK」をクリック。完了です。これで、数式を使わずに重複している部分がすぐに確認できます。

経費報告書や在庫リストの二重入力を検出するのに最適です。

検索で他のテキスト内のテキストを検索する

セルに特定の文字列が含まれているかどうかを位置に関係なく確認したい場合は、FIND関数よりもSEARCH関数の方が柔軟性があります。SEARCH関数は、見つかった場合は最初の文字の位置を返し、見つからなければエラーを返します。ISNUMBER関数で囲むと、その文字列が存在するかどうかがわかります。

=ISNUMBER(SEARCH(C2, A2))

これは、長いテキスト内に埋め込まれたキーワードや文字列の一部をチェックするときに役立ちます。

列全体を比較して重複データや欠落データの有無を確認する

列全体にわたって重複または欠落している項目を特定する必要がある場合は、条件付き書式(上記参照)を使用するか、数式を適用して項目にフラグを設定することもできます。例えば、データの横にある列で、次のように入力します。

=COUNTIF($A$2:$A$100, B2)>1

値が複数回出現するかどうかを確認します。リストをクリーンアップしたり、データの整合性を検証したりするのに役立ちます。

まとめ

正直なところ、これらはExcelでテキストを比較する一般的な方法のほんの一部に過ぎません。そして、これらのほとんどはほぼあらゆるシナリオに応用できます。重要なのは、大文字と小文字の区別が重要か、部分一致で十分か、それとも完全な重複を識別する必要があるかを判断することです。数式を少し試してみて、まずデータをクリーニング(TRIMCLEANを使用)すると、最終的にはうまくいくことが多いです。

まとめ

  • 大文字と小文字を区別せずにテキストを比較するには、`=A2=B2` を使用します。
  • 大文字と小文字を区別する比較には `=EXACT(B2, C2)` を使用します。
  • わかりやすいメッセージにするために、比較を `IF()` で囲みます。
  • VLOOKUP + IFNA は、不足しているエントリまたは一致するエントリを見つけるのに役立ちます。
  • FIND と ISNUMBER は、部分文字列またはサブ文字列の一致に適しています。
  • 条件付き書式は、重複を視覚的に示します。
  • SEARCH はテキスト内の部分一致を検索します。

まとめ

結局のところ、これらの数式を試してみることで、膨大な時間を節約し、エラーを防ぐことができます。特に巨大なデータセットを扱う場合はなおさらです。データを整理し、大文字と小文字、スペースの区別に注意し、数式を少し試してみてください。これで誰かの時間が節約され、データの整理が少しでも楽になれば幸いです。