Excelで二つの表を比較するときは、数式で一致を判定する方法、条件付き書式で違いを目立たせる方法、並べ替えやフィルターで確認する方法を使い分けると、データの突き合わせを正確かつ効率よく進められます。
顧客名簿、売上データ、在庫一覧、請求リストなどでは、同じ値かどうかだけでなく、片方にしかないデータ、入力ミス、重複、順番の違いまで確認する場面があります。
この記事では、1行目にヘッダーがある表を例に、Excelでデータを比較して一致確認を行う代表的な手順を、数式と画面操作の両面から解説します。
比較作業で押さえたいポイントです。
・同じ行同士を比べるなら比較演算子を使います。
・順番が異なる表はXLOOKUP関数やCOUNTIF関数で照合します。
・差異は条件付き書式で色付けすると見落としを防げます。
データ量や照合したい内容に合う方法を選び、確認しやすい表へ整えていきましょう。
エクセルで同じ行のデータを比較する方法【比較演算子】
それではまず、同じ位置に並んだ二つのデータを比較する基本的な方法について解説していきます。
| 商品コード | 4月売上 | 5月売上 |
|---|---|---|
| A001 | 12500 | 12500 |
| A002 | 9800 | 10200 |
| A003 | 15000 | 15000 |
同じ商品コードが同じ行にあり、B列とC列の金額だけを照合したい場合は、もっともシンプルな比較演算子が役立ちます。
表の順序が完全にそろっている場合は、セル同士を直接比較する方法が速く、数式も読みやすいという利点があります。
イコール記号で一致を判定する数式

B列の値とC列の値が一致するかをD列で確認する場合は、D2セルに次の数式を入力します。
=B2=C2
この数式は、B2セルとC2セルの内容が同じならTRUEを返し、異なればFALSEを返します。
数値、文字列、日付のいずれも比較できますが、見た目が同じでも文字列と数値の型が異なるとFALSEになる場合があります。
たとえば、片方が数値の100で、もう片方が文字列として入力された100なら、表示上は同じでも意図した比較結果にならないことがあります。
数式を入力した後は、D2セル右下のフィルハンドルを下方向へドラッグするか、ダブルクリックして最終行までコピーしましょう。
これにより、各行の売上金額を一度に照合できます。
IF関数で判定結果をわかりやすく表示する方法
TRUEやFALSEではなく、確認しやすい日本語を表示したいときはIF関数を使います。
=IF(B2=C2,”一致”,”要確認”)
この式では、B2とC2が同じなら一致、異なるなら要確認と表示されます。
比較結果を第三者へ渡す表では、TRUEやFALSEよりも一致や要確認と表示するほうが判断しやすいでしょう。
空白セル同士は同じ値として扱われるため、未入力を除外したい場合は条件を追加します。
=IF(OR(B2=””,C2=””),”未入力”,IF(B2=C2,”一致”,”要確認”))
この式なら、いずれかのセルが空白の行には未入力と表示され、入力漏れと数値差異を分けて確認できます。
月次集計や提出前チェックでは、一致判定と未入力判定を混同しないことが、後戻りを減らすポイントです。
完全一致で確認するときの注意点
セル比較では、余分なスペース、全角と半角、改行、表示形式の違いによって確認が難しくなることがあります。
文字列の前後に不要な空白が混じるデータでは、TRIM関数で空白を整えてから比較すると安定します。
=TRIM(B2)=TRIM(C2)
英字の大文字と小文字まで区別して照合したい場合は、EXACT関数を利用します。
=EXACT(B2,C2)
通常のイコール記号ではABCとabcを同じ文字列として扱いますが、EXACT関数では異なる値として判定します。
商品コード、パスワードに近い管理コード、型番など、大文字小文字が意味を持つ項目では有効です。
【操作のポイント】比較対象の表が同じ順番で並んでいるかを最初に確認し、順番が違う場合は次の照合方法へ進みます。
エクセルで別表のデータを突き合わせる方法【XLOOKUP関数】
続いては、行の順番が異なる二つの表をキー項目で突き合わせる方法を確認していきます。
| 商品コード | 基準単価 | 確認用単価 |
|---|---|---|
| A001 | 500 | 500 |
| A002 | 800 | 780 |
| A003 | 1200 | 1200 |
一方の表が商品コード順、もう一方の表が入力順のように、行の位置がそろわない場合には、同じ行を直接比較してはいけません。
比較の基準になる商品コード、社員番号、伝票番号などをキーとして検索し、対応する値を取り出してから比較する必要があります。
XLOOKUP関数で対応する値を取り出す手順
たとえば、Sheet1に確認したい一覧があり、Sheet2に正しい基準データがあるとします。
Sheet1のA列に商品コード、B列に確認用単価があり、Sheet2のA列に商品コード、B列に基準単価がある構成です。
Sheet1のC2セルに、Sheet2から基準単価を取得する次の数式を入力します。
=XLOOKUP(A2,Sheet2!A:A,Sheet2!B:B,”該当なし”)
最初のA2は検索したい商品コードです。
Sheet2!A:Aは商品コードを探す範囲であり、Sheet2!B:Bは見つかった商品コードに対応して返す単価の範囲です。
最後の該当なしは、コードが見つからなかったときに表示する文字です。
検索範囲と戻り範囲は、同じ行数で対応した列を指定することが重要です。

取得した値と入力値を比較する数式
C列に基準単価を取得できたら、D2セルでB列の確認用単価とC列の基準単価を照合します。
=IF(B2=C2,”一致”,”差異あり”)
基準表に存在しない商品コードはC列に該当なしと表示されるため、単価差異とコード不足を別々に管理したい場合は数式を少し拡張します。
=IF(C2=”該当なし”,”基準表にない”,IF(B2=C2,”一致”,”差異あり”))
このように結果を分けておくと、単なる金額違いなのか、そもそも照合先に存在しないデータなのかをすぐに把握できます。
大量のデータを扱うときほど、差異の理由を判定列で明示する設計が作業の効率を左右します。
VLOOKUP関数を使う場合の考え方
古いExcel環境などでXLOOKUP関数が使えない場合は、VLOOKUP関数でも同様の照合ができます。
=IFERROR(VLOOKUP(A2,Sheet2!A:B,2,FALSE),”該当なし”)
VLOOKUP関数の最後のFALSEは完全一致を指定する設定です。
コード照合では近似一致ではなく完全一致を使うため、この指定を省略しないようにしましょう。
ただしVLOOKUP関数は、検索列より左側の値を返せない制約があります。
新しいExcelを利用できるなら、左右どちらの列も扱いやすいXLOOKUP関数を選ぶと柔軟です。
【操作のポイント】キー項目に重複があると最初に見つかった値だけが返るため、商品コードや管理番号の重複も別途確認します。
エクセルで片方にしかないデータを確認する方法【COUNTIF関数】
続いては、二つのリストを照合して片方にしか存在しないデータを見つける方法を確認していきます。
| 注文一覧の商品コード | マスターにあるか | 判定 |
|---|---|---|
| A001 | あり | 登録済み |
| A004 | なし | 要登録 |
| A005 | あり | 登録済み |
顧客リストや商品マスターのように、一方の一覧に存在するかどうかを調べるだけなら、COUNTIF関数が扱いやすい方法です。
COUNTIF関数は指定範囲に同じ値が何件あるかを数えるため、存在確認と重複確認の両方に活用できます。
COUNTIF関数で存在の有無を判定する数式
Sheet1のA列に注文商品コード、Sheet2のA列に商品マスターの商品コードがあるとします。
Sheet1のB2セルに次の数式を入力すると、注文コードが商品マスターに存在するかを確認できます。
=IF(COUNTIF(Sheet2!A:A,A2)>0,”あり”,”なし”)
COUNTIF関数の結果が1以上なら、マスター内に同じコードがあります。
結果が0なら該当するコードがないため、入力間違い、未登録、廃番コードなどを確認する対象になります。
検索範囲であるSheet2!A:Aは固定したい範囲なので、セル範囲を指定する場合は絶対参照を使うとコピー時のずれを防げます。
=IF(COUNTIF(Sheet2!$A$2:$A$1000,A2)>0,”あり”,”なし”)
このようにドル記号を付けた範囲は、数式を下へコピーしても変化しません。

重複データを見つける数式
同じ一覧の中で重複したコードを確認する場合も、COUNTIF関数を使えます。
A2セルの商品コードがA列内に何回登場するかを調べる数式は次のとおりです。
=COUNTIF($A$2:$A$1000,A2)
結果が1なら一件だけであり、2以上なら重複しています。
文字で判定結果を出すなら、次の式が便利です。
=IF(COUNTIF($A$2:$A$1000,A2)>1,”重複あり”,”一意”)
重複は必ずしも誤りではなく、同じ顧客の複数注文のように正しい場合もあるため、確認列を作ってから業務ルールで判断します。
両方のリストから漏れを確認する流れ
片方向だけを確認すると、注文一覧にはあるがマスターにないデータは発見できます。
一方で、マスターにはあるが注文一覧にはないデータを探したい場合は、同じ式を逆方向のシートにも作成します。
つまり、Sheet1からSheet2を検索する列と、Sheet2からSheet1を検索する列の二つを用意します。
この往復確認によって、片側だけのリストにある値を両方向から洗い出すことが可能です。
データ移行、会員情報の統合、年度更新のように漏れが問題になる作業では、片方向だけで完了と判断しないことが大切です。
【操作のポイント】空白セルまで判定対象にすると不要な一致が増えるため、データ範囲をテーブル化するか、実データの最終行までに絞って比較します。
エクセルで差異を色付けして比較する方法【条件付き書式】
続いては、比較結果を色で見える化して、相違点をすばやく確認する方法を解説していきます。
| 商品コード | システムA在庫 | システムB在庫 |
|---|---|---|
| A001 | 20 | 20 |
| A002 | 15 | 12 |
| A003 | 8 | 8 |
数式の結果を判定列で確認する方法は正確ですが、行数が多い表では差異がどこにあるかを探す時間がかかります。
条件付き書式を設定すると、異なるセルを自動で色付けできるため、目視確認が必要な行を一瞬で見つけられます。
条件付き書式で異なるセルを赤くする手順
比較したい範囲として、B2からC100を選択します。
ホームタブを開き、条件付き書式、ルールの管理、新しいルールの順に選択します。
ルールの種類では、数式を使用して、書式設定するセルを決定を選びます。
数式の入力欄には次の式を入力します。
=$B2<>$C2
不等号の組み合わせは、二つのセルが等しくないことを表します。
列記号の前に付けたドル記号は、B列とC列を固定する指定です。
行番号にはドル記号を付けないため、各行でB列とC列を比較できます。
書式ボタンから塗りつぶしを選び、淡い赤色など見やすい色を設定して完了します。
一致したデータだけを強調する設定
差異ではなく、一致した値だけを色付けしたい場合は比較式をイコールに変更します。
=$B2=$C2
棚卸しの確認や修正済みデータの確認では、一致行を緑色にすると進捗を把握しやすくなります。
ただし、空白同士も一致として色付けされる点には注意が必要です。
空白を除外して一致だけを表示するなら、次のようにAND関数を組み合わせます。
=AND($B2=$C2,$B2<>””)
この設定では、B列とC列が一致し、かつB列が空白ではない行だけが対象になります。
空白を含むデータ比較では、色付けルールにも空白除外の条件を加えると、画面が見やすくなります。
条件付き書式の適用範囲を確認する方法
条件付き書式が想定どおりに動かない場合は、ルールの数式と適用先を確認します。
ホームタブの条件付き書式からルールの管理を開くと、数式と適用範囲を編集できます。
データの最終行が増える予定なら、通常のセル範囲ではなくテーブルとして管理する方法も便利です。
テーブルでは行を追加したときに書式や数式が引き継がれやすく、毎月の照合作業に向いています。
色だけで最終判断せず、判定列や元データも確認することが、誤った修正を防ぐための基本です。
【操作のポイント】赤と緑だけに頼らず、要確認や一致などの文字列を表示する列も残しておくと、印刷時や色覚の違いにも対応できます。
エクセルで複数列のデータを比較する方法【連結キー】
続いては、商品コードだけでは重複する場合など、複数の項目を組み合わせてデータを比較する方法を確認していきます。
| 商品コード | 倉庫 | 在庫数 | 照合キー |
|---|---|---|---|
| A001 | 東京 | 20 | A001東京 |
| A001 | 大阪 | 12 | A001大阪 |
| A002 | 東京 | 15 | A002東京 |
商品コードだけで検索すると、複数倉庫に同じ商品があるときに、どの在庫数を比較すべきか判断できません。
このような場合は、商品コードと倉庫名のように複数の条件をつないだ照合キーを作成します。
アンパサンドで複数項目を連結する数式
A列の商品コードとB列の倉庫名を結合して、C列に照合キーを作る場合は次の数式を使用します。
=A2&B2
区切り文字を入れて見やすくするなら、次のようにハイフンなどを加えることもできます。
=A2&”-“&B2
二つの表で同じルールの照合キーを作れば、そのキーをXLOOKUP関数やCOUNTIF関数の検索値として利用できます。
連結する順序、区切り文字、全角半角の扱いを二つの表で完全に統一することが重要です。
複数条件でXLOOKUP関数を使う考え方
Sheet1とSheet2の両方に照合キー列を作成した場合、通常のXLOOKUP関数と同じ形で基準値を取得できます。
=XLOOKUP(D2,Sheet2!D:D,Sheet2!C:C,”該当なし”)
D2はSheet1に作成した照合キーです。
Sheet2のD列から同じ照合キーを探し、Sheet2のC列にある在庫数を返します。
その後、取得した在庫数とSheet1の在庫数をIF関数で比べれば、倉庫別、商品別の差異を確認できます。
キー列を補助列として残しておくと、フィルター、ピボットテーブル、重複削除などでも活用できます。
文字列のゆれを整えてから比較する方法
複数列比較で結果が合わないときは、データ自体の表記ゆれを疑いましょう。
倉庫名に余分な空白がある、株式会社の表記が異なる、全角と半角が混在していると、見た目が近くても別のキーになります。
前後の空白を除去するにはTRIM関数が役立ちます。
=TRIM(A2)&”-“&TRIM(B2)
不要な文字を置き換えるにはSUBSTITUTE関数も使えます。
比較前に文字列を整形する処理を入れると、表記ゆれによる偽の差異を減らせます。
【操作のポイント】複数条件の照合では、元データを直接書き換えず、補助列に整形後のキーを作成して確認する方法が安全です。
まとめ エクセルでデータを比較する方法
Excelでデータを比較する方法は、表の並び方と確認したい内容によって選ぶことが重要です。
同じ行に対応する値がある表では、イコール記号やIF関数で直接比較すると、短い数式で一致確認ができます。
表の順番が異なる場合は、商品コードや社員番号などのキーを使い、XLOOKUP関数で基準データを取り出してから比較する方法が適しています。
片方にしかない値を探すときはCOUNTIF関数を使い、存在の有無と重複の有無を確認しましょう。
条件付き書式を組み合わせれば、差異のあるセルや行を自動で色付けでき、件数が多い表でも見落としを減らせます。
複数列で照合する必要がある場合は、項目を連結したキー列を作成すると、複雑なデータでも比較しやすくなります。
比較結果だけを確認するのではなく、空白、表記ゆれ、数値と文字列の違い、重複データも意識すると、より信頼できる突き合わせになります。
日々の照合作業では、数式の判定列と条件付き書式を併用し、差異が発生した理由まで追跡できる表を作っていきましょう。