この記事ではvlookupについて書いていきたいと思います。
vlookupはエクセルで集計作業する際に、とても役に立つ関数となりますので、是非使ってみてください。
vlookupとは
Excel上でvlookupを入れると下記のような説明分が表示されます。
【指定された範囲の1列目で特定の値を検索して、指定した列と同じ行の値を返します】
・・・正直初めて見た方は、この文章の意味が分かりにくいと思います。
仮に下記の二つのテーブルがあったとします。
左に「電話番号」+「住所」
右に「店舗名」+「電話番号」+「住所(空欄)」
ここで右の「住所(空欄)」に左から該当する住所を入れたいときに使います。
この場合、左右のテーブルで共通するものは「電話番号」となりますので、電話番号を検索値として住所を引っ張ってくる形です。やり方は後ほど記載します。
その他にも、下記のExcelのように価格表(左)があった場合に、右の商品番号入力に番号を入れることで、該当する商品名と金額を返すこともできます。
上の住所とは見せ方が異なりますが、やっていることは同じです。
vlookupは【検索した値とそれに該当する他の値を返す】という関数になります。
vlookupの使い方
直接セルに「=vlookup」と入力してもいいのですが、慣れない方はExcel上部にあります【数式】からvlookupを探して、そこから進めていくことをお勧めします。
というのも、【数式】の挿入から進めていくことで下記のようなウインドウが開き、自身がどこをやっているか分かりやすいかかなと思います。
先ほどの住所の例をもとに進めていきますと、
結論としては住所を入れたいセル(ここではH2になります)を選択し、上記のvlookupのウインドウを開き、下記の図を指定します。
詳しくみていきます。
検索値
検索値はどの値を検索するかというものになります。
ここでは住所を入力したいのですが、左のテーブルのどの数値や文字をキーにして他のテーブルからデータを持ってくるかという判断をするために左右のテーブルで共通にある「電話番号」を指定します。
「店舗名」は左のテーブルには記載がないため、左のテーブルに「店舗名」を探しにいっても同じものが見つからないため、引用する場所が分からずキーとなりません。
検索値は共通するものをお使いください。
時と場合によりますが、検索値(キーとなるもの)はユニーク(電話番号など、一つでそれしかないもの)のものを使うことをお勧めします。
というのも、「郵便番号」のような異なる住所にもかかわらず同一のものが割り振られているものは意図しない住所を引っ張て来てしまいます。
範囲
目的のデータ(ここでは「住所」)が入っている範囲を指定します。
先ほどの左側のテーブルに目的のデータである「住所」が入っていますので、左側のテーブルを指定します。
ここでいくつか注意が必要となります。
・検索値として考えているデータ(ここでは電話番号)を範囲の1列目に持ってくる。
・オートフィル機能を使う際は範囲の絶対参照等で対応することが必要
絶対参照に関しましては別の記事で詳しく紹介予定ですが、
下記の図のように範囲「B2:C9」を指定した場合に、このままオートフィル機能を使うと○○店から××店のセルに動くことで、それに伴って範囲が「B3:C10」へと動いてしまいます。つまり参照する範囲が移動してしまい、該当する行より上のものはデータを引っ張ってこないという現象になります!
そこで、絶対参照(ボタン:F4)といって、もう絶対にここを参照しますよという意思表示が必要になります。ドルマーク($)が列(BとC)の前、行(2と9)の前についている状態にします。
オートフィル機能を使う予定がある場合、絶対参照をしないでvlookupは危険ですのでご注意ください!
列番号
ここで指定された列のデータを返します。
上記の例では、返したいデータである「住所」は左テーブルの2列目にありますので、「2」を入力します。もし返したいデータがテーブルの3列目にあれば「3」を入力します。
検索方法
検索方法は2種類あります。
近似値を含め検索する:TRUE
省略、完全一致の値を検索する:FALSE
基本的に使うのはFALSEになるかと思います。
近似値を含め検索された場合、せっかくユニークなデータ(電話番号)を検索値に設定した意味がなくなります。
実際の手順
検索値 G2(電話番号)
範囲 $B$2:$C$9(絶対参照)
列番号 2($B$2:$C$9の2列目)
検索方法 FALSE(完全一致を検索4)
下記のように住所が入ったら、カーソルを■に合わせて下までドラッグ(オートフィル機能)します。
そうすることで「住所」が左のテーブルから「電話番号」を検索値(キー)として入力されます。
もう一つ追加で下記のパターンをご説明しますと、
①には =IFERROR(VLOOKUP(O2,K2:M9,2,FALSE),””)
②には =IFERROR(VLOOKUP(O2,K2:M9,3,FALSE),””)
となります。
ここでは検索値をO2(現在は空欄)とし、O2に入力された値をキーとして左のテーブルから①は2列目を、②は3列目を引っ張ってくる形となります。
検索値の場所はO2から動かしません(オートフィル機能使わない)ので、絶対参照は不要となります(絶対参照を付けても問題はありません)。
IFERRORは「#N/A」のようにエラーが出た場合の表示に関する関数となりまして、「””」は空欄を意味します。商品番号入力のところが空欄の場合エラーだけど、「#N/A」ではなく「””」つまり空欄を表示してという意味になります。
まとめ
今回の記事でご紹介したポイントをまとめました。
- vlookupは【検索した値とそれに該当する他の値を返す】
- 検索値として考えているデータ(ここでは電話番号)を範囲の1列目に持ってくる
- オートフィル機能を使う際は範囲の絶対参照等で対応することが必要
vlookupは覚えておいて損はないと思いますので、ご参考になればと幸いです。最後までご覧いただきありがとうございます!