【Excel】もう眉間にシワはよらない 2つのシートを比較して同じか違うかチェックするTech TIPS

Excelで似たような2つのシートがあり、それのどこが違うのか調べたいことはないだろうか。2人で別々に手入力したアンケート結果を比較したい、作業途中で複数に分かれてしまったシートでどこを編集したのかを確認したい、といったケースだ。このような場合、目視では見落としもあるし、表が大きければ面倒な作業になる。そこで、簡単に2つのシートを比較する方法を紹介しよう。

» 2021年07月09日 05時00分 公開
[塩田紳二]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Excel 2016/2019/365


Excelで同じような2つのシートを比較して違いを見つける Excelで同じような2つのシートを比較して違いを見つける
Excelを使っていると、目視では違いが分からないような2つのシートを比較して違いを知りたくなることがある。例えば、紙で受け取ったアンケート結果を集計するのに、間違えないように2人で同じものを入力するようなケースだ。2人で入力して結果が同じであれば、ほぼ入力ミスはない。一方、違いがあるのであれば、そこは入力ミスの可能性が高い。そうした違いを簡単に見つける方法を紹介しよう。

 「Microsoft Excel(エクセル)」で作業を行っていると、バックアップとしてブックを別のファイルに保存したり、回復処理などでブックファイルが複数になってしまったりすることがある。すると、似たようなシートができてしまい、それが同じかどうかを比較したくなることはないだろうか。特に、コピーしたブックを間違えて、古い方で作業してしまうと、どちらが「古い」のかブック名から判断できなくなってしまう。

 また、複数人でシートの編集をしていると、どこが変更されたか分からないこともある。

 ところが、Excelには、標準ではシート同士を比較する機能がない。そこで、本Tech TIPSでは、2つのシートの各セルが同じかどうかを、条件付き書式で比較する方法を解説する。この方法はどのエディションのExcelでも可能だ(ただし、記事の検証はMicrosoft 365版ExcelとExcel 2016で行っている)。

条件付き書式で比較する

 シートに含まれる表がそれほど大きくないのであれば、条件付き書式を使って、シートの値に応じた色やアイコンを表示させ、目視で比較するという方法がある。縦横が数個程度ならこの方法を使うことで、簡単に比較できる。

簡単な表ならば条件付き書式で特定の文字列のセルに色を付けて判別できる 簡単な表ならば条件付き書式で特定の文字列のセルに色を付けて判別できる
簡単な表ならば、特定の文字列(例えば、「○」や「−」)が入っているセルに色を付けることで、2つのシートを見比べるだけでも違いが簡単に判別できる。

 特に表中の大半が空セルであったり、ゼロであったりする場合には、色のパターンを全体的に見ることができるため比較が容易だ。

 とはいえ、大きな表を持つシートを比較することは少なくない。この場合には、数式を使った条件付き書式を使うことで、シート間の違いがあるセルにだけに色を付けることができる。ただし、比較するシート同士は、同じブックになければならない。というのは、条件付き書式で利用できる数式では、他のブックへのセル参照が行えないからだ。

 異なるブックに含まれるシート同士を比較するには、新規にブックを作り、そこに比較したいシートをコピーするのが最も簡単だ(シートにはクリップボードを使わずに簡単にコピーする方法がある。後述)。どちらか一方のシートに条件付き書式を設定してしまうため、やはりコピーを作った方が、後で条件付き書式を削除する必要がないため、後始末が楽になる。

 なお、条件付き書式を使う方法では、セル値とセル値同士、数式と数式同士が同じであることは判定できる。しかし、セル値と数式の結果が同一であることの判定はできない。例えば、「1」という数字が入っているセルと「=1*1」という数式が入っているセルは、どちらも「1」と表示されユーザーからは同じように見える。

 条件付き書式による比較では、これを同じと判定させることはできない。こうした「値」と「数式」の同一判定を行いたいのであれば、比較したい2つのシートは、比較用ブックの新規シートにクリップボードを使って「値として貼り付け」を行う。列幅や書式が変わってしまうものの、値の判定には影響がない。

 このことからも分かるように、条件付き書式を使うこの方式では、セルの書式設定やセル幅が同じであるかどうかの判定もできない。Excelの数式ではユーザー定義書式を扱えないため、書式などの同一性の判定にはマクロ(VBA)などを使う必要がある。ただ、この方法は複雑なので、ここでは解説しない。

条件付き書式を設定する

 では、具体的な操作の説明に入ろう。ここでは、比較用に作成するブックを「比較用ブック」、比較対象の2つのシートを「比較元シート」と呼ぶことにする。

 まずは、比較用ブックに2つの比較元シートをコピーする。比較用ブックへシートをコピーする方法に関しては、Tech TIPS「『マウスで表を選んでコピー&ペースト』よりもスマートな方法あります」を参照してほしい。

 あらかじめ比較用ブックを開いておき、比較元シートの「シートタブ」を右クリックして、コンテキストメニューから[移動またはコピー]を選択し、「移動先ブック名」に比較用ブックを指定したら、[コピーを作成する]のチェックを「オン」にして、[OK]ボタンを押す。

 2つの比較元シートをコピーしたら、元のシートとの対応がはっきりするようにコピー先のシート名を変更しておくとよい。似たようなシートを比較するのだとしたら、双方に同じシート名が付いている可能性が高いからだ。

 例えば、比較元シートが2つとも「Sheet1」のままだったとすると、後からコピーしたシートは「Sheet1 (2)」といったシート名になってしまい、区別が付きにくくなる。

 シートの比較では、単に同じかどうかだけを判定したいといった使い方もあり、必ずしもシートの名前を変更して対応をはっきりさせる必要がないこともある。だが、異なったセルを見つけて修正するといった場合には間違いを防ぐためにシート名を変更しておくことをお勧めする。

 ここでは、ブックAからコピーしたシートを「Sheet-A」、ブックBからコピーしたシートに「Sheet-B」という名前を付けたとして説明を進める。

2つのシートを比較するための作業用ブックを作る(1) 2つのシートを比較するための作業用ブックを作る(1)
説明の都合上、比較したい2つのシートを「比較元シート」とし、比較に利用する新規に作成するブックを「比較用ブック」と呼ぶことにする。この2つのシートを比較するため、「比較用ブック」を作成する。
2つのシートを比較するための作業用ブックを作る(2) 2つのシートを比較するための作業用ブックを作る(2)
比較元シートの「シートタブ」を右クリックして、メニューで[移動またはコピー]を選択する。
2つのシートを比較するための作業用ブックを作る(3) 2つのシートを比較するための作業用ブックを作る(3)
[シートの移動またはコピー]ダイアログが開くので、「移動先ブック名」に「(新しいブック)」を選択し、「コピーを作成する」にチェックを入れる。もう一方の比較元シートの場合、「移動先ブック名」にはここで作成したブックを選択する。
2つのシートを比較するための作業用ブックを作る(4) 2つのシートを比較するための作業用ブックを作る(4)
新しいブックに2つのシートがコピーされた状態となる。判別しやすいように、コピーした比較元シートには、「Sheet-A」「Sheet-B」というシート名を付ける。

 ここでは「Sheet-A」に条件付き書式を設定するとしよう(「Sheet-B」の方でもよい)。

 比較用ブックが作成できたら、「Sheet-A」を開いて、シートの比較したい範囲を選択する。表内のセルを選択してから、[Ctrl]+[A]キーで表全体を選択することも可能だ。

 この状態で、[ホーム]タブの[スタイル]グループにある[条件付き書式]−[新しいルール]を選択する。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。