2つのExcelワークシート間でデータを照合するのは、特に適切な関数を知らない場合、少々面倒な作業になりがちです。通常は、2つのリストを比較して一致する値を確認したいのですが、手順が必ずしも簡単ではなく、手作業で確認したり、厄介なエラーに対処したりして時間を無駄にしてしまうことがあります。このガイドは、そんな混乱を解消するために作成されました。実際に効果のある確実な方法をいくつか紹介することで、迅速かつ確実に一致するデータを見つけることができます。メーリングリストの整理、販売記録の相互参照、あるいは単に2つの異なるデータセットを理解しようとしている場合でも、これらのテクニックを使えば作業をより迅速に進めることができるでしょう。
Excelで2つのワークシートのデータを照合する方法
データの不一致や情報不足の問題は、通常、シートの比較方法に起因します。適切な数式を使用しなかったり、手順を飛ばしたりすると、一致するデータが見つからないか、エラーが発生します。幸いなことに、Excel はいくつかの調整を加えるだけで、この問題をうまく処理し、手作業を大幅に削減できます。ここでは、直面している問題に応じて、いくつかの異なるアプローチをご紹介します。
方法1:VLOOKUP関数を使った簡単なマッチング
これは定番のGoto関数で、データが複雑でない場合はうまく機能します。両方のシートに、比較の基準点として使用できる共通の列(IDやメールアドレスなど)がある場合に特に役立ちます。時折、#N/Aエラーが発生することがありますが、これは一致するデータが見つからなかったか、数式が正しい範囲を指していないことを意味します。それでも、ほとんどの場合は十分に信頼できます。
- 両方のシートが入ったExcelファイルを開いてください。通常は、下部に「Sheet1」と「Sheet2」のようなタブが表示されます。両方のシートがアクセスしやすく、きちんと整理されていることを確認してください。書式設定の不一致は、問題を引き起こす可能性があります。
- 共通の列(例えば、IDが記載されているA列)を特定してください。両方のシートでその列が一致していることを必ず確認してください。数値がテキストとして保存されているか、実際の数値として保存されているかなど、形式が一致していないと結果が狂ってしまうからです。
- 一致するデータを取得したい対象シートに移動します。一致情報を表示させたいセルをクリックします。
- VLOOKUP 関数を入力します。次のようになります
=VLOOKUP(Lookup_value, Table_array, Col_index_num, FALSE)。たとえば、ID を照合して Sheet2 から対応する名前を取得したい場合は、次のようになります=VLOOKUP(A2, Sheet2!$A$2:$B$100, 2, FALSE)。 - 次に、そのセルの角を下にドラッグして列の残りの部分を埋め、各行が一致するセルを見つけようとします。設定によっては、VLOOKUP 関数がリストをスムーズに処理するために、絶対参照 (ドル記号) を少し調整する必要がある場合があります。
この方法はシンプルながら非常に便利です。ただし、データに一貫性がなかったり、フォーマットが異なっていたりすると、すべての一致を検出できない可能性があることに注意してください。また、何らかの問題が発生した場合に、IFERROR数式の周りに(例=IFERROR(VLOOKUP(...), "No match"):)を追加することで、#N/A が大量に表示されるのを防ぎ、シートをきれいに保つことができます。
方法2:INDEXとMATCHを使用してより詳細な制御を行う
VLOOKUP関数だけでは不十分な場合もあります。例えば、左側の列に基づいて検索したい場合や、より柔軟な検索を行いたい場合などです。そんな時に役立つのがINDEX関数とMATCH関数です。なぜうまくいくのかは定かではありませんが、これらの関数は汎用性が高く(列のずれによるエラーも起こりにくい)、より効果的な検索が可能です。
- 共通の列をもう一度特定してください。たとえば、Sheet1のA列とSheet2のB列があるとします。ただし、データは並べ替えられていない、または整列されていない可能性があります。
- 対象のセルに、次のような数式を入力します
=INDEX(Sheet2!$B$2:$B$100, MATCH(A2, Sheet2!$A$2:$A$100, 0))。これは、範囲 から A2 を見つけSheet2!$A$2:$A$100、 を使用してその位置を取得し、その位置MATCHから の値を取得することを意味します。Sheet2!$B$2:$B$100 - 以前と同じようにこれを下にドラッグしてください。設定によっては、一致するものがない場合に #N/A が返されることがあるので、で囲むと
IFERROR便利です=IFERROR(INDEX(...), "No match")。
この方法は、ソートされていないデータを扱う場合や、一致する列が先頭にない場合に、より信頼性が高くなります。さらに、内部で何が起こっているのかがより分かりやすくなります。
より良いマッチング結果を得るためのヒント
- データ型を再確認してください。テキストと数値の混在は厄介な問題になりかねません。マッチングを行う前に、すべてのデータを同じ形式に変換してください。例えば、列を選択し、「データ」>「区切り位置」を選択するか、セルをテキストまたは数値として書式設定します。
- 入力ミスやデータの不整合がある場合は、まずリストを整理または標準化することを検討してください。=TRIM()を使用して先頭/末尾のスペースを削除します。
- まず、いくつかの特定の値を使って数式をテストしてください。そうすれば、不一致やエラーを簡単にトラブルシューティングできます。
- 可能であればデータをソートしておいてください。必須ではありませんが、特定の検索関数(LOOKUPなど)はソートされたデータの方がパフォーマンスが向上することに注意してください。
- フォーマットが一致していないと、誤った結果(偽陰性)が発生することがよくあります。そのため、「123」が一方のシートではテキストとして保存されているのに、もう一方のシートでは数値として保存されていないことを確認してください。
よくある質問
これらすべてを行った後でもデータが一致しない場合はどうすればよいでしょうか?
共通列に余分なスペースや異なる書式などの不整合がないか確認してください。場合によっては、データの書式を修正したり、クリーニングしたりするだけで、状況が大きく改善されることがあります。
VLOOKUP関数やINDEX/MATCH関数以外の数式を使うことはできますか?
もちろんです。ExcelにはXLOOKUPのような、さらに柔軟性の高い新しい関数が搭載されています。ただし、Excelのバージョンによって利用できる機能は異なります。
あらゆる場所で#N/Aエラーが発生した場合はどうすればよいですか?
それは多くの場合、一致するデータが見つからなかったことを示しています。データにタイプミス、書式設定の問題、またはデータ型の不一致がないか確認してください。また、IFERRORトラブルシューティング中に、より見やすくするために、特定のツールを使用することもできます。
まとめ
- 両方のシートを開き、列を揃えます。
- 最適な検索方法(VLOOKUPまたはINDEX/MATCH)を選択してください。
- 数式を設定し、エラーがないか確認する。
- 下にドラッグして一致するものを確認してください。
- より良い結果を得るために、必要に応じてデータをクリーンアップしてください。
まとめ
これらの方法を覚えれば、Excelでデータを照合するのはそれほど難しくありません。最初は少し扱いづらいと感じるかもしれませんが(特にデータが完璧でない場合)、練習を重ねればすぐに慣れます。手作業でのチェックが減れば、コーヒーを飲んだり他の作業に時間を費やしたりできるというメリットもあります。Excelの照合機能は使い方さえ分かれば非常に強力なので、この記事が皆さんのワークフローを少しでも効率化するのに役立てば幸いです。