---topics:変更されたセルの割り出し、条件付き書式---

其ノ18 変わったところはどこ? 前編

データAとデータBを比較したい、というケースはしばしばあると思います。 例えば、3日前にExcelが送られてきたんだけど、今日になって最新のリストが送られてきた。 しかし、3日前のリストと最新のリスト、どこが変更されたかわからない、というとき。
ちょっと例として、下記のデータをダウンロードしてみてください。

開くとこんな↓※1 ※2です。

kiso18_datahikaku_1.xlsx 1つ目のシート(最新データ)
※1 kiso18_datahikaku_1.xlsx 1つ目のシート(最新データ)
2枚目のシート(3日前のデータ)
※2 2枚目のシート(3日前のデータ)

1つ目のシート「最新データ」というのが、本日送られてきたデータです。 で、シート2が「3日前のデータ」。 そいでね、コイツらのどこが変わったのかを知りたい、と。

…これね、例えば入力した人がいじったところ(=変更されたセル)に色を塗ったりしてくれればこちらも全然楽なんだけど、…まあ2つのシートを見比べてもらえばわかるように、 そんなふうにはなってないわけで…。
なので、差異ある箇所を、こちらで割り出してやらなければなりません。
では、どうやったら割り出せるでしょうか。 ちょっと考えてみてください。
あ! そうそう、表内の「注文番号」はユニークな記号、つまり商品ひとつひとつに振られ商品を特定できる記号、ですよ。 これヒント。

この作業の最終形(目的地の提示)

…さて。 漠然と「ちょっと考えてみてください」なんて言われても、何をやったらいいものかちょっと困っちゃいますよね。 なので、いろんなやり方があるとは思いますが、僕のイメージする最終形を見せておきたいと思います。 コレ↓です※3

作業結果のイメージ
※3 作業結果のイメージ

データが横並びになっていて、左が最新リストです。 で、比較の結果、変更のあったセルだけ白ヌキになる=3日前と同じセルはグレーに塗る)というふうにしています。 こうすると、変更のあったところだけが白ヌキで浮き上がって見えるので、視認性がありますよね。 なので、ココを目指したいと思います。
使う道具は、条件付き書式
でね、今回の作業は、「件数が同じかどうか」「並び順が同じかどうか」で、準備することが少しずつ増えていくんですよ。 まずは最もシンプルな、「件数も同じ、並び順も同じ」場合です。 「並び順がちがう」場合は次回、後編でやりますので、お待ちいただければ。

件数も同じ、並び順も同じ

さて。
ではまず、一番シンプルな「件数も同じ、並び順も同じ」場合。
この2つのシートは、どちらも件数は161件(162行)、並び順も注文番号昇順で同じです※4。 あらためてご確認ください。

どちらのシートも件数は同じ、並び順も同じ
※4 どちらのシートも件数は同じ、並び順も同じ

なのでね、比較する一番シンプルな方法は、隣にならべちゃうことなんですよ。 だからね、「3日前のデータ」を、「最新データ」のとなりにコピって貼っちゃう※5 ※6

「3日前のデータ」を全部コピって…
※5 「3日前のデータ」を全部コピって…
「最新データ」のとなりに貼る
※6 「最新データ」のとなりに貼る

ctrl + Aで全セル選択して貼り付けようとしてもできないので注意(ctrl + Aでコピって貼れる先はA1セルだけです)。 なので、全列選択でコピーしましょう。
で、隣合わせになった、と。
ついでに、区別のためにヘッダーの色でも変えておきましょうか※7

隣り合わせの灰と青春
※7 隣り合わせの灰と青春

ハイ、これで準備完了。
では、比較をしていきましょう。
でね、セル同士を比較するときの基本はイコール式です。 なのでまず、条件付き書式を使う前に、イコール式を使って比較してみましょう。

ではでは、まず最初に、「注文番号」列を比較しましょう※8 ※9 ※10。 ココは商品情報の基本となる部分なので、全部イコールであってほしいところ。

列を挿入して…
※8 列を挿入して…
イコール式を入れる
※9 イコール式を入れる
あ…、文字列のままだ
※10 あ…、文字列のままだ

おおっと、セルの書式が文字列でした。 なので、書式を標準に直しましょう。 そうすれば…※11 ※12

書式を標準にする
※11 書式を標準にする
イコール式を入れることができた
※12 イコール式を入れることができた

イコール式を入れることができました。
では、この式をおしりまでコピって、フィルタで結果をのぞいてみましょう※13 ※14 ※15

式をコピー
※13 式をコピー
表を全部選択してフィルタ(とちゅうにアキ列があるので注意)
※14 表を全部選択してフィルタ(とちゅうにアキ列があるので注意)
全部trueでした
※15 全部trueでした

フィルタをかけるときは注意しましょう。 ホントはこういうアキのある表はよくないんですが、「最新データ」と「3日前のデータ」を区別するためにあえてこうしています。

さて、注文番号は全部trueでした。 「注文番号が全部true」ということはイコール「商品件数や並び順にズレがない」ということになります。 そのことを踏まえたうえで、「メーカー名」や「商品名」もチェックしてみましょう。
まずは「メーカー名」※16 ※17 ※18

列を挿入し、「最新データ」のメーカー名と「3日前のデータ」のメーカー名を比較
※16 列を挿入し、「最新データ」のメーカー名と「3日前のデータ」のメーカー名を比較
式をコピる
※17 式をコピる
メーカー名も全部trueでした
※18 メーカー名も全部trueでした

「メーカー名」も全部trueでした。 つまり、「差異がない」ってこと。
では続いて、「商品名」※19 ※20 ※21

商品名も、「最新データ」と「3日前のデータ」を比較
※19 商品名も、「最新データ」と「3日前のデータ」を比較
フィルタをのぞくと…、あ、falseがある
※20 フィルタをのぞくと…、あ、falseがある
商品名に差異のある箇所はココ
※21 商品名に差異のある箇所はココ

イコール式の結果がfalseのところが差異あるところです。 「商品名」に差異は3件ありました。
「型番」と「提供価格」も、同様の手順で3日前のデータと差異のある箇所を割り出していけます。

条件付き書式でやってみる

…このやり方でもいいはいいんですよ。 でも、比較用の列を挿入したり、いちいちフィルタをのぞいたり、けっこう手間…。
なので、いよいよ本題の、条件付き書式を使ったやり方をやっていきましょう。
まず、比較用に挿入した列を削除して、元の状態(最新データと3日前のデータが横並びになった状態)に戻してください※22

※7の状態に戻した
※22 ※7の状態に戻した

ハイ。 元に戻しました。
では。 これから条件付き書式を使います。 まず最初に、条件付き書式を設定する範囲を選択します。 選択範囲はA2:E162。 つまり、「最新データ」の表の中身部分です。
選択しましたら、ホーム→条件付き書式と進んでください※23

範囲を選択した後、ホーム→条件付き書式
※23 範囲を選択した後、ホーム→条件付き書式

クリックすると選択肢がでるので、「新しいルール」を選びます※24

新しいルールをつくる
※24 新しいルールをつくる

すると、下↓のような画面になります※25
前々回(其ノ16)では「指定の値に等しい」ってのを使って、「土」だったら青、「日」だったら赤に色を塗ってたのですが、今回は条件付き書式に数式を使います。 なので「数式を使用して、書式設定をするセルを決定」を選択します※26

「数式を使用して、書式設定をするセルを決定」にする
※25 「数式を使用して、書式設定をするセルを決定」にする
ここに、数式を設定する
※26 ここに、数式を設定する

「次の数式を満たす場合に値を書式設定」という項目がありますね。 ここに数式を入れていきます。
でね、今回、隣の「3日前のデータ」とイコールのところをグレーに塗りつぶしたいんですよ。
だから、入れる式はイコール式です。
同じ行の同じ項目、メーカー名ならメーカー名、商品名なら商品名を、2つの表のあいだで比較したい。
なのでまず、=((イコール かっこ)と入れてください。
そいで、選択範囲の一番左上、A2セルを選択します※27

=(A2=G2)としたいので、A2を選択
※27 =(A2=G2)としたいので、A2を選択

んで、もういっちょ=(イコール)を入れたら、今度は「3日前のデータ」の同じ場所、すなわちG2を選択します※28
選択できたら)。 かっこを閉じます。

比較先はG2セル
※28 比較先はG2セル

式を入れようとして画面をスクロールさせると、条件付き書式のウィンドウが消えちゃうことがよくあるんですよ。 その場合、画面下のタスクバーのところのアイコンをクリックしてやると復活します(注)ので、「消えた!」と焦ったりしなくて大丈夫です。

注 消えても復活できる
注 消えても復活できる

ハイ、ではさて。
これで式は入れました。
続いてビジュアルを選びます。
右下の「書式」をクリック※29

書式を選択
※29 書式を選択

「セルの書式設定」の画面になるので、上のタブから「塗りつぶし」を選びます※30
で、もしイコールだったらグレー塗りにしたいので、塗りの色にグレーを選択します※31
あんまり濃いグレーだと目にキツすぎるから、上から3つ目ぐらいがいいかな。
色を選んだら「OK」へ。

塗りつぶしの色選択へ
※30 塗りつぶしの色選択へ
グレーで塗りつぶすことにする
※31 グレーで塗りつぶすことにする

塗りの色も設定できました。
そしたら「OK」へ※32
これで設定が完了しました。 どうやら色が塗られてるようなんだけど…※33

条件式と書式を設定できた
※32 条件式と書式を設定できた
これでOKなはず、…なんだけど…?
※33 これでOKなはず、…なんだけど…?

あれ? 全部グレーだぞ? おかしいな…。 さっき調べたときには差異ある箇所があったのに…。
おしりまで見てみても…、やっぱり全部グレーです。

 ・
 ・
…これはですね、…実は、式が絶対参照になっちゃってるからなんです。 ※32を見てください。 式が=($A$2=$G$2)となっちゃってますね。 これだと、一生A2セルとG2セルを比較しちゃうから、もしそれらがイコールなら選択範囲は全部グレーになっちゃう
なので、これは、失敗。
一旦解除しましょう。
ホーム→条件付き書式から、ルールのクリア→シート全体からルールをクリアを選びます※34。 すると、さっきの条件付き書式がクリアされ、プレーンな元の状態に戻ります※35

シート全体からルールをクリアで一旦解除する
※34 シート全体からルールをクリアで一旦解除する
元に戻った
※35 元に戻った

では、もう一度条件付き書式を入れていきましょう。
範囲をきちんと選択してやった上で、条件付き書式→新しいルールへ進みます※36

もう一度条件付き書式
※36 もう一度条件付き書式

「数式を使用して~」を選択し、イコール式を入れるのですが、ここで単純にA2セルを選択すると絶対参照になってしまいます※37。 なので、F4キーを3回押して、$ドルマークなしの状態にしてやりましょう※38

式を入れる際にセル選択すると、絶対参照になってしまう
※37 式を入れる際にセル選択すると、絶対参照になってしまう
なので、F4キーで相対参照に戻す
※38 なので、F4キーで相対参照に戻す

次も同様です。 F4キーで$ドルなしにしてやりましょう※39

G2もドルなしに
※39 G2もドルなしに

これで条件式は完ぺきです。
あとは、グレー塗りを設定してやれば…※40
ほらっ!※41

再度書式を設定 すると…
※40 再度書式を設定 すると…
イコール式がtrueのところはグレーに、falseのところは白ヌキに
※41 イコール式がtrueのところはグレーに、falseのところは白ヌキに

「商品名」の上から5行目、「上質方眼紙(1㎜方眼) B4ヨコ 75g/㎡」と「70g/㎡」で差異があるのですが、そこはちゃあんと白ヌキになっています。
条件付き書式は、条件式、今回のケースだとイコール式がそれなのですが、それがtrueの場合の書式を設定する機能です。
だから逆に、式がfalseだと何も起こらない。
だから、知りたいところが白ヌキになる、というわけなんです。
ここまで、ガッテンしていただけましたでしょうか。

件数が違う場合

…もう1コやってみましょうか。
もう1コデータがあるので、ダウンロードお願いします。

開くとこんな↓感じで、さっきとほぼ同じなんですけど。 シートも2枚あるし※42

kiso18_datahikaku_2
※42 kiso18_datahikaku_2

で、コイツも同様、「最新データ」と「3日前のデータ」の差分を割り出したい。
では、やってみましょう。

まず、さきほどと同様、準備として「3日前のデータ」をとなりにコピります※43
なんだけど…。

3日前のデータをとなりにもってきて、ヘッダーの色を変えた
※43 3日前のデータをとなりにもってきて、ヘッダーの色を変えた

もってきた。
…ですが、…コレね、リストのおしりを見てもらえるとわかるんですけど、ズレてるんです※44。 1件足りないんです、「3日前のデータ」の方が。

おしりがズレてる 1件足りない
※44 おしりがズレてる 1件足りない

困りましたね…。
さて、どうしましょうか。

2つのリストは並び順は一緒のようです。 でも、どこかとちゅうで1件足りなくて、そこからズレてしまってる…。
こういうとき、どうしましょうか。

とりあえず、さきほどと同様、条件付き書式を設定してみましょう。 やってみてうまくいかなくても、何かわかるかもしれないし。
なので、さっきと同様に、条件付き書式を設定してみてください※45 ※46 ※47

「最新データ」の範囲を選択して…
※45 「最新データ」の範囲を選択して…
イコール式をちゃんと相対参照で設定すると… あ、グレー塗りの設定も忘れないでね
※46 イコール式をちゃんと相対参照で設定すると… あ、グレー塗りの設定も忘れないでね
できた
※47 できた

いちおうは設定できました。
やり方はおぼえたかな?

でもね、このリスト、おしりの方まで見ていくと、白多めのところがあって※48

注文番号がココからズレてる
※48 注文番号がココからズレてる

146行目、「注文番号」の切れ目のところ、ココをよく見ると、ここから1件データがズレてるんですよ。 つまり、「3日前のデータ」には注文番号「XH4198」がいなくて、そのせいで1件ズレてる、というワケなんです。 逆に言えば、「最新データ」で「XH4198」が新規に追加された、ってことなんですけど。

でね、逆に言えばこれで、ズレてる箇所の割り出しができた。
だから、対策としては、隣にもってきた「3日前のデータ」を調節してあげればよいんですよ。 つまり、「3日前のデータ」に、1件分挿入する
ちょっと、やってみましょう。
まず、「3日前のデータ」のズレてるところ、G146:K146を選択し、右クリック→挿入を選択※49
選択範囲は1行まるまるじゃないですよ。 「3日前のデータ」の部分だけですからね。 1行まるまる挿入だとこれからやる行程の意味がなくなっちゃいますので。

3日前のデータのズレはじめのところで、右クリック→挿入
※49 3日前のデータのズレはじめのところで、右クリック→挿入

右クリック→挿入にすると、こういう↓画面がでるので、下方向にシフトにします※50。 すると、「3日前のデータ」のところだけが下にズレてくれます※51

下方向にシフトする
※50 下方向にシフトする
3日前のデータのところだけ、1件分追加された
※51 3日前のデータのところだけ、1件分追加された

できました?
こうすると、おしりが揃うんですよ※52

1件分調整されて、おしりが揃った
※52 1件分調整されて、おしりが揃った

なんとか件数は揃いました。
そうしたら、一度さきほど設定した条件付き書式を解除して、あらためて条件付き書式を入れ直してあげてください※53 ※54 ※55。 そうすれば、イイ感じになりますので。

さっきの条件付き書式を解除する シート全体の方ですよ
※53 さっきの条件付き書式を解除する シート全体の方ですよ
再度条件付き書式を設定し直す
※54 再度条件付き書式を設定し直す
できた 新規追加レコードのところはまるまる白ヌキになる
※55 できた 新規追加レコードのところはまるまる白ヌキになる

これでなんとか辻褄を合わせることができました。
新規追加された「XH4198」のところはまるまる白ヌキで出ますので、わかりやすいですよね。

と、いうことで、今回はここまで。
やり方はいろいろあると思うのですが、条件付き書式を使うやり方だと視認性が高くて、Excel慣れしてない人にも見た目にわかりやすいと思うんですよ。 なので、紹介してみました。
次回は「並び順がちがう」場合です。 ではでは。

Copyright(C)森田表計算