こんにちは、デスクワークラボの吉井良平です。
VLOOKUP関数は、「エクセルを使っていて、これを使いこなしてないともったいない!」と断言できる関数なのですが、最初はちょっと使い方がヤヤコシイので、つまづいている方が多いのも事実です。
考え方さえ分かれば、そんなに難しくないはずなので、今回はVLOOKUP関数について掘り下げて考えていきます。
この記事を読んで、VLOOKUP関数に対する苦手意識を無くしていただければ幸いです。
VLOOKUP関数とは?
VLOOKUP関数は、表の中から検索条件にあったデータを抜き出してくる関数です。
まずは、「VLOOKUP」(ブイルックアップ)という単語を覚えるために、言葉の意味から考えていきますね。
言葉の意味
英語で「Look up」というと、見上げるという感じですが、「調べる」という意味もあるようです。
研究社の新英和中辞典の例文では、
Look up the word in the dictionary.
その言葉を辞書で調べなさい
という例文がありました。まさにこれです。
じゃあ先頭の「V」は何の意味かというと、Vertical(バーティカル:縦)の略です。
VLOOKUP で、エクセルに対して「縦方向に調べなさい」と命令しているということですね。
縦方向があるなら、横方向もあって、HLOOKUP関数という関数があります。
Horizontal(ホライゾンタル:横)で、「横方向に調べなさい」という意味です。
でも、VLOOKUPはメジャーな関数で良く使われますが、HLOOKUPはあまり使われません。なぜでしょう?
表の多くは縦長で作られている
答えは簡単で、表の多くは縦長で作られているからです。データが多くなれば多くなるほど縦長になります。
試しに、一件例を挙げてみますね。
[su_row] [su_column size=”1/2″] [/su_column] [su_column size=”1/2″]これは総務省統計局のページからダウンロードした、都道府県別の人口の表です。縦に長い表になっていますよね。
[/su_column] [/su_row]
もちろん横長の表もありますが、縦長の表の方が圧倒的に数が多いです。
なので、HLOOKUP関数はあまり使われなくて、VLOOKUP関数は良く使われるのです。
もう少し詳しく書くと、エクセルでも何でも、データベースというのは縦方向に伸びていくように作られています。
エクセルの便利な機能、「並べ替え」や「オートフィルター」の機能を使うためには、縦方向にデータが並んでる表じゃないと使えませんよね。
なので、縦方向の表の方が必然的に多くなるのです。
なぜVLOOKUP関数が便利なのか?
じゃあ、なぜVLOOKUP関数がそんなに便利で、おススメなのかを説明します。
① 入力するより断然早い!
一覧表があって、そこからデータを引っぱってくる場合は、いちいちその表のデータを確認してコピーして、貼り付けして・・・とするより、VLOOKUP関数でデータを引っ張ってきた方が断然早いからです。
どのぐらい早くなるか、を検証してみました。(検証過程を動画にしています)
検証結果は以下の通りです。
コピペ | VLOOKUP使用 | |
開始時間 | 39秒 | 1分35秒 |
終了時間 | 1分24秒 | 2分14秒 |
所要時間 | 45秒 | 39秒 |
1件あたり | 9秒 | – |
コピペの場合は、毎回9秒の時間がかかっていますが、VLOOKUPを使用すると件数が増えてもほとんど所要時間の増加はありません。グラフにすると、こうなります。
作業する件数が増えれば増えるほど、圧倒的に所要時間に差がついてきます。
コピペの場合は、100件ぐらいのデータがあったら途方にくれますが、VLOOKUP関数を使えば1分以内に作業が終了します。
② ミスが少ない
一覧表からコピペすると、人間なのでどうしでもミスが起こる可能性があります。先ほどの動画でも、マウスカーソルがフラフラしてて、見ていて危ういですよね。
VLOOKUP関数でデータを引っ張ってくれば、転記によるミスはありません。
③ 変更が簡単
商品の単価が変わったりした場合は、元の表を直せば引っぱってくる値も変わります。
元の表を「マスター」(元データ)として使用することで、関連したすべての表の値を変更することができるようになります。
VLOOKUPを使った資料作りをすることで、変更に対して簡単に対応できるようになります。
単純にエクセルの機能を知るということだけでなく、IT自体の理解にもつながりますよ。
実際にVLOOKUP関数を使ってみよう!
ちょっと前置きが長くなってしまいましたね(笑)
では、実際にVLOOKUP関数を使っていきましょう。
VLOOKUP関数の書式
=VLOOKUP(検索値,検索範囲,列番号,検索方法)
VLOOKUP関数がちょっと分かりにくいのは、引数(カッコの中で指定する値)が多いことが原因だと思います。
これを感覚的に覚える方法を紹介します。
実際の目でデータを確認する場合
下記のような表があって、この中から大阪の人口増減率を探す場合を考えてみます。
まず、都道府県の列を見て、上から順番に大阪を探していきますよね?
で、大阪を発見して、そこから右側に移って人口増減率を探します。
実際の目の動きはこうなっているはずです。
まず、上から下の縦方向に調べています。
縦方向に調べるので、VLOOKUPです。
それから、「人口増減率」を探すために、右側の4列目をみています。
これを、実際の使用例でみてみましょう。
実際にVLOOKUP関数を使った例
セルB2に入っている式は、「=VLOOKUP(A2,D1:G8,4,FALSE)」です。これを、VLOOKUP関数の書式と比較してみていきましょう。
=VLOOKUP(検索値,検索範囲,列番号,検索方法)
検索値: A2 (この場合は、大阪)
検索範囲: D1:G8 (D1~G8の範囲で)
列番号: 4 (左から数えて4列目)
検索方法: FALSE (完全一致)
「A2と同じ値を、D1~G8の表の中から、4列目を取り出してきなさい」と、エクセルに命令しているということですね。
最後の検索方法は、FALSE(または0)を指定します。これを指定しないと、「近似値」でも値を探してきます。
近似値でも検索できるようにしたい場合もまったく無いとは言えませんが、基本的にFALSEで覚えた方が良いです。
ということで、VLOOKUPの後の引数は、①この値を ②この範囲から ③何列目を ④FALSEで、という、実際の頭の中の動きと同じ順番になっているのです。
VLOOKUP関数を使うときの注意点
VLOOKUP関数の式をコピーする場合には、式の中のセルを相対参照にしたままだと、行がずれると検索範囲がずれてきてしまいます。
コピーする前に、表の範囲には$マークをつけて、絶対参照にしておきましょう。
例: =VLOOKUP(A2,$D$1:$G$8,4,FALSE)
今回は、VLOOKUP関数について詳しく紹介しました。
VLOOKUP関数が使えると、エクセルがグンと使えるソフトになってきますので、ぜひマスターしてくださいね。