VLOOKUP関数の使い方:Excel関数

VLOOKUP関数の使い方:Excel関数

VLOOKUP関数は、実務で必須といって良いくらい頻繁に使われる関数です。

ただ、引数が多いため使い方が複雑で、間違いやすい関数でもあります。引数のセット方法を忘れてしまったり、引数の設定の間違いで正しい結果を得られない場合も多いので、ここで使い方をしっかり覚え直し、実務で役立ててください。

VLOOKUP関数は検索条件に一致するデータを取り出す

VLOOKUP関数は、検索値と一致するデータを検索範囲の中から探し出す関数で、検索範囲を縦方向(上から下方向)に検索します。これに対して、検索範囲を横方向に検索するのはHLOOKUP関数です。

VLOOKUP関数の書式。

=VLOOKUP(検索値,検索範囲,列番号,検索方法)
※括弧内に指定する「検索値,検索範囲,列番号,検索方法」を”引数”といいます。
※引数は、左から第一引数,第二引数,第三引数,第四引数になります。

それぞれの引数の意味は以下の通りです。

  • 検索値: 検索する値(キーワード)
  • 検索範囲: どの範囲から検索するか
  • 列番号: 検索した値を検索範囲のどの列から取り出すか
  • 検索方法: 検索精度は完全一致か、それとも近似一致(近似値)か

VLOOKUP関数の引数の指定方法

ここでは、VLOOKUP関数のサンプルを参照しながら引数の指定方法を確認します。

サンプルは、A2セルに商品コードを入力すると、画像下の商品マスタから「商品名」と「単価」を検索し、結果をB2セル(商品名)とC2セル(単価)に表示します。

VLOOKUP関数のサンプル

第一引数には「検索値」を指定

第一引数には「検索値」を指定します。

セル番号や検索する値、文字列を指定します。文字列を指定する場合は、””(ダブルクォーテーション)で囲みます。例えば、”検索する文字列”のように指定。

検索値は、第二引数「検索範囲」の左端(検索範囲の第1列目)に含まれる内容である必要があります。2列目や3列目などを「検索値」として指定できません。

そのため、上記のサンプルではA2セル(商品コード)で、検索範囲の中から検索しています。

=VLOOKUP(A2,A5:C10,2)

第ニ引数には「検索範囲」を指定

第ニ引数には「検索範囲」を指定します。

検索値によって検索するセル範囲を指定します。検索するセル範囲の左端には、検索値で指定した内容が含まれていることが前提です。同時に検索結果として返される値が含まれていることが必要です。

上記のサンプルでは、A5からC10までが検索範囲になります。

=VLOOKUP(A2,A5:C10,2)

第三引数には「列番号」を指定

第三引数には「列番号」を指定します。

検索結果を「どの列」から取り出すかを指定します。指定は、検索範囲の左端を1として数えた数字を指定します。

上記のサンプルでは、商品名を取り出したいので商品名の列番号2を指定しています。

=VLOOKUP(A2,A5:C10,2)

このとき注意したいのは、列番号をB列やC列とアルファベットで指定しないことです。あくまでも、検索範囲の左端から数えた数字で指定します。

第四引数には「検索方法」を指定

この引数は任意なので省略可能です。指定しなければ「TRUE」もしくは「1」が指定されたと見なし、検索値を超えない値で、かつ検索値に最も近い値、つまり近似一致(近似値)を検索範囲の上から下に向かって検索します。

一方、「FALSE」もしくは「0」を指定した場合は、検索値と完全に一致するデータを検索範囲の中から探します。

完全に一致するデータが見つからない場合は、検索結果に「#N/A」が返されます。

検索方法を指定するときの注意点
検索方法に「FALSE」もしくは「0」を指定する場合、検索範囲の並び順は昇順(小さい値から大きい値の順になっている)である必要はありませんが、「TRUE」もしくは「1」の場合、検索範囲が昇順になっていなければ間違った値が返される可能性があります。

VLOOKUP関数は、検索値と完全に一致するデータを探す場合に用いられることが殆どですから、VLOOKUP関数を使う場合、第四引数の「検索方法」は「FALSE」もしくは「0」を設定すると覚えることです。

そして、「ある基準値を超えない最大値を探したい」というような用途の場合にのみ、「TRUE」もしくは「1」を使うと覚えてください。

VLOOKUP関数の使い方:業務でどう使う

VLOOKUP関数の使い方としては、商品マスタや得意先マスタなどから、入力した値と一致するデータを取り出す場合が一般的な用途でしょう。

このような用途の場合、商品マスタや得意先マスタは別のシートに保存していて、入力に使うシートとは切り離して作成されている場合が殆どです。

そこで、在庫照会の簡単な仕組みをサンプルにして、VLOOKUP関数の使い方を再確認してみましょう。

まず、下記が商品コードで検索する在庫表シートです。商品ごとに、商品名、在庫数量、在庫金額などが保存されています。

在庫表シートのイメージ

次が、在庫照会の商品コード入力シートです。

下記のような簡単なスタイルにしてみました。

在庫照会の商品コード入力シート

A3セルに在庫照会したい商品コードを入力すると、B3セルに商品名、C3セルに在庫数量、D3セルに在庫金額を表示する仕組みです。

B3セルからD3セルには以下のようにVLOOKUP関数を入力してあります。

A3セルは検索値を入力するためのセルです。

  • A3セルに商品コードを入力
  • B3セルに「=VLOOKUP($A$3,在庫表!$A$2:$E$14,2,0)」と入力
  • C3セルに「=VLOOKUP($A$3,在庫表!$A$2:$E$14,3,0)」と入力
  • D3セルに「=VLOOKUP($A$3,在庫表!$A$2:$E$14,4,0)」と入力

B3セルに入力してある「=VLOOKUP($A$3,在庫表!$A$2:$E$14,2,0)」の意味は、「$A$3」は検索値が入るセル番号、「在庫表!$A$2:$E$14」は在庫表という名前のシートのA2からE14が検索範囲、「2」は検索範囲の左から2列目の値を取り出す、「0」は検索値と完全に一致するデータを検索範囲の中から探す、という意味になります。

なお、セル番号の前に付けられている「$」はセル参照を絶対参照にするためです。理由は、数式をコピーしてもセル参照を変更してほしくないからです。

絶対参照については、以下の記事でも解説していますので、併せてご覧ください。

VLOOKUP関数サンプルの解説

B3セルに入力してある「=VLOOKUP($A$3,在庫表!$A$2:$E$14,2,0)」で説明します。

第一引数の検索値は、「$A$3」で商品コードが入力されています。

第二引数の検索範囲は、「在庫表」という名前の別シートを指定しますので「在庫表!$A$2:$E$14] となります。他のシートのセル範囲を参照する場合は、「シート名!セル範囲」と書きます。

第三引数の列番号は、C3セルには商品名が欲しいので、検索範囲の左から2列目(商品名の列)を指定します。同様に、C3セルの在庫数量なら4列目、D3セルの在庫金額なら5列目と変化します。

第四引数の検索方法は、入力した商品コードと完全に一致するデータを探したいので、「0(FALSE)」を指定します。これにより、商品コード入力を間違えたり、在庫表に登録されていない商品コードを入力した場合は「#N/A」が返されますので、誤りに気付くことができます。

検索方法を完全一致(FALSEまたは0)で検索し、該当するデータがない場合は以下のように「#N/A」が返される。

完全一致でのエラー表示

VLOOKUP関数と同じ分類の関数

VLOOKUP関数と同じ「検索/行列」系の関数は以下のページで探せます。

Excel関数カテゴリの最新記事