其ノ14 …ところで、「其ノ2」って何の意味があったの?
vlookupの使い方って、もう覚えていただけましたでしょうか。
vlookupって、2つのExcelを合体するときに使うんですよ。
例えば、片方のExcelには「会社名」はあるけど、「会社住所」がない。
だけど、もう片方のExcelには「会社住所」が載っている。
そういうとき、例えば「会社ID」みたいな情報を特定できる要素があれば、
「会社住所」を引っ張ってこれるんです、vlookupを使って※1。
なので、vlookupって便利だよね、ってトコまでが、これまでのおさらい。
ですが、vlookupを使う上で気を付けてほしい点が1点。
…って、過去vlookupの注意点ばっかり挙げてきているので、
「vlookupってめんどくさいヤツなのかな~」とか思う方もいらっしゃるかもしれませんが、
vlookupが役立つ関数であることは間違いありません。
ただ、コイツを100%使いこなすにはやっぱりコツがあるので、
それについてお話をしたいと思います。
というわけで、下↓からサンプルデータをダウンロードしてください。
コイツを開くと、シートが2枚あります。
シート1「売上データ」はこんな感じです※2。
これの右端の列「会社住所」を、シート2「会社情報テーブル」からもってきてほしい、というのがミッション。
で、シート2はどんなものかというと、こんなふうに↓なっています※3。
…会社ID「187」が2つありますね。いやな予感がします。
が、とりあえずこのままの状態で、会社IDを軸にして、
「会社住所」を引っ張ってきてみてください。
すると、こう↓なります※4。
「大一番ソフト」の住所が「ウルケミ」と同じになってしまいました。 「大一番ソフト」は大阪のはずなのに…。
実は、vlookupは、2コ目の引数(検索範囲)で指定した範囲を上から検索して、
最初にぶつかった情報をもってくる、という特性を持っています。
だから、「187」が検索値である以上、永遠に「東京都渋谷区~」の住所しか持ってこないんです。
つまり、データ元の方でダブっている情報は、上側しか有効じゃない。
でね、「こういうとき、どうしたらいいの?」って質問をネット上でされる方、けっこういるみたいです。 つまり、元データにダブリがあるままvlookupをするにはどうしたらよいか、というもの。 そして、それに対して、複雑な関数を駆使して回答してくださる方もいるみたいです。
他方、今回のサンプルデータの場合に話を限りますと、現状のママでも、
「会社ID」じゃなくて「会社名」の方でvlookupかければ、狙った結果が得られるでしょう。
また、仮にデータ量がもっと多かったとしても、
会社IDと会社名を結合した文字列を作ってそれで作業すれば、
もしかしたらうまくいく、かもしれません。
…けどね、「そもそも」ですよ?
…そもそも、「会社ID」がダブってるのがまずもっておかしいんですよ。
「会社ID」っていうのは、会社情報を特定するためのキーとなる番号であるはずです。
だから、ユニークなものでなければならないんだけど、この表ではそうなっていない。
つまり、この表には欠陥がある。
欠陥のある表で仕事をしたところで、良い結果が得られるわけがありません。スタートからダメなのですから。
例えて言うなら、4つあるタイヤの1コが外れちゃった自動車、そんな感じです。
ここで考えるべきは、「残った3つのタイヤで、どうやったらうまく走れるか」でしょうか?
…うーん、「3つのタイヤで切り抜けなけりゃならない」事態も、現実には、あるでしょう。
ですが、ファーストチョイスは「タイヤを直す」であるはずです。あるべき、なんです。
だから、データの重複を解消する、あるいは差異のある箇所を割り出す(そして最終的に解消する)、という作業が必要になるんです。
つまり、vlookupの下準備として。
このために、其ノ2や其ノ4の練習をしてもらったんです。
データって、2次利用、3次利用しますよね※5。
その際、元となるデータに欠陥があると、その後の作業に悪影響を及ぼします。
だから、元データは一意でなければならない、
つまり、ひとつのIDに対してひとつの情報、というかたちに(「ID」という名称でなくても、それに準ずるものがあるはずですよね)固まっていなければならない。
こういう考え方を、「データベース」と言います。
こういう話をすると、
「Excelはデータベースソフトではない。表計算ソフト」なんてツッコミをなさる方もいて、
…ハイ、その通りです。
ですが、実際には簡易データベースとして利用されているケースも多いです。
いろんな用途に使えちゃいますからね、Excel。
ホラ、単なる方眼紙として使われているの、見たことありますよね?(アレ見ると残念な気持ちになりますが…)
それに、vlookupを使いこなす上で、データベース的なものの考え方は、必要になるかと思いまして。
今回のように、「187」が2コあってそれぞれに違う情報が紐づいているような場合、
本来であれば、どちらかに新しいIDが振り直されるのが筋です。
であれば、IDを振り直すためにも、問題箇所の検出はあらかじめやっておきたい。
伝統工芸の世界に、「道具が仕事をしてくれる」という言葉があります。
良い制作物を作る道は、仕事道具を揃える時点から始まっていて、
道具の質が悪ければ、どんなに技術があっても、良い制作物はできないでしょう。
他方、良い道具を準備できたならば、その段階で、良い制作物が出来る道はおのずから開かれている…、というような意味です。
Excel仕事も同じです。
「vlookup関数を入れる」というのは、作業上の一工程にすぎません。
その手前の段階で元となるデータの整備ができていなければ、vlookupで得られる成果も中途半端なものになってしまいます。
だから、「その後の工程に耐えるに十分なデータを準備する」という意味で、元データの精査というのが、まずもって必要になります。
精査の仕方というのは、…まあ人によっていろいろなやり方があると思いますが、僕が最低限やるのは、
1.「ID」など、vlookupの軸となるデータに重複がないかどうか調べる
2.もし重複があるのであれば、それらに差異がないかどうか、異なる情報が紐づいていないか調べる
です。つまり「其ノ2」とか「其ノ4」でやったことですね。
「其ノ2」「其ノ4」でやったことって、このときに活きてくるんです。
ということで、其ノ2とか其ノ4でやったことも、それなりに意味はあったんだよ、というお話でした。 今回はちょっとカタイ話でしたね。 「いまいちピンとこなかった」という人も、 とりあえず、「vlookupは上側の情報しかもってこれない」ということは覚えておいてください。