Excelで複数の表を比較して一致・不一致を判定する方法

Excelで2つの列を比較して、一致・不一致を判定したい。
比較する中で、こういった悩みはありませんか?

  • 見た目は同じなのに一致しない
  • 数値や文字列が微妙にズレている場合、ズレが何かを調べたい
  • シートが分かれていて比較しづらい

この記事では、Excelの基本演算子「=」、IF関数、XLOOKUP関数を使って、2つまたは複数の表の一致・不一致を自動判定する方法を解説します。

すべて私が実務で使用してきた手法で、初心者でもすぐ再現可能です。

比較業務では、データに不整合があった場合は差異の抽出を行っておりました。

客観的にも理解できるエビデンスとして残すことで、誰もが確認することができる資料となります。

「Excel比較方法を一から知りたい」「一致不一致判定を効率化したい」方はぜひ最後までお読みください。

本記事で紹介するExcelの比較方法と対象データの前提条件

本記事では、以下のような前提条件での比較方法を紹介します。

  1. セルの値(文字列・数値など)を関数で比較する
  2. 同じシート内、同じブック内の別シートとの比較を対象とする
  3. 比較の目的は「一致/不一致」の判定

この記事では、同じファイル内のシート間比較までを対象とし、別ファイル(ブック)間での比較方法は扱いません。

これは、参照パスの問題や構造の複雑さにより、実務でも慎重な扱いが必要になるためです。

「=」演算子を使った一致・不一致判定方法

「=」は2つの値が同じかを比較し、一致すればTRUE、不一致ならFALSEを返します。

例:「E5セルの値と、I5セルの値を比較する」
=E5=I5

  • スペースや見えない文字が含まれていると、FALSEになってしまう

IF関数で一致・不一致を文字列表示する方法

Excelでは、IF関数を使うことで、比較の結果に応じて表示内容や処理を切り替えることができます。
「セルの値が一致したら○○と表示、一致しなければ表示させる」といった条件分岐が行えます。

例:「E5セルの値とI5セルの値が一致した場合一致一致しなければ不一致と表示させる
=IF(E5=I5,”一致”,”不一致”)

XLOOKUP関数で2つまたは複数の表を比較する方法

単一範囲内での一致判定例

「指定したセル範囲から、指定した値を探し出したい」場合、XLOOKUP関数を使用します。
本来は「検索・抽出」が目的ですが、「一致判定」としても非常に便利です。

例:「I5セルの値E列から探したい見つかればD列と同じ入力をする)」
=XLOOKUP(I5,E:E,D:D)

  • 検索値:探したい値(例:I2セル)
  • 検索範囲:検索対象の列または行
  • 戻り値:一致時に返す列または行
  • 見つからない場合(省略可):一致がない場合に返す値
  • 検索モード(省略可):上から下か、下から上か(1, -1 )
  • 一致モード(省略可):完全一致か近似値か(0, -1, 1, 2)

複数範囲を順番に検索する方法(応用)

ネスト構造を使えば、順番に複数の検索範囲を検索できます。

例:「I5セルの値E列から探したい見つかればD列と同じ入力をする
見つからない場合、I5セルの値をO列から探したい(見つかればP列と同じ入力をする)
=XLOOKUP(I5,E:E,D:D,XLOOKUP(I5,O:O,P:P))

例ではXLOOKUP関数の[見つからない場合]にXLOOKUP関数を入れることで、
「1度目の検索で見つからなかった場合、2度目の検索を行う」という動作にさせています。

一致したシート名を表示させるテクニック(応用)

IF関数とXLOOKUP関数を組み合わせれば、どのシートで一致したかもわかります。

例:「I5セルの値をE列から探したい見つかればD3セルと同じ入力をする
見つからない場合、I5セルの値をO列から探したい見つかればN3セルと同じ入力をする
見つからない場合、該当なしと入力する
=IF(XLOOKUP(I5,E:E,D:D,””)<>””,$D$3,
IF(XLOOKUP(I5,O:O,`P:P,””)<>””,$N$3,
“該当なし”))

例では「1つ目のIF関数(論理式にXLOOKUP関数を使用)にて、値が偽の場合、
2つ目のIF関数(論理式にXLOOKUP関数を使用)を使用し、
それぞれの論理式で値が真の場合、偽の場合で指定した入力をする」という動作にさせています。

  • 最初に一致したシートだけを表示させる
  • 同じ値が複数シートにあっても、すべては取得できない

微妙な違いを許容する場合

一致モードを変更すれば、近似値や部分一致で判定できます。

例:「I5セルの値E列から探したい見つかればD列と同じ入力をする一致モード1で近似値も判定する
=XLOOKUP(I5,E:E,D:D,)

  • 0:完全一致(既定)
  • -1:完全一致または小さい近似値
  • 1:完全一致または大きい近似値
  • 2:部分一致(文字列の一部一致)

・実務では「近い値を探す」ニーズの方が圧倒的に多く、一致モード「1」「-1」でほとんどの検索が済んでしまう。
そのため一致モード2の詳しい使用方法についての説明は省きます。

VLOOKUP関数ではなく、XLOOKUP関数を推奨する理由

2025年8月10日現在、多くの解説サイトや記事では「VLOOKUP関数で比較する方法」が紹介されています。
これは、VLOOKUPがExcel 2010〜2019で標準的に使われてきた関数だからです。

しかし、Microsoft公式ではExcel 2021およびMicrosoft 365において、次のように説明しています。

XLOOKUP関数は、これまでのVLOOKUP関数の弱点をすべて補った上位互換的な存在です。

出典:Microsoft サポート

出典:Microsoft サポート

これから比較機能を学ぶ場合は、XLOOKUP関数を強くおすすめします。

絶対参照を使って比較対象がずれないように固定する方法

XLOOKUPやIF関数で比較式を作った後、オートフィルで一括入力すると、参照先がずれて比較が正しくできないことがあります。
これは、Excelが既定で「相対参照(セルの位置に応じて参照先が変わる)」になっているためです。

そこで、セルや範囲を固定する 絶対参照 を使います。

セル、セル範囲の選択をする際、固定したい行、列の前に$をつけることで絶対参照になります。

例:「B2セルの値と、固定されたF列のデータを比較する」

例:「E列固定のE5セルの値と、I列固定のI5セルの値を比較する」
=$E5=$I5

このように列番号の前に$を付けることで、オートフィルしても列の参照が変わらず、正しい比較ができます。
また、行番号の前にも$をつけることができるため、行の参照を固定することもできます。

注意点

  • 比較対象が固定するべきかどうかを明確にする
  • 複数シートをまたぐ場合は、参照先に気を付ける

シート間での比較をする方法

Excelでは、別のシートの内容を比較することもできます。
その場合は、比較対象のセルの前にシート名を付けることでシート間の比較をできます。

例:「E5セルの値と、資料①(シート名)のI5セルの値を比較する」
=E5=資料①!I5

このように「シート名」+「!」を付けることで、別シートのデータを検索できます。

注意点

  • シート名の変更・移動・コピーによって参照が壊れる
  • シート名は作業前に確定する

Excel比較でエラーが出る3つの原因と対策

比較関数でエラーが出る原因は、大きく分けて環境・データ・書式の3つです。
原因を整理して確認することで、余計な時間をかけずに修正できます。

1.環境面の原因(ファイルパス・共有設定)

別ファイルや共有環境(SharePointなど)にあるデータを比較する場合、ファイルの場所が変わると関数が参照できなくなり、エラーになることがあります。
特に共有リンクやクラウド上のファイルは、URLやパスの変更に弱いため注意が必要です。

2.データ面の原因(空白セル・文字列数値)

比較対象に空白セルやNULL値があると、想定外の結果になることがあります。
また、数値に見えて実は文字列(’123 など)になっていると、一致判定が正しく行われません。

※「’」はセルの書式ではなく、値の一部として保存されているため、書式変更だけでは消えません。
一致判定のためには、文字列を数値に変換する必要があります(再入力、VALUE関数、掛け算による変換など)。

3.書式面の原因(余計なスペース・型不一致)

データの見た目は同じでも、セル内に余計なスペースが入っていたり、数値と文字列の書式が混在していると一致しません。

対策

  • 関数を使う前に、データの前提条件を確認する
  • 比較後は必ず目視で最終チェックを行う

まとめ

Excelで比較作業を行う際の基本的な流れは次のとおりです。

  1. 比較の対象範囲と目的を明確にする
  2. 適切な関数(=、IF、XLOOKUPなど)を選ぶ
  3. オートフィル後の関数動作の確認をする
  4. 不一致の項目を目視確認し、データや書式等の確認をする

実務では、業務の求める精度やエビデンスの有無によって必要な工程が変わります。
特に、報告資料などエビデンスが必須の比較作業では、この流れを確実に押さえておくことが重要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です