本しゃぶり

骨しゃぶりの本と何かを繋げるブログ

なぜVLOOKUPを使えるとExcel中級者なのか

Excel中級者の定義は、VLOOKUPを使えることである。
この力を手にした時、人は神を追放する。

Excel中級者

Excelが使える」とはどの程度のことを指すのか。企業の募集などで「Excelが使える人」と言う場合、それはExcelの達人を求めているわけではない。かと言って使える関数がSUMAVERAGE程度の、初心者を指すわけでもない。ここで必要とされるのは「Excel中級者」である。

求められているのが「Excel中級者」ならば話は早い。VLOOKUPが使えればそれでいいのだから。

f:id:honeshabri:20170604141638p:plain

この定義について、今では異論のある人はほとんどいない。しかし、なぜVLOOKUPが使えたら中級者*1と言えるのか分かっている人は少ない。だからこの記事でそれを解説したいと思う。

VLOOKUPとは

表や範囲から行ごとに数値や文字列などを検索するには、検索/行列関数の 1 つ、VLOOKUP を使用します。たとえば、部品番号によって自動車部品の価格を検索できます。
VLOOKUP 関数 - Office サポート

ここから始めないといけない人は間違いなくExcel初心者である。一刻も早くVLOOKUPを覚えて中級者になってもらいたい。とりあえず公式の説明を読み、実践してもらいたい。

VLOOKUP: 用途と使い方 - Excel

VLOOKUPを使えると何が起こるか

VLOOKUPが使えるようになると、ユーザーには様々な変化が起こる。これが中級者と定義される所以である。そこにはどのような変化とメカニズムがあるのか。一つ一つ説明していきたい。

なお、ここから先はVLOOKUPを知っていること前提で書く。

電卓からの脱却

まず第一に文字列を扱えるようになる、ということである。VLOOKUPを使えないのが初心者というものは、Excelの関数を「凄い電卓」程度にしか思っていない。つまり「計算するためのもの」ということだ。なので取り扱う対象は数字のみである。

初心者が使える関数として有名なSUMAVERAGEはまさに電卓的な関数である*2。電卓よりも速く簡単に計算を行うことができる。次に初心者がよく使う関数としてはMAXMINがある。これらは特定の値を探してくるという点ではVLOOKUPに近いが、初心者視点ではAVERAGEの仲間なので、実質電卓関数である。

対してVLOOKUPはその対象が数字だけでなく、文字列だろうと見つけ出せる。これを知った時、関数で対処できるのは数字だけでなく、文字列に対しても使えるものがあることを学ぶ。以前は文字列を対象とする仕事については一つ一つ手作業で行っていたが、これからは関数を使おうとするようになるのだ。

複数の引数を見て怯えない

ここでもう一度VLOOKUPの入力画面を見てみよう。

f:id:honeshabri:20170604141638p:plain

知っての通りVLOOKUP引数を四つ使用するMicrosoftのページにはこのように書かれている。

その最も簡単な形式で、VLOOKUP 関数は次のようになります。
= VLOOKUP (検索する値, 値を検索する範囲, 戻り値を含む範囲の列の番号, 完全一致か近似一致か - 0/FALSE か 1/TRUE で指定)。
VLOOKUP 関数 - Office サポート

初心者は引数が一つの関数しか使わない*3。なので引数が複数あり、その目的も個別にある関数の説明を読むと、思考が止まるのである。それがVLOOKUPを使えるようになると、複数の引数があろうとも怯むことが無くなるのだ。

よくVLOOKUPの話を出すと「INDEXMATCHの方がいい」と言い出す人がいる。Excel中級者に対してならそれは正しい。しかし、初心者に対して言うのであれば、それは罪である。複数の引数が必要な関数を組み合わせろというのは初心者にとって酷な要求であり、もはや死の宣告に等しい。

神に殺意を覚える

上二つの変化についてはユーザー本人だけに影響のある話であったが、今から説明することについては違う。仕事などでファイルを共有する際に、トラブルの原因となるかもしれないからだ。それは表のデザインである。

これについては実例を出したほうが分かりやすいだろう。

民数記』の2章でモーセとアロンにヤハウェが部隊編成の命令をする場面がある。

すなわち、日の出る方、東に宿営するものは、ユダの宿営の旗につく者であって、その部隊にしたがって宿営し、アミナダブの子ナションが、ユダの子たちのつかさとなるであろう。
その部隊、すなわち、数えられた者は七万四千六百人である。
そのかたわらに宿営する者はイッサカルの部族で、ツアルの子ネタニエルが、イッサカルの子たちのつかさとなるであろう。
その部隊、すなわち、数えられた者は五万四千四百人である。
次はゼブルンの部族で、ヘロンの子エリアブが、ゼブルンの子たちのつかさとなるであろう。
その部隊、すなわち、数えられた者は五万七千四百人である。
ユダの宿営の、その部隊にしたがって数えられた者は、合わせて十八万六千四百人である。これらの者は、まっ先に進まなければならない。
口語訳旧約聖書 民数記 第2章 3~9節

さっぱり全体像が見えてこない。この先もダラダラとした口頭での説明が続く。表で説明しようという気が無いことから、神はExcelを使えないに違いない。そんな神にExcelを教えたらどうなるか。きっとこんな感じになるだろう。

f:id:honeshabri:20170604164744j:plain

いわゆる「神エクセル」である。印刷した時の見栄えを重視した結果がこれだ。

全体像は分かるようになった。しかし印刷物だけならまだしも、元データからこのようなデザインになっていたら非常に困る。セルの結合がされているために、データの再利用性が低いからだ。きっと思い当たる節がある人も多いだろう。

そんな時、もしモーセVLOOKUPをマスターしていたらどうなるか。その使えなさから、例えヤハウェから渡されたものであろうと投げ捨てたくなるに決まっている。

Tissot Moses Destroys the Tables of the Ten Commandments.jpg
By James Tissot - http://www.thejewishmuseum.org/onlinecollection/object_collection.php?objectid=26378&artistlist=1&an=James Jacques Joseph Tissot, Public Domain, Link

そしてExcel中級者のモーセヤハウェに求めるのはこのような表なのだ。

f:id:honeshabri:20170604171052j:plain

これならば部族の名前からVLOOKUPで人数や宿営地を引っ張ってくることができる。また、ヤハウェはご丁寧に宿営地ごとの合計人数を出してくれていたが、この表ならばピボットテーブルを使うことで簡単に出せる。

f:id:honeshabri:20170604171400j:plain

以上のようにVLOOKUPを使える者と使えない者では、作成する表のデザインが異なるのである。そして中級者は初心者の作る再利用性の無い表に対し、時に殺意を覚えるのだ。

ちなみに、紀元前16世紀ごろ*4の人間にVLOOKUPを意識した表を作れというのは、それほど無理な注文ではない。紀元前1800年ごろの古バビロニアでは既に達成している。

Plimpton 322.jpg
By photo author unknown - image copied from http://www.math.ubc.ca/~cass/courses/m446-03/pl322/pl322.html, Public Domain, Link

なので21世紀の現代に、このような表を作れないのは恥ずかしいと思っていたほうがいい。

終わりに

これでVLOOKUPを使えればExcel中級者と言えることが納得できただろう。VLOOKUPを使うようなると人は意識が変化し、より先のことを考えるようになるのだ。

もしかしたら今でもまだ、腑に落ちない人がいるかもしれない。中級者と言うならば、あの関数も使えなければ話にならない、と。しかし安心して欲しい。VLOOKUPを使える人は他の関数や機能についても学べば理解できる。そして何より、関数を使うことで仕事がグッと楽になることを知っているのだ。必要な関数ならば近い将来、自ら調べ習得していることだろう。そうなると中級者と呼べるのは、もはや時間の問題だ。ならばVLOOKUPを使える時点で中級者と呼んでいいのではないだろうか。

Excel系の記事

聖書に興味が出てきたら

*1:ここで言う「使える」とは、完全一致と近似一致を使い分けることができるレベルである。表をソートしておかないとVLOOKUPは使えないと考えている人は初心者。

*2:ただしPRODUCTは知らない。

*3:AVERAGEは最大で255個まで指定できるが、その目的は同じであるため実質一つである。

*4:紀元前13世紀かもしれない。