いまさら聞けないExcelの使い方講座

【Excel】別々のファイルにある表を比較して違いを見つけるには? 表のコピペは不要!

更新箇所をすばやく正確に見つけたい!

簡単な数式を使って違いを正確に見つけよう

 以前の記事では、同じファイルに含まれる2つの表について、違いを見分けるためのテクニックを紹介しました。しかし、普段の業務では、比較する表が別のファイルにあることもありますよね。また、複数の列をまとめて比較することも多いはずです。

 例えば、管理用のファイルは社内サーバーに保存してあり、作業用として自分のパソコンにダウンロードして更新していたとしましょう。新規に追加したデータなら、元の表と比較して違いは一目瞭然ですが、既存のデータの間違いに気付いて修正することもあります。

管理用のファイル(左)を自分のパソコンにダウンロードして更新した例です(右)。追記した箇所の違いは明確ですが、そのほかにも更新している箇所がわかりますか?

 最新のファイルに差し替えられればいいのですが、複雑な数式が使われていると破損してしまう可能性もあります。その場合、表の一部をコピペすると思いますが、今度は修正箇所を見つけ出すのに苦労しますよね。今回は、別々のファイルにある2つの表から違いを見つける簡単な方法を紹介したいと思います。

比較用のシートにIF関数を埋め込む

 まずは比較用のシートを用意します。更新作業をしているワークシートをコピーして内容を消去するだけです。続けて、IF関数を入力します。

 IF関数の数式は単純ですが、入力中にワークシートとブック(ファイル)の切り替えに戸惑うかもしれません。以下の式の構造を参考にしてください。「更新中のワークシートのセルA2と元のワークシートのセルA2が等しいなら」という条件で、等しければ何も表示しない("")、等しくなければ「更新」と表示する、という意味の数式です。

=IF(Sheet1!A2=[名簿_管理用.xlsx]Sheet1!A2,"","更新")
更新中のファイルでの操作です。[Ctrl]キーを押しながらシート見出しをドラッグします(①)
ワークシートがコピーされます。内容を選択して(②)、[Delete]キーを押して消去します(③)
セルA2に「=IF(」と入力します(④)。続けて「Sheet1」のシート見出し(⑤)をクリックします
「Sheet1」に切り替わります。セルA2(⑥)をクリックします。数式バーに「=IF(Sheet1!A2」と表示されます(⑦)
続けて「=」と入力します(⑧)。このまま元のファイルに切り替えます
元のファイルのセルA2(⑨)をクリックします。数式バーに「=IF(Sheet1!A2=[名簿_管理用.xlsx]Sheet1!$A$2」と表示されます(⑩)
続けて「,"","更新")」と入力します(⑪)。「,」、「"」、「)」はすべて半角で入力してください。[Enter]キーを押します(⑫)
更新中のファイルに戻ります。セルA2に「=IF(Sheet1!A2=[名簿_管理用.xlsx]Sheet1!$A$2,"","更新")」と入力されていることがわかります(⑬)

参照方式を修正して数式をコピーする

 数式の入力が完了すると、更新中のファイルに操作が戻ります。ほかのファイルへのセル参照は絶対参照で入力されるので、相対参照に修正して数式をコピーします。

2つの「$」を削除し、セルA2の数式を「=IF(Sheet1!A2=[名簿_管理用.xlsx]Sheet1!A2,"","更新")」に修正します(⑭)。[Enter]キーを押します(⑮)
縦横に数式をコピーすると、修正した箇所に「更新」と表示されます
元の表と更新した表を比較すると、該当箇所に違いがあることがわかります

シートやブック間の参照の練習にもなる

 ほかのファイルやブック(ファイル)を参照すると、数式が複雑に見えてしまうかもしれませんが、規則に従って指定されるだけです。ほかのシートを参照する場合は(シート名)!セル番地、ほかのブックは(ファイル名)シート名!セル番地の形式です。ほかの関数でシートやブックを参照する場合も共通なので、手元にあるファイルを使って試してみてください。