「2つのExcelファイルを見比べて違いを探すのが大変」「マスタデータが更新されたとき、どこが変わったか確認するのに時間がかかる」というお悩みをお持ちの方は多いのではないでしょうか。Excelでは関数や条件付き書式を使って、2つのデータを比較し差分を自動的にハイライトする差分比較ツールを作ることができます。この記事では、データ比較の方法を「セル単位の比較」から「リスト間の差分検出」まで詳しく解説します。
Excelでデータを比較する方法は、比較したいデータの種類や規模によっていくつかのアプローチがあります。まずは目的に合った方法を選びましょう。
セル単位の比較は、同じ位置のセル同士が一致しているかどうかを確認する方法です。2つのシートに同じ構造のデータがあり、どのセルが変わったかを確認したい場合に使います。リスト間の差分検出は、2つのリスト(例:旧マスタと新マスタ)のどちらにしか存在しない項目を見つける方法です。追加された項目・削除された項目の特定に使います。文字列の比較は、テキストデータの完全一致を確認する方法で、半角・全角の違いや余分なスペースの有無も検出できます。
最もシンプルな比較方法はIF関数を使ったセル比較です。「=IF(A2=B2,”一致”,”差異あり”)」と入力することで、A2とB2の内容が同じかどうかを判定できます。差異がある場合のみ目立たせたい場合は「=IF(A2=B2,””,”差異:A→”&A2&” B→”&B2)」とすることで、差異のあるセルに内容の変化を表示できます。
文字列の大文字・小文字を区別して比較したい場合はEXACT関数を使います。「=EXACT(A2,B2)」でTRUE/FALSEを返します。IF関数と組み合わせて「=IF(EXACT(A2,B2),”一致”,”差異あり”)」とするとわかりやすい表示になります。数値の場合は誤差を許容した比較が必要なこともあります。「=IF(ABS(A2-B2)<0.01,”一致”,”差異あり”)」のようにABS関数で差の絶対値が一定値未満なら一致とみなす方法も有効です。
条件付き書式を使うと、比較結果を数式で別列に出さなくても、差分があるセルを直接色でハイライトできます。比較対象のデータ範囲を選択して「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定する」を選びます。比較元がA列、比較先がB列の場合、B列を選択した状態で数式に「=A1<>B1」と入力して赤い背景色を設定します。これでA列とB列で内容が異なるB列のセルが赤くハイライトされます。
2つのシートの同じ位置のセルを比較したい場合は、比較先シートで「=Sheet1!A1<>Sheet2!A1」のようにシート間参照を使います。変更があったセルだけが色付けされるため、大量データでも差分箇所が一目でわかります。
2つのリスト(例:旧マスタと新マスタ)の間で、追加・削除された項目を見つけるにはCOUNTIF関数が有効です。旧リストがA列、新リストがB列にある場合、C列に「=COUNTIF($B:$B,A2)」と入力します。結果が0の行は「旧リストにはあるが新リストにはない(削除された)」項目です。逆にD列に「=COUNTIF($A:$A,B2)」と入力すれば「新リストにはあるが旧リストにはない(追加された)」項目が見つかります。COUNTIF結果が0の行を条件付き書式でハイライトすることで、削除・追加された項目が視覚的にわかります。
IDや商品コードをキーにして2つのリストの同じ行を突合させ、各属性の差分を確認したい場合はVLOOKUP関数が便利です。旧マスタのA列に商品コード、B列に商品名、C列に単価があり、新マスタと比較する場合、差分確認シートに商品コードを並べて「=IFERROR(VLOOKUP(コード,旧マスタ!$A:$C,2,FALSE),”存在しない”)」で旧マスタの商品名を取得し、同様に新マスタの商品名も取得します。IF関数でそれぞれを比較し「差異あり/一致」を判定します。
MATCH関数を使えば「あるデータが他のリストの何行目に存在するか」を特定できます。MATCH関数がエラーを返した場合(IFERROR関数と組み合わせて使う)は、そのデータが対象リストに存在しないことを意味します。これらを組み合わせることで、削除・追加・変更を一度に検出できる汎用的な差分比較ツールが作れます。
差分比較の結果をわかりやすくまとめたダッシュボードシートを作ることで、確認作業が格段に効率化されます。ダッシュボードには「総比較件数」「一致件数」「差異件数」をCOUNTIF関数で集計して表示します。差異があった件数を「=COUNTIF(差分列,”差異あり”)」で算出し、目立つフォントで表示します。差異率(差異件数÷総件数×100)も表示すると影響範囲の把握に役立ちます。差異がある行だけを抽出して別シートに表示したい場合はFILTER関数(Excel 365・2019以降)が使えます。「=FILTER(元データ範囲,差分列=”差異あり”)」で差異のある行だけが別シートに自動表示されます。
Excel 2013以降のOfficeに含まれる「Inquire」アドインを有効にすると、「ブックの比較」機能が使えます。「ファイル」→「オプション」→「アドイン」→「COMアドイン」から「Inquire」を有効にします。「照会」タブの「ファイルの比較」を選択すると、2つのExcelファイルのすべての差分(値・数式・書式・コメントなど)を自動的に検出してくれます。関数や条件付き書式なしで差分確認できるため、スポット的な比較作業に最適です。
Excelで差分比較ツールを作るには、IF関数・EXACT関数・COUNTIF関数・VLOOKUP関数と条件付き書式を組み合わせることが基本です。セル単位の比較にはIF関数と条件付き書式、リスト間の差分検出にはCOUNTIF関数、キー項目を使った突合にはVLOOKUP関数がそれぞれ有効です。大規模なデータ比較にはInquireアドインの「ブックの比較」機能も活用しましょう。これらを組み合わせることで、手動での見比べ作業を自動化し、ミスのない高速な差分確認が実現します。