其ノ18 変わったところはどこ? 前編
データAとデータBを比較したい、というケースはしばしばあると思います。
例えば、3日前にExcelが送られてきたんだけど、今日になって最新のリストが送られてきた。
しかし、3日前のリストと最新のリスト、どこが変更されたかわからない、というとき。
ちょっと例として、下記のデータをダウンロードしてみてください。
開くとこんな↓※1 ※2です。
1つ目のシート「最新データ」というのが、本日送られてきたデータです。
で、シート2が「3日前のデータ」。
そいでね、コイツらのどこが変わったのかを知りたい、と。
…これね、例えば入力した人がいじったところ(=変更されたセル)に色を塗ったりしてくれればこちらも全然楽なんだけど、…まあ2つのシートを見比べてもらえばわかるように、 そんなふうにはなってないわけで…。
なので、差異ある箇所を、こちらで割り出してやらなければなりません。
では、どうやったら割り出せるでしょうか。
ちょっと考えてみてください。
あ!
そうそう、表内の「注文番号」はユニークな記号、つまり商品ひとつひとつに振られ商品を特定できる記号、ですよ。
これヒント。
この作業の最終形(目的地の提示)
…さて。 漠然と「ちょっと考えてみてください」なんて言われても、何をやったらいいものかちょっと困っちゃいますよね。 なので、いろんなやり方があるとは思いますが、僕のイメージする最終形を見せておきたいと思います。 コレ↓です※3。
データが横並びになっていて、左が最新リストです。
で、比較の結果、変更のあったセルだけ白ヌキになる(=3日前と同じセルはグレーに塗る)というふうにしています。
こうすると、変更のあったところだけが白ヌキで浮き上がって見えるので、視認性がありますよね。
なので、ココを目指したいと思います。
使う道具は、条件付き書式。
でね、今回の作業は、「件数が同じかどうか」「並び順が同じかどうか」で、準備することが少しずつ増えていくんですよ。
まずは最もシンプルな、「件数も同じ、並び順も同じ」場合です。
「並び順がちがう」場合は次回、後編でやりますので、お待ちいただければ。
件数も同じ、並び順も同じ
さて。
ではまず、一番シンプルな「件数も同じ、並び順も同じ」場合。
この2つのシートは、どちらも件数は161件(162行)、並び順も注文番号昇順で同じです※4。
あらためてご確認ください。
なのでね、比較する一番シンプルな方法は、隣にならべちゃうことなんですよ。 だからね、「3日前のデータ」を、「最新データ」のとなりにコピって貼っちゃう※5 ※6。
ctrl + Aで全セル選択して貼り付けようとしてもできないので注意(ctrl + Aでコピって貼れる先はA1セルだけです)。
なので、全列選択でコピーしましょう。
で、隣合わせになった、と。
ついでに、区別のためにヘッダーの色でも変えておきましょうか※7。
ハイ、これで準備完了。
では、比較をしていきましょう。
でね、セル同士を比較するときの基本はイコール式です。
なのでまず、条件付き書式を使う前に、イコール式を使って比較してみましょう。
ではでは、まず最初に、「注文番号」列を比較しましょう※8 ※9 ※10。
ココは商品情報の基本となる部分なので、全部イコールであってほしいところ。
おおっと、セルの書式が文字列でした。 なので、書式を標準に直しましょう。 そうすれば…※11 ※12。
イコール式を入れることができました。
では、この式をおしりまでコピって、フィルタで結果をのぞいてみましょう※13 ※14 ※15。
フィルタをかけるときは注意しましょう。
ホントはこういうアキのある表はよくないんですが、「最新データ」と「3日前のデータ」を区別するためにあえてこうしています。
さて、注文番号は全部trueでした。
「注文番号が全部true」ということはイコール「商品件数や並び順にズレがない」ということになります。
そのことを踏まえたうえで、「メーカー名」や「商品名」もチェックしてみましょう。
まずは「メーカー名」※16 ※17 ※18。
「メーカー名」も全部trueでした。
つまり、「差異がない」ってこと。
では続いて、「商品名」※19 ※20 ※21。
イコール式の結果がfalseのところが差異あるところです。
「商品名」に差異は3件ありました。
「型番」と「提供価格」も、同様の手順で3日前のデータと差異のある箇所を割り出していけます。
条件付き書式でやってみる
…このやり方でもいいはいいんですよ。
でも、比較用の列を挿入したり、いちいちフィルタをのぞいたり、けっこう手間…。
なので、いよいよ本題の、条件付き書式を使ったやり方をやっていきましょう。
まず、比較用に挿入した列を削除して、元の状態(最新データと3日前のデータが横並びになった状態)に戻してください※22。
ハイ。
元に戻しました。
では。
これから条件付き書式を使います。
まず最初に、条件付き書式を設定する範囲を選択します。
選択範囲はA2:E162。
つまり、「最新データ」の表の中身部分です。
選択しましたら、ホーム→条件付き書式と進んでください※23。
クリックすると選択肢がでるので、「新しいルール」を選びます※24。
すると、下↓のような画面になります※25。
前々回(其ノ16)では「指定の値に等しい」ってのを使って、「土」だったら青、「日」だったら赤に色を塗ってたのですが、今回は条件付き書式に数式を使います。
なので「数式を使用して、書式設定をするセルを決定」を選択します※26。
「次の数式を満たす場合に値を書式設定」という項目がありますね。
ここに数式を入れていきます。
でね、今回、隣の「3日前のデータ」とイコールのところをグレーに塗りつぶしたいんですよ。
だから、入れる式はイコール式です。
同じ行の同じ項目、メーカー名ならメーカー名、商品名なら商品名を、2つの表のあいだで比較したい。
なのでまず、=((イコール かっこ)と入れてください。
そいで、選択範囲の一番左上、A2セルを選択します※27。
んで、もういっちょ=(イコール)を入れたら、今度は「3日前のデータ」の同じ場所、すなわちG2を選択します※28。
選択できたら)。
かっこを閉じます。
式を入れようとして画面をスクロールさせると、条件付き書式のウィンドウが消えちゃうことがよくあるんですよ。 その場合、画面下のタスクバーのところのアイコンをクリックしてやると復活します(注)ので、「消えた!」と焦ったりしなくて大丈夫です。
ハイ、ではさて。
これで式は入れました。
続いてビジュアルを選びます。
右下の「書式」をクリック※29。
「セルの書式設定」の画面になるので、上のタブから「塗りつぶし」を選びます※30。
で、もしイコールだったらグレー塗りにしたいので、塗りの色にグレーを選択します※31。
あんまり濃いグレーだと目にキツすぎるから、上から3つ目ぐらいがいいかな。
色を選んだら「OK」へ。
塗りの色も設定できました。
そしたら「OK」へ※32。
これで設定が完了しました。
どうやら色が塗られてるようなんだけど…※33。
あれ?
全部グレーだぞ?
おかしいな…。
さっき調べたときには差異ある箇所があったのに…。
おしりまで見てみても…、やっぱり全部グレーです。
・
・
…これはですね、…実は、式が絶対参照になっちゃってるからなんです。
※32を見てください。
式が=($A$2=$G$2)となっちゃってますね。
これだと、一生A2セルとG2セルを比較しちゃうから、もしそれらがイコールなら選択範囲は全部グレーになっちゃう。
なので、これは、失敗。
一旦解除しましょう。
ホーム→条件付き書式から、ルールのクリア→シート全体からルールをクリアを選びます※34。
すると、さっきの条件付き書式がクリアされ、プレーンな元の状態に戻ります※35。
では、もう一度条件付き書式を入れていきましょう。
範囲をきちんと選択してやった上で、条件付き書式→新しいルールへ進みます※36。
「数式を使用して~」を選択し、イコール式を入れるのですが、ここで単純にA2セルを選択すると絶対参照になってしまいます※37。 なので、F4キーを3回押して、$ドルマークなしの状態にしてやりましょう※38。
次も同様です。 F4キーで$ドルなしにしてやりましょう※39。
これで条件式は完ぺきです。
あとは、グレー塗りを設定してやれば…※40。
ほらっ!※41
「商品名」の上から5行目、「上質方眼紙(1㎜方眼) B4ヨコ 75g/㎡」と「70g/㎡」で差異があるのですが、そこはちゃあんと白ヌキになっています。
条件付き書式は、条件式、今回のケースだとイコール式がそれなのですが、それがtrueの場合の書式を設定する機能です。
だから逆に、式がfalseだと何も起こらない。
だから、知りたいところが白ヌキになる、というわけなんです。
ここまで、ガッテンしていただけましたでしょうか。
件数が違う場合
…もう1コやってみましょうか。
もう1コデータがあるので、ダウンロードお願いします。
開くとこんな↓感じで、さっきとほぼ同じなんですけど。 シートも2枚あるし※42。
で、コイツも同様、「最新データ」と「3日前のデータ」の差分を割り出したい。
では、やってみましょう。
まず、さきほどと同様、準備として「3日前のデータ」をとなりにコピります※43。
なんだけど…。
もってきた。
…ですが、…コレね、リストのおしりを見てもらえるとわかるんですけど、ズレてるんです※44。
1件足りないんです、「3日前のデータ」の方が。
困りましたね…。
さて、どうしましょうか。
2つのリストは並び順は一緒のようです。
でも、どこかとちゅうで1件足りなくて、そこからズレてしまってる…。
こういうとき、どうしましょうか。
とりあえず、さきほどと同様、条件付き書式を設定してみましょう。
やってみてうまくいかなくても、何かわかるかもしれないし。
なので、さっきと同様に、条件付き書式を設定してみてください※45 ※46 ※47。
いちおうは設定できました。
やり方はおぼえたかな?
でもね、このリスト、おしりの方まで見ていくと、白多めのところがあって※48。
146行目、「注文番号」の切れ目のところ、ココをよく見ると、ここから1件データがズレてるんですよ。
つまり、「3日前のデータ」には注文番号「XH4198」がいなくて、そのせいで1件ズレてる、というワケなんです。
逆に言えば、「最新データ」で「XH4198」が新規に追加された、ってことなんですけど。
でね、逆に言えばこれで、ズレてる箇所の割り出しができた。
だから、対策としては、隣にもってきた「3日前のデータ」を調節してあげればよいんですよ。
つまり、「3日前のデータ」に、1件分挿入する。
ちょっと、やってみましょう。
まず、「3日前のデータ」のズレてるところ、G146:K146を選択し、右クリック→挿入を選択※49。
選択範囲は1行まるまるじゃないですよ。
「3日前のデータ」の部分だけですからね。
1行まるまる挿入だとこれからやる行程の意味がなくなっちゃいますので。
右クリック→挿入にすると、こういう↓画面がでるので、下方向にシフトにします※50。 すると、「3日前のデータ」のところだけが下にズレてくれます※51。
できました?
こうすると、おしりが揃うんですよ※52。
なんとか件数は揃いました。
そうしたら、一度さきほど設定した条件付き書式を解除して、あらためて条件付き書式を入れ直してあげてください※53 ※54 ※55。
そうすれば、イイ感じになりますので。
これでなんとか辻褄を合わせることができました。
新規追加された「XH4198」のところはまるまる白ヌキで出ますので、わかりやすいですよね。
と、いうことで、今回はここまで。
やり方はいろいろあると思うのですが、条件付き書式を使うやり方だと視認性が高くて、Excel慣れしてない人にも見た目にわかりやすいと思うんですよ。
なので、紹介してみました。
次回は「並び順がちがう」場合です。
ではでは。