VLOOKUP関数ってどんなもの?
分かりやすく、前回作った表を使って説明するよ。
前回の「かっこいい表の作り方」を知りたい人はそちらを見てね。
この表は、英語研修の参加申込書。
【B2】のコースNo.に決められた数字を入力すると・・・
その右の「コース名」と下の「開催曜日・時間」が自動で表示される。
それを可能にしてくれるのがVLOOKUP関数なんだ。
ただし、自動で表示される部分、いわゆるマスタの用意が必須となる。
基本情報の入ったデータリスト(データベース)
※マスターというと、主人・親方という意味のほうが強い印象になり、
コンピュータ用語ではマスタという言い方をするのが一般的。
今回マスタとして用意したのはこんな表。
これは、となりのSheet2に作った。
これを、申込書入力時に入力するのは手間がかかる。
そこで自動で表示してくれるVLOOKUP関数の登場となる。
そもそもVLOOKUPってどういう意味?
「LOOK UP」は検索するという意味。
直訳すると、垂直に検索するってことになる。
え?じゃあ水平に検索もあるの?って思ったあなたは素晴らしい!
あるんだよね。
それは、HLOOKUP関数というんだ。
そう、「H」は水平(horizontal)のHなんだ。
ちなみに、垂直に検索・・・の検索というのはマスタの中をってことだよ。
VLOOKUP関数のマスタ作成ルール
ここで、意外と知らない事実を。
VLOOKUP関数でマスタの中を検索してくれるのは、なんと一番左の列だけなんだよ。
(※HLOOKUP関数の場合は、マスタの中の一番上の行だけを検索する)
もし、A列に「レベル」B列に「No.」と、AB列が逆になっている表だったら?
教えてExcel!「2」のタイトルは何?
と聞いても、そんなのこのマスタにないよーって返されちゃうってことになる。
逆にした場合、1列目に数字はないからね。
表の一番左の列は検索の元となる内容(No.など)にして作ること。
そしてその数字は下にいくほど大きく(昇順)すること。
下に行くほど大きい数字(昇順)にするというのも重要。
なぜなら、Excelは上から探していって、検索元の数字を超えてしまうとそこで検索するのをやめてしまうからなんだ。
厳密に言うと、近似値で見つけてって指定した場合ね。
そこらへんはこの後で解説するよ。
VLOOKUP関数の内容
検索値:検索の元となる内容(コードや番号)
範 囲:検索先のマスタ全体(絶対不要って行や列は省いて選択OK)
列番号:上の「範囲」で選択した中の左から何列目を表示するのかの数字
(タイトルを表示したければは3列目だから”3”)
検索方法:検索値と完全に一致したものだけを表示するのか、近似値ならOKにするのかの選択
関数は難しく考える人が多いけれど、人に指示したいことををのままExcelに指示すればいいから実はそんなに難しくないんだよ。
タイトルを表示したい場所【C2】を選択してそこにVLOOKUP関数を入れる。
上の【B2】(検索値)のNo.「2」をSheet2のマスタ【A2】~【E11】(範囲)で探して、
見つけたらその中の3(列番号)列目のタイトルを表示してよ。
というものをVLOOKUP関数に当てはめればいい。
つまり・・・
=VLOOKUP(B2,Sheet2!A2:E11,3,0)となる。
ん?最後の”0”ってなんだ?
最後の”0”について説明するよ。ここは、検索方法を入れる場所だね。
VLOOKUP関数の検索方法「近似値」と「完全一致」とは
検索方法とは、Excelがマスタ内を検索する際の方法。
・近似値:
ピッタリの数字がない場合、その近似値でOKとする:TRUE・1・省略 のいずれか
・完全一致:
ピッタリの数字ない場合は表示しない:FALSE・0 のいずれか
まず、近似値と完全一致の違い。
例えば、「5」を見つけてほしかったのに、誤って「55」と連打してしまったら?
近似値を指定していた場合:
マスタの中で一番近い数字「10」のタイトル「ディスカッション・ネゴシエーション」が表示される。
これ、マズイよね?だって、違う結果になっちゃうもの。
完全一致を指定していた場合:
55なんて存在しないから、そんな数字ないよってエラーコードが表示される。
ということで、今回のような内容は完全一致を指定しておかないといけない。
そして、その指定方法がまた謎。
VLOOKUP関数の検索方法「完全一致」はなぜ”FALSE”なのか
”TRUE”は正しい、”FALSE”は偽ってことだよね?
なぜ近似値は正しくて、完全一致は偽(正しくない)のか。
VLOOKUP関数に限らず、関数の( )の中(引数=ヒキスウという)に省略できるものがある。
それは、その関数が基本としている考え方みたいなもの。
省略すると基本の考え方通りの計算をするよってことになる。
VLOOKUP関数でいうと、近似値のほうは省略可になっているから、近似値という方法が基本となっている関数であることがわかる。
そこで、基本通りの近似値でやるならそのままで正しいよってことで”TRUE”、そうじゃないよって意味になる完全一致なら”FALSE”となる。
ただし、そんな入力をするよりも省略しちゃうか”0”って打つほうが早い。
まぁ、直接関数を手打ちしていくと選択できる状態になるからそこで選択してもいいけど。
いずれにしても、自分の中で覚えやすいやり方で選択するのがいいと思う。
VLOOKUP関数のやり方
先に、検索値になる【B2】に”2”と入力しておこう。
では実際に入力していこう。
まずはタイトルの結果を表示したい【C2】にカーソルをおく。
関数などの計算式を入れる時は半角で。
そして最初に”=”(イコール)を入力するよ。
これでExcelは、計算式キターってわかってくれる。
=VLOOKUP(
=VL・・・までと打つとVLOOKUPが選ばれた状態になるのでTabキーを押してもいい。
すると何を入力するのか下に表示されてくる。
”検索値”が太字になっているので検索の元となるセル【B2】をクリックし、
続けてカンマを入力。
今度は範囲が太字で表示された。この範囲はマスタのことだよ。
このまま、マスタが入力されているSheet2をクリックし、
マスタの【A2】から【E11】までドラッグして範囲選択し、カンマを入力。
ここで、数式バーを見てほしい。
範囲選択した前に”Sheet2!”となっている。
これは、計算式の中で別のシートのセルを利用する時に出てくる表示方法。
シート名+”!”と表示される時は別のシートだということがわかる。
だからそのまま続けて大丈夫。
次は列番号。
何列目の内容を表示させるのかってことだね。
タイトルの入っている列は範囲選択した中の左から3列目だから「3」と入力しカンマ。
最後は検索方法。
検索方法は、矢印でFALSEを選択してもいいし、数字の”0”を入力してもいい。
No.2のタイトルが表示された。
【B2】の数字を変えてみよう。数字に合わせてタイトルも正しく変わる。
エラー表示されたくなければIFERROR関数を使おう
【B2】のコードを消すと・・・
エラーコード「#N/A」が表示された。
マスタにない”11”と入力しても「#N/A」が表示される。
Not applicable=該当なし
空白にしておいてエラーコードが表示されるってかっこ悪い・・・。
これを回避するのはIFERROR関数。
もしエラーコードが表示される結果になったら、エラーコードの代わりに指定した他のものを表示させるという関数。
値:計算式(値とはその計算式の結果のこと)
エラーの場合の値:計算式の結果がエラーだった場合、エラーコードの代わりに表示させたいもの
もしエラーになったらそのセルはエラーコード表示ではなく空白にしてしまえばすっきりする。
空白というのは、””(ダブルクォーテーション続けて2つ)でその意味となる。
ということで、さっきのVLOOKUP関数の頭にIFERRORを追加しよう。
=の後ろに”IFFERROR”、最後に”,””)”を入力する。
=IFERROR(VLOOKUP(B2,Sheet2!A2:E11,3,0),””)
どうかな?
数字を入れるとタイトルが出て、誤った数字や空白にすると空白になった?
あとはこの勢い?で【C3】と【D3】にもVLOOKUP関数を入れよう。
【C3】・・・=IFERROR(VLOOKUP(B2,Sheet2!A2:E11,4,0),””)
【D3】・・・=IFERROR(VLOOKUP(B2,Sheet2!A2:E11,5,0),””)