ビジネスに必須のVLOOKUP関数

VLOOKUP(ブイ・ルックアップ)は、表を縦方向に検索し、特定のデータに対応する値を取り出すExcel関数です。例えば、商品IDから商品の単価を取り出したり、顧客名から住所を取り出したりなど、よく行う処理がVLOOKUP関数だけで解決できます。

以下は、指定した商品IDに対応する商品名と単価を取り出しています。元の表を目視で確認して手入力するのは効率が悪いだけでなく、ミスの原因にもなります。

VLOOKUP関数の使い方

セルB3とC3にVLOOKUP関数が入力されており、商品ID「S1-002B」に対応する商品名と単価を取り出しています。

この例は、参照する元の表も単純ですが、何百、何千行とある表の場合、VLOOKUP関数が欠かせません。ビジネスに必須の関数ともいわれ、数あるExcel関数の中でも屈指の人気を誇るのですが、引数の指定が複雑で利用するときに悩みます。

また、引き継いだファイルにVLOOKUP関数が含まれている場合、基本が分からないと読み解くのにも苦労します。ここでは「初めて使う」「ちゃんと使える自信がない」「久しぶりに使おうとしたら忘れてしまった」という人のために、VLOOKUP関数の使い方を解説します。

VLOOKUP関数の構文

まず、VLOOKUP関数の構文を確認しましょう。


=VLOOKUP検索値, 範囲, 列番号, 検索の型


VLOOKUP関数には4つの引数(ひきすう)がありますが、ポイントとなるのは最初の3つです。それぞれ以下のような意味があります。

  1. 検索値] ... どのデータで
  2. 範囲] ... どこを検索して
  3. 列番号] ... どの列にある値を取り出すか

4つめの引数[検索の型]は、とりあえず置いておきます。

先ほどの例で入力されているVLOOKUP関数を見てみましょう。[検索値]と[範囲]は、すぐに理解できると思います。表の見出しは、[範囲]に含めても含めなくても構いません。

VLOOKUP関数の使い方

セルA3の値が[検索値]、商品マスタ(セルA7~C17)が[範囲]となります。表の見出しは含めても、含めなくても構いません。

ただし、[検索値]の検索対象は[範囲]の左端の列(左から1列目)にしておくことが必須です。左から2列目や3列目を検索することはできません。仮に[検索値]として「商品名」を指定したいときは、[範囲]の左端の列が「商品名」となるように、あらかじめ表を整えておく必要があります。

3つめの引数[列番号]には「2」と指定しています。これは[範囲]で指定した表のうち、取り出したい値がある列が左から何列目にあるかを意味します。

ここでは、セルB3に「商品名」を取り出したいので「2」としています。セルC3に「単価」を取り出す場合は、3列目の「3」を指定することになります。

VLOOKUP関数の使い方

列番号]に指定した「2」は、[範囲]の表のうち、左から2列目を意味します。

4つめの引数は「FALSE」

4つめの引数[検索の型]は、検索する値が見つからない場合、どのように処理するかを決める引数です。「TRUE」または「FALSE」で指定し、省略した場合は「TRUE」と同じ扱いになります。

検索値]に一致するデータが見つからないとき、「TRUE」では[検索値]を超えない最大値を該当のデータとします。「FALSE」ではエラーになります。

VLOOKUP関数では完全に一致する値を探すことが多いため、少々乱暴ではありますが、とりあえず[検索の型]は「FALSE」にすると覚えてください。

VLOOKUP関数の使い方

検索の型]は「TRUE」または「FALSE」で指定します。多くの場合、VLOOKUP関数では完全に一致する値を検索することが多いため、4つめの引数は「FALSE」にすると覚えてしまっていいでしょう。

VLOOKUP関数を入力する

以上をふまえて、実際にVLOOKUP関数を作成する手順を見ていきましょう。ここでは、セルB3に入力していきます。[検索値]はセルA3、[範囲]はセルA7~C17、[検索の型]は「FALSE」とします。

1VLOOKUP関数を入力する

VLOOKUP関数の使い方

VLOOKUP関数で求めた値を表示したいセル(ここではセルB3)を選択して「=VLOOKUP」と入力します。

2第1引数[検索値]を指定する

VLOOKUP関数の使い方

「(」を入力し、第1引数の[検索値]となるセル(ここではセルA3)をクリックします。直接入力しても構いません。

3第2引数[範囲]を指定する

VLOOKUP関数の使い方

「,」を入力し、第2引数の[範囲]となるセル(ここではセルA7~A17)をドラッグして選択します。選択範囲を間違えたときはドラッグし直します。

4第3引数[列番号]を指定する

VLOOKUP関数の使い方

「,」を入力し、第3引数の[列番号]を指定します。ここでは表の左から2列目にある「商品名」を求めたいので「2」と入力します。

5第4引数[検索の型]を指定する

VLOOKUP関数の使い方

「,」を入力し、第4引数の[検索の型]として「FALSE」を指定します。これで[検索値]と完全に一致する値のみが検索されるようになります。

6数式の入力を完了する

VLOOKUP関数の使い方

「)」を入力して[Enter]キーを押し、VLOOKUP関数の数式の入力を完了します。結果、セルB3に商品ID「S1-002B」に対応する商品名が表示されました。

同様にセルC3にもVLOOKUP関数を入力しましょう。ここでは単価を取り出したいので、[列番号]に「3」と指定します。数式はそれぞれ、以下のようになります。

=VLOOKUP(A3,A7:C17,2,FALSE)
=VLOOKUP(A3,A7:C17,3,FALSE)

[検索の型]の「FALSE」と「TRUE」の違い

ここで、4つめの引数[検索の型]の「FALSE」と「TRUE」の動作の違いについて確認してみましょう。

検索の型]に「FALSE」とした場合、上記のように、1つめの引数[検索値]に完全一致する値を検索します。一方、「TRUE」とした場合、[検索値]を超えない最大値を、一致する値(近似一致)と見なします。

以下の例を見てください。[検索値]を「200」、[範囲]をセルA6~A16、[列番号]を「1」とします。セルB3とC3に入力した数式の第1引数、第2引数、第3引数は同じです。[検索の型]に、それぞれ「FALSE」と「TRUE」としたVLOOKUP関数を入力しています。

VLOOKUP関数の使い方

検索の型]を「FALSE」と「TRUE」としたVLOOKUP関数が、セルB3とC3に入力されています。

VLOOKUP関数を確定すると、それぞれ別の結果が表示されました。

VLOOKUP関数の使い方

検索の型]が「FALSE」の場合は「200」、「TRUE」の場合は「150」が取得されました。

VLOOKUP関数は[範囲]の左端の列を先頭から検索値]で検索します。

検索の型]が「FALSE」の場合は、完全一致した値を取得するため、正確に「200」を取得できました。しかし「TRUE」の場合は、近似一致のため、先頭から「200」を検索して「200」を超えない最大値、つまり「150」が近似値として取得されたわけです。

「TRUE」の誤動作を防ぐには、[範囲]の左端の列を昇順(小さい順)に並べ替えておきます。

VLOOKUP関数の使い方

範囲]の左端の列を昇順(小さい順)に並べ替えた状態です。[検索の型]が「TRUE」でも「200」と取得されました。

「TRUE」と指定するケースとしては、成績や予算などの表で一定の基準値を超えない最大値を探したいときなどが考えられます。

VLOOKUP関数の[範囲]は列で指定する

実際にビジネスシーンでVLOOKUP関数を使う場合、[範囲]として参照するは、「商品マスタ」や「顧客マスタ」のように、別のワークシートで用意されていることが多いのではないでしょうか。

そして、その表には日々データが追加されていく状況が容易に想像できます。

VLOOKUP関数の使い方

範囲]として参照する表が、「マスタ」として別のワークシートに用意されています。商品が追加されるたび、表のデータも更新されます。

ワークシートをまたいでも、VLOOKUP関数の[範囲]は指定できますが、このとき新しいデータが追加される可能性を考慮して範囲を指定するといいでしょう。

上の例で商品が追加されると、表は縦方向に伸びていきます。別のワークシートに入力してあるVLOOKUP関数で、[範囲]にセルA2~C12と指定していた場合、商品が追加されるたびに数式を修正しなければいけません。これを回避するためには、列をまとめて選択するのがおすすめです。

1第1引数[検索値]を入力する

VLOOKUP関数の使い方

セルB3を選択して、数式バーに「=VLOOKUP(A3」と入力します。

2第2引数[範囲]を指定する

VLOOKUP関数の使い方

「,」を入力して、参照するワークシート(ここでは[商品マスタ])に切り替えます。

VLOOKUP関数の使い方

範囲]を指定する際、A列からC列をまとめて選択するのがポイントです。数式バーには「商品マスタ!A:C」と表示されます。

3第3引数と第4引数を指定する

VLOOKUP関数の使い方

「,」を入力して[列番号]の「2」と[検索の型]の「FALSE」を指定します。

4数式の入力を完了する

VLOOKUP関数の使い方

「)」を入力して[Enter]キーを押します。ワークシートが切り替わり、セルB3に商品ID「S1-002B」に対応する商品名が表示されました。

セルC3に入力するVLOOKUP関数には[列番号]を「3」と指定して単価を取り出します。セルB3とセルC3の数式はそれぞれ、以下のようになります。

=VLOOKUP(A3,商品マスタ!A:C,2,FALSE)
=VLOOKUP(A3,商品マスタ!A:C,3,FALSE)

「A:C」とA列からC列全体を指定していれば、仮に商品が追加されても、VLOOKUP関数の数式を変更する必要はなくなります。数式も単純になって分かりやすくなりました。

VLOOKUP関数と参照する表が同じワークシートにあるときでも、[範囲]として列全体を指定する方法はおすすめです。以下のように、参照する表の構造を変えて試してみてください。

VLOOKUP関数の使い方

同じワークシートの表を参照するときも、列単位で[範囲]を指定する方法はおすすめです。

関連記事

VLOOKUP関数のエラーや結果がおかしいときの解決法

ExcelのVLOOKUP(ブイ・ルックアップ)関数の入力後、#N/Aエラーが表示されたり、期待した値が見つからなかったりすることがあります。これらは多くの場合、引数の[検索値]や[範囲]にミスがあるのが原因です。

VLOOKUP関数のエラーを空白や任意の文字列にする方法

ExcelのVLOOKUP(ブイ・ルックアップ)関数を使ったワークシートでは、#N/Aエラーが表示されることがよくあります。このエラーを空白(非表示)にしたり、「該当なし」などの任意の文字列にするには、IFERROR関数を使うのが定番です。

Excel関数 機能別一覧(全484関数)

すべてのエクセル関数を、「数学/三角関数」「論理関数」「統計関数」といった機能ごとの分類でまとめた一覧です。Microsoft 365(旧称:Office 365)専用の関数、およびExcel 2019~2007に対応した関数と、その使い方解説記事を探せます。