VLOOKUP関数はExcelを代表する関数と呼ばれています。またVLOOKUP関数を攻略することはExcelを攻略することとも言われています。しかし、なぜVLOOKUP関数が必要なのか、どうしてそんなにExcelにとって大事だと言われるのか、それは日本のビジネスのスタイルと密接に繋がっているからです。
VLOOKUP関数の使い方はわかっても、なぜ使うのか、どんな理由で使うのか、というのはあまりにも情報が少なすぎるので、実際に使おうとしても使えなくなるかもしれません。VLOOKP関数を使う前の予備知識として知っておいてください。
この記事ではVLOOKUP関数の使い方には触れませんので、考え方だけを整理してください。
パソコンを使う上での基本の「情報とはなにか」「情報をExcelの表で使う場合」というように段階をおって説明していきます。VLOOKUP関数以外にもExcelとして、パソコンとして大事な考え方を解説します。ぜひ、最後までお読み下さい。
情報
情報というのは、あらゆる物事がどうなっているかを指します。
あやふやな情報
次の文章でイメージしてみましょう。
「佐藤さんが今日の9時に激ウマバーガーショップで1,000円のモーニングセットと、250円のコーヒーをドライブスルーで買ってきた」
どんなイメージをしましたか?
「佐藤さん」という人物[おそらく佐藤嘉浩というExcelの魔法使いの男性]が、「今日の9時[おそらく午前]」という時間に「激ウマバーガーショップ」という[おそらくファストフードのハンバーガーショップ]お店で「モーニングセット(値段1,000円)[おそらくハンバーガーとポテトと飲み物のセット]」と「コーヒー(値段250円)[おそらくホット]」の商品を、「[おそらく車で行って]ドライブスルーの窓口で」購入した、ということになります。
この太字の「おそらく」というのは、文章に明確に書いていないものの、予想できるものです。
9時の時間に関しては商品が「モーニングセット」なので文脈から午前というのは確定します。
しかし、他の情報についてはどうでしょうか。
登場する「佐藤さん」は「男性」で確定なのでしょうか?この文章からは「佐藤さん」という人が予測できません。それどころか「佐藤さん」は通称で、苗字が「佐藤さん」という名前の人かもわかりません。
「激ウマバーガーショップ」は実は高級店ということは否定しきれません。店名と、モーニングが1,000円ということなので、ファストフード店ではないか、という予測ができるだけです。
「車」で行ったのかもはっきりしません。ドライブスルーの窓口で買ったのでしょう。でもバイクや自転車でもドライブスルーは使えます。歩行者でも買えるのかもしれません。
このように情報は、想定することができるところは省いて伝えられる可能性があります。そしてその省かれた部分は、確定的ではありません。
確定できる情報
次の日本語も見てみましょう。
「マイナンバーがXXXXXXの運転免許書番号がXXXXXXの電話番号XXXXXXXの携帯電話の使用者である昨日リンゴを買った佐藤さんが、会社法人等番号がXXXXXで法人番号がXXXXXの激ウマバーガーショップで商品を購入した」
ここでわかるのは、「佐藤さん」という登場人物がいること。佐藤さんはマイナンバーがXXXXXX、運転免許書番号がXXXXXX、XXXXXXXの携帯電話の使用者であること、昨日リンゴを購入したことが説明されています。激ウマバーガーショップは、会社法人等番号がXXXXXで法人番号がXXXXXということが説明されています。佐藤さんは激ウマバーガーショップで商品を購入したことが説明されています。
この文の情報は初めから見ていくと上記の通りになりますが、要点は、「佐藤さんは激ウマバーガーショップで商品を購入した」ということですので、いささか情報が多すぎる気がします。
マイナンバーがXXXXXX、運転免許書番号がXXXXXX、電話番号XXXXXXXの携帯電話の使用者、という情報はそれぞれ佐藤さん以外にいません。そのうちどれかを指定することで佐藤さんを特定できます。このように重なって言う情報を「冗長」と呼びます。パソコンに記録するデータでは冗長データは記録しないことが鉄則になっています。
「昨日リンゴを買った佐藤さん」は世の中にたくさんいますので、誰か一人を特定できません。「昨日リンゴを買った」「佐藤さん」と情報をバラすと、もっともっとだれかわからなくなります。「昨日リンゴを買った佐藤さん」や「佐藤さん」という名前の情報は、誰が、ということを特定することには使えないのです。
会社法人等番号XXXXX、法人番号がXXXXXはそれぞれ激ウマバーガーショップを特定できますので、どちらかを説明すればいいのです。
「激ウマバーガーショップ」という店名は世の中に同じ会社名が複数存在するケースもあるので、特定することには使えません。
情報を特定して文を作ると、「マイナンバーがXXXXXXの人が会社法人等番号XXXXXで商品を購入した」となります。しかし、これでは読みにくいです。
そこで、私たちは便宜的に「佐藤さんは激ウマバーガーショップで商品を購入した」と伝えるのです。
パソコンは確定された情報で扱っていきます。同じ会社名で違う会社もありますので、その場合は法人番号で記録します。
ただそれだと人間の入力の時に使いにくいので、入力やその情報を見るときには「激ウマバーガーショップ(法人番号XXXXX)」のように表示するように内部で変換する必要があります。
Excelの表になった時
このような情報をExcelに記録する場合はどうするのでしょうか。
Excelもパソコンのひとつですから、情報の記録はあやふやではない、かつ、冗長ではない形で記録します。ではここで悪いケースとして情報の記録を冗長ではない形で表現してみましょう。
10月22日から10月23日まで、マイナンバーABC01から03の3人が、法人番号XYZ97からXYZ99までの会社に対して行ったことを7件記録しています。「行動一覧表」と呼びましょう。
日付 | マイナンバー | 法人番号 | 何をした |
10月22日 | ABC01 | XYZ99 | 商品仕入 |
10月23日 | ABC02 | XYZ98 | 商品販売 |
10月23日 | ABC03 | XYZ99 | 商品仕入 |
10月24日 | ABC02 | XYZ98 | 商品販売 |
10月25日 | ABC03 | XYZ97 | 打ち合わせ |
10月26日 | ABC03 | XYZ99 | 商品仕入 |
10月26日 | ABC01 | XYZ99 | 代金支払 |
冗長データを無くし、確実にそれだと伝えるためのものとして、個人はマイナンバーで、会社は法人番号で記録しています。その2つを見ていくと、中に同じ人、同じ会社がいくつかあるように見えます。
これは当然で、「いつ、だれが、どこに、何をした」というのは1件1件違うわけです。もしかしたら、別の日に同じ人が同じ会社に商品を仕入れた、ということもあります。このように行動に関しては、同じものがいくつも出てきます。
この情報からは、マイナンバー01の人の名前や所属部署はわかりません。法人番号XYZ99の会社名や住所もわかりません。
そこで登場するのが、別表情報です。
別表
別表というのは、マイナンバーや法人番号のように、冗長を無くして確実にそれとわかるデータで記録したものと連動するようにする一覧表です。
今回必要なのは、マイナンバー一覧、法人一覧です。
マイナンバー一覧には、マイナンバーに組み付くもの、例えば個人名、性別、生年月日といったような項目を記載します。法人一覧には法人番号に組み付くもの、会社名、設立日、会社住所、社長名などを記載します。
マイナンバー一覧は次のようになります。
マイナンバー | 氏名 | 性別 | 生年月日 |
ABC01 | 宮沢みどり | 女性 | 2000/1/5 |
ABC02 | 前技港市 | 男性 | 1998/10/22 |
ABC03 | 東原博之 | 男性 | 1995/5/14 |
行動一覧表の1番目のデータは10月22日にマイナンバーABC01の人が行動しています。この人はマイナンバー一覧を見ると、女性の「宮沢みどり」さんで「2000年1月5日」が誕生日というのがわかります。これを7件繰り返せば、行動一覧表の1件ごとに誰が行動したかがわかるのです。
法人一覧は次のようになります。
法人番号 | 会社名 | 設立日 | 会社住所 | 社長名 |
XYZ97 | ユーマニア | 2015/5/4 | 奥羽州市東58 | 桧山駆 |
XYZ98 | ヒットランド | 2021/10/12 | 平泉川市中3 | 杉原亜美 |
XYZ99 | スルーカラー | 1990/6/20 | 牛前澤市上12 | 桜本町優斗 |
行動一覧表の法人番号もこの法人一覧を見ればどこのどの会社かわかります。
VLOOKUP関数
さて、それで行動一覧表の1件1件に、誰が起こした行動か、どこの住所のなんという会社に起こした行動か、実際にメモしながら調べてみましょう。絶対に間違えずに、しかもスピードが速く。
ここでお聞きします。その作業、やりたいですか?
そうなのです。このような「ABC01」は「宮沢みどり」さんというように決まり切ったことは、いちいち調べたくありませんね。
そう、パソコンはこういう決まりきったものを求めるときに自動的に値を求めるのに使うものなのです。
それをExcelで行うのが「VLOOKUP関数」です。
VLOOKUP関数はいくつかの利用法がありますが、その中でも最も使うのは、別の表同士の結合です。
結合というとくっつけるイメージですが、厳密にいえば、他の表から引っ張ってくるという表現の方が正しい気がします。
では今回の場合はどこにVLOOKUP関数を作ればいいか、なのですが、これも間違えやすいです。
今回、知りたいのは、行動一覧表のデータに対する、人の名前、会社名や住所です。行動一覧表に中のデータの正体を求めたいので、行動一覧表に求めます。
では行動一覧表のどこに求めればいいのか、例えば、マイナンバーに対する人の名前を求めるのでマイナンバーの欄に求めようとする場合があります。いけません。マイナンバーのセルには、すでにマイナンバーが入っているので人の名前は入りません。Excelのセルは1つに1つの情報しか入りません。
わかりやすいのはマイナンバーの列の右に1列挿入し、そこにVLOOKUP関数で人の名前を求めます。会社名や住所は法人番号の右に2列挿入して求めましょう。
このように探すのに元になるマイナンバーや法人番号はそのまま残すということが重要です。
まとめ
コンピュータで扱う表は、同じ名前でももしかしたら違う人なのではないか?ということを究極に考えていった結果、名前ではなくその人の個々の番号を使って認識すればいいということになりました。その個々の番号には、その番号に紐付ける形で関連するデータを記録した別表で管理すればよいのです。
もしかしたら皆さんの会社にも「勘定科目番号」というものがあるかもしれません。これは何番がどの勘定科目かを決めた別表があって、出金伝票には勘定科目番号を書くだけで済むようになっています。これも同じような話です。
このようにビジネスではいつの間にか、別表で扱うことになっているものがたくさんあります。それは会社をうまく効率よく運営するための手段でもあるからです。
だから別表をメインの表に引っ張ってくるためにVLOOKUP関数は重要だと言われているのです。
中にはVLOOKUP関数を使わない仕事もあるかもしれません(私がExcelを使い始めた職場では一切必要ありませんでした)。そのような職場でも、この別表に分けるということをするだけで、何かの仕事の効率が上がるかもしれません。
私はVLOOKUP関数を扱うような、別表の文化を知っていることはこれからの社会人の必須スキルだと思っています。