【Excel】もう眉間にシワはよらない 2つのシートを比較して同じか違うかチェックする:Tech TIPS
Excelで似たような2つのシートがあり、それのどこが違うのか調べたいことはないだろうか。2人で別々に手入力したアンケート結果を比較したい、作業途中で複数に分かれてしまったシートでどこを編集したのかを確認したい、といったケースだ。このような場合、目視では見落としもあるし、表が大きければ面倒な作業になる。そこで、簡単に2つのシートを比較する方法を紹介しよう。
対象:Excel 2016/2019/365
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つのシートを「比較元シート」とし、比較に利用する新規に作成するブックを「比較用ブック」と呼ぶことにする。この2つのシートを比較するため、「比較用ブック」を作成する。
2つのシートを比較するための作業用ブックを作る(3)
[シートの移動またはコピー]ダイアログが開くので、「移動先ブック名」に「(新しいブック)」を選択し、「コピーを作成する」にチェックを入れる。もう一方の比較元シートの場合、「移動先ブック名」にはここで作成したブックを選択する。
2つのシートを比較するための作業用ブックを作る(4)
新しいブックに2つのシートがコピーされた状態となる。判別しやすいように、コピーした比較元シートには、「Sheet-A」「Sheet-B」というシート名を付ける。
ここでは「Sheet-A」に条件付き書式を設定するとしよう(「Sheet-B」の方でもよい)。
比較用ブックが作成できたら、「Sheet-A」を開いて、シートの比較したい範囲を選択する。表内のセルを選択してから、[Ctrl]+[A]キーで表全体を選択することも可能だ。
この状態で、[ホーム]タブの[スタイル]グループにある[条件付き書式]−[新しいルール]を選択する。
すると、[新しい書式ルール]ダイアログが開くので、「ルールの種類を選択してください」のボックスで[数式を使用して、書式設定するセルを決定]をルールの種類として選択する。するとダイアログの下の部分にある「ルールの内容を編集してください」が書き換わるので、「次の数式を満たす場合に値を書式設定」に以下のような数式を入れる。
=A1<>Sheet-B!A1
これは、Sheet-Aの「A1」セルとSheet-Bの「A1」セルが等しくない(<>)ときに書式を設定するための数式だ。
セル同士が等しい場合に書式を設定して強調したいならば、以下の式を入力する。ただ、似たようなシートを比較するのであれば、異なっているセルを強調表示させた方が分かりやすい。
=A1=Sheet-B!A1
この後、書式を設定する。[塗りつぶし]タブを使って、セルの背景色を指定するのが分かりやすい。
条件付き書式を使ってシートを比較する(2)
[新しい書式ルール]ダイアログで[数式を使用して、書式設定するセルを決定]を選び、「ルールの内容を編集してください」に数式を入れる。また、[書式]ボタンをクリックし、条件を満たした場合のセル書式を指定する。セルの背景色を変えると区別しやすいだろう。
なお、比較元シートの表項目が累積値であるなど、数値の大小比較で新旧の違いが分かるようなら、「=A1>Sheet-B!A1」(Sheet-Aの方が大きい)、「=A1<Sheet-B!A1」(Sheet-Aの方が小さい)などのように、大小比較により書式を設定することも可能だ。
日本語のシート名はマウスでセル参照を入力するとラク
数式入力欄の右端にある「[ダイアログ最小化]ボタン」(上向き矢印アイコン。バージョンにより違いがあるので注意)をクリックすると、ダイアログが最小化し、マウスでセル参照を指定できる。この方法を使うとシート名を入力する必要がないため、日本語のシート名などが入っているときに使うと便利だ。
具体的には、前記の数式で、「=A1<>」までを入力したあと「ダイアログ最小化」ボタンを押して、「Sheet-B」の[シート]タブをクリック、Sheet-Bの「A1」セルをクリックする。これを使えばシート名を自動入力できる。ただし、セルアドレスが絶対参照(先頭に「$」があるセル参照)になってしまうので、[F4]キーを3回押して、絶対参照を相対参照に変更する。
このとき、Excelは参照モードになるため、「$」を消そうとカーソルキーを押すとセル参照が挿入されてしまうので注意が必要だ。カーソルキーを使った編集が行いたいなら[F2]キーを押して、参照モードを解除する。
なお、高解像度のディスプレイを使っていて画面の表示倍率を下げて使っているような場合、必ずしもダイアログを小さくする必要はない。そのままマウスで対象セルをクリックすればよい。この場合もExcelは参照モードに入るため、カーソルキーを使った編集には注意が必要だ。
Copyright© Digital Advantage Corp. All Rights Reserved.