エクセルで作業中のシートから一部を修正したとき、どこが変化したのかを瞬時に把握できると便利です。もし数値であれば差分をとることで対処できます。しかし、文字列を扱うとなると、すぐに対処できない方もいるかもしれません。
ここでは異なるセルごとに比較をし、違う文字列があったらセルへ塗りつぶしを行うことを紹介していきます。
文字列のセルを比較して違う箇所を表示する2つの方法
セル間を比較して、一致しているかどうか調べるにはいくつか方法があります。シンプルかつ直感的に理解しやすいのは「条件付き書式」を使用する方法です。
・EXACT関数を使う
実際に、データを用いてそれぞれ説明します。下のような2つのデータを用意します。
B、C列が比較したい項目です。
条件付き書式を使う場合
まず、評価したい範囲(例だとB3:C10)を選択して「ホーム」タブ内にある「条件付き書式」、「新しいルール」を順に選びます。
次にルールの種類に「数式を使用して、書式設定するセルを決定」を選びます。
ルールの内容に以下の式を入力します。
$
B3<>$
C3データの1行目(例だとB3、C3)を指定します。絶対参照か相対参照かは目的に合わせて調整して下さい。例は、列のみに$を使用しており、B列とC列を固定し行を可変に1対1でセルの比較を繰り返します。
「<>」は比較する1対のセルが等しくないという意味です。他にも数式の条件は、次のように記入することができます。
条件 | 意味 |
---|---|
> | AがBより大きい |
>= | AがB以上のとき |
< | AがBより小さい |
<= | AがB以下のとき |
= | 等しい |
<> | 等しくない |
ORやANDなどの関数で組み合わせることも利用可能です。単に大小を比べるだけなら、ルールの種類を指定値にする方が簡単かもしれません。
EXACT関数を使う場合
EXACT関数は比較するセルの文字列で完全一致しているか調べて返す関数です。大文字や小文字、半角や全角を区別して調べることができます。EXACT関数は文字列を対象とするので、比較したいデータが数値ならDELTA関数で対応します。
比較する2つが等しければ「TRUE」、違うと「FALSE」と表示されます。
もし、結果が見にくいときはIF関数を組み合わせることですっきりします。例えば以下のように書きます。
この場合、異なるセルがあったときのみ「NG」と表示されます。
データ数が多い場合やシート間で比較したい場合
比較したいデータが少なければ、これまでに説明した方法でできますが、大量データだと個別選択だと手間がかかってしまいます。
シート間で一括で処理した方が効率がいいです。仮に古いデータが「Sheet1」にあり、新しいデータが「Sheet2」にあったとします。
「条件付き書式」の方法を応用することでシート間の比較も簡単に実行できます。
まず、結果を表示したい、つまり違いを出力したいsheetを選択し、データを比較する対象範囲を選択します。(例は、新しいデータのある「Sheet2」を選びます。)次に「条件付き書式」、「新しいルール」を順にクリックします。
ルールの内容に以下の式を入れます。(コピペ編集で使えます。)
先ほどとの違いは、行と列のどちらも相対参照にしてます。これにより対象範囲を1対1で比較できます。あとは違うセルの書式を好みで調整すれば終了です。ここでは赤色で塗りつぶしとしました。
まとめ
条件付き書式を使うことでセルだけでなく、シート間でも容易に比較することができます。関数を使って比較することもできますが、セルの塗りつぶしは条件付き書式のみ行えます。
条件付き書式の範囲やルールを修正する場合は「条件付き書式」の「ルールの管理」で行えます。一度作ってしまえば応用できるので、まだやったことのない方は是非試してみて下さい。