Excelを業務などで用いる際、関数を用いる場面が多くあると思います。その中でも高頻度で登場する関数の一つがVLOOKUP関数です。

VLOOKUP関数は、業務の効率化に欠かすことのできない関数ですが入力する引数が多く複雑なためエラーが表示されてしまうことも多くあります。

今回は、VLOOKUP関数の基本的な使い方から応用方法、エラー表示された際の対処方法などについて紹介します。

チャット一括管理アプリ「OneChat」が今なら初月無料!!

OneChatのダウンロードはこちらから

VLOOKUP関数の基本

excel 関数 vlookup

VLOOKUP関数とは、表に入力されている縦方向のデータの検索を行い、一致した値と同じ行に存在するデータを返してくれます。

まずは、VOOKUP関数に関連する基本的な情報について理解していきましょう。

VLOOKUP関数とは?データ検索の便利ツール

VLOOKUP関数とは、どのような関数なのかについて知っていきましょう。VLOOKUP関数の「V」は「Vertical」の頭文字であり「垂直」を意味します。「LOOKUP」は「探す」の意味を持つ英単語で、この2つが組み合わさり「該当する値を垂直で探す」と覚えておくとわかりやすいでしょう。

VLOOKUP関数とは、表に入力されている縦方向のデータの検索を行い、一致した値と同じ行に存在するデータを返してくれる関数です。

一般的には、顧客名をもとに、連絡先や住所の取得を行ったり、在庫管理データをもとに商品の在庫数や価格情報の取得といった活用をされています。

VLOOKUP関数の働きとビジネスでの活用事例

VLOOKUP関数のビジネスの活用例についていくつか紹介します。

在庫管理

商品コードを元に在庫数量や価格を検索し、管理する場合に利用できます。例えば、特定の商品コードが入力されると、VLOOKUP関数を使用して在庫データベースから商品情報を取得し、在庫数量や価格を表示できます。

顧客データの検索

顧客コードや顧客名を元に、顧客の住所や電話番号などの情報を検索する場合に使用できます。例えば、顧客コードが入力されると、VLOOKUP関数を使用して顧客データベースから顧客情報が取得できます。

給与計算

従業員番号を元に、従業員の給与情報を検索し、給与計算を行う場合に使用できます。たとえば、従業員番号が入力されると、VLOOKUP関数を使用して給与データベースから給与情報を取得します。

請求書の作成

商品コードを元に商品名や価格を検索し、請求書を作成する場合に使用できます。例えば、商品コードが入力されると、VLOOKUP関数を使用して商品データベースから商品情報を取得し、請求書に商品名や価格を表示します。

これらの事例からもわかるように、VLOOKUP関数は企業活用において非常に重要な役割を果たしています。データの検索や関連付けを効率的に行うことができるため、業務プロセスの効率化や正確性向上に貢献しています。

VLOOKUP関数の引数と使い方を徹底解説

VLOOKUP関数の基本情報について理解を深めたところで、VLOOKUP関数の引数と使い方について知っていきましょう。

VLOOKUP関数の入力パラメータとその機能

VLOOKUP関数は以下の入力パラメータを持ちます。

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

それぞれの入力パラメータの機能について解説します。

項目内容
検索値検索の対象になる値の指定を行います。数字以外の文字列等を検索値として指定したい場合は、「”〇〇”」のようにダブルクォーテーションで囲む必要があります。全角と半角を区別して検索することができますが、英字の大文字と小文字を区別することはできません。
範囲検索の対象となる範囲の指定をします。
列番号取り出したい値の存在する列が、指定した範囲の左端の列より何列目であるかを指定します。
検索の型完全一致、または近似一致のどちらで取得を行うかを指定します。近似一致の指定では、検索の型の値に「TRUE」を指定します。検索の型を省略すると近似一致による検索となります。完全一致の指定では、検索の型の値に「FALSE」を指定します。

参考:VLOOKUP 関数 – Microsoft サポート

VLOOKUP関数でデータを検索・表示する手順

VLOOKUP関数でデータを検索・表示する手順について、次の表をもとにして解説していきます。

行\列ABC
1商品ID商品名単価
2K1-001A商品A570
3K1-001B商品B360
4K1-002A商品C820
5K1-002B商品D650
6K1-003A商品E980
7K1-003B商品F260
行\列EFG
1商品ID商品名単価
2K1-002B

上記表における「商品ID」に対応する「商品名」「単価」の内容をF、G列の2行目にVLOOKUP関数を用いて取り出していきます。今回は、「K1-002B」の「商品名」と「単価」の情報を取り出してみましょう。

1.VLOOKUP関数の検索結果を返したいセルを指定する

VLOOKUP関数の検索結果を返したいセルを指定しましょう。まずは、「商品名」を入力したいセル「F2」を指定します。ここに、VLOOKUP関数の数式を入力していきましょう。

2.検索の対象となる値の選択を行う

検索の対象となる値の選択を行います。この値がVLOOKUP関数の最初の引数です。

今回は、E2に入力されている「商品ID:K1-002B」をもとに検索を行うため、検索値は「K1-002B」または「E2」となります。

=VLOOKUP(E2,

3.検索範囲の指定を行う

2つめの引数である検索範囲の指定を行います。「商品名」のみでなく表全体を検索範囲に選択します。検索範囲は、必要に応じて絶対参照に指定しておくことが大切です。

検索値の値(商品ID)が検索範囲の左端から1列目に存在していない場合は正常に検索を行うことができません。左から2列目以降の検索値を検索することができない点には注意しましょう。

=VLOOKUP(E2, $A$2:$C$7,

4.検索結果を返したい値がある列番号を指定する

検索結果を返したい値の存在する列番号を指定します。この場合の列番号とは、検索結果を返したい値がある列が、検索範囲の左から何番目に存在するかどうかのことです。

今回取り出したい「商品名」は指定した範囲の左から2列目にあるため、「2」を指定することとなります。

=VLOOKUP(E2, $A$2:$C$7, 2,

5.値の検索方法を指定する

検索の型を指定して、値の検索方法を決めましょう。VLOOKUP関数を用いた検索では、大抵の場合は完全一致する値の検索を行う場合が多いため、「FALSE」を指定しておくと良いでしょう。

=VLOOKUP(E2, $A$2:$C$7, 2, FALSE)

6.関数を実行する

関数の引数の入力が完了したら、「Enterキー」を押して関数を実行しましょう。

行\列EFG
1商品ID商品名単価
2K1-002B商品D

7.「単価」にも関数を入力する

「単価」の値にも同様の方法でVLOOUP関数を入力します。

単価の値は検索範囲の左から3列目に存在するため、3つめの引数は「3」を指定します。

=VLOOKUP(E2, $A$2:$C$7, 3, FALSE)

行\列EFG
1商品ID商品名単価
2K1-002B商品D650

関連記事:Excel検索関数マスター!VLOOKUP・INDEX・XLOOKUP徹底解説

VLOOKUP関数の応用で効率化を実現

excel 関数 vlookup

VLOOKUP関数の基本的な使い方について理解できたことでしょう。次にVLOOKUP関数の応用的な使い方について紹介します。

複数条件を設定してデータを抽出する方法

VLOOKUP関数は、基本的にある特定の1つの検索条件に対して値を返答してくれる関数です。そのため、複数条件を設定してデータを抽出したい場合には工夫することが必要となります。

行\列ABC
1学年点数
22年鈴木73
31年田中58
41年山田62
53年伊藤91
62年山田46
73年田中88
行\列EF
1学年+姓点数
2

例えば、上記データをもとに「2年」「山田」の2つの条件を設定して点数を取り出すとしましょう。その手順は次の通りです。

1.表に「学年+姓」の内容を入力する列を追加する

「学年+姓」を入力する列を「学年」が入力されている左横(一番左端)のセルに追加し、一番上のセルに「学年」と「姓」の内容を結合したものを入力します。

この際、結合したい内容のセルを参照し、「&」で各セルを繋げることで簡単に結合することができます。

=A2&B2

その後、入力した数式をC2以下のセルにオートフィルで コピーします。

行\列ABCD
1学年+姓学年点数
2=B2&C22年鈴木73
31年田中58
41年山田62
53年伊藤91
62年山田46
73年田中88
行\列ABCD
1学年+姓学年点数
22年鈴木2年鈴木73
31年田中1年田中58
41年山田1年山田62
53年伊藤3年伊藤91
62年山田2年山田46
73年田中3年田中88

2.「学年+姓」のセルを検索を行うVLOOKUP関数を入力する

「学年+姓」のセルを検索を行うVLOOKUP関数を入力しましょう。「F2」のセルに以下の数式を入力します。

=VLOOKUP(E2, A2:D7, 4, FALSE)

行\列ABCD
1学年+姓学年点数
22年鈴木2年鈴木73
31年田中1年田中58
41年山田1年山田62
53年伊藤3年伊藤91
62年山田2年山田46
73年田中3年田中88
行\列EF
1学年+姓点数
22年山田=VLOOKUP(E2,A2:D7,4.FALSE)

これにより、「学年」「姓」の2条件を満たした「点数」の検索を行うことができます。

行\列EF
1学年+姓点数
22年山田46

別シートや連続した列番号でのデータ検索

VLOOKUP関数を活用することで、別シートのデータや連続した列番号でのデータを検索することができます。

別シートのデータを検索する

別シートのデータをVLOOKUP関数を用いて検索する場合は、第2引数の「範囲」に参照先のシート名が含まれている必要があります。例えば、先に用いた表が別のシートに存在し、そのシート名「Sheet2」の場合の数式は次のようになります。

=VLOOKUP(E2, Sheet2!A2:D7, 4, FALSE)

この場合、「Sheet2」が参照するデータ範囲があるシート名を示し、第2引数は「Sheet2にあるA列2行からD列7行目までの範囲」を指定していることとなります。

行\列ABCD
1学年+姓学年点数
22年鈴木2年鈴木73
31年田中1年田中58
41年山田1年山田62
53年伊藤3年伊藤91
62年山田2年山田46
73年田中3年田中88

(Sheet2にある)

行\列EF
1学年+姓点数
22年山田=VLOOKUP(E2,Sheet2!A2:D7,4.FALSE)

(Sheet2以外の場所にある)

連続した列番号のデータを検索する

連続した列番号のデータをVLOOKUP関数を用いて検索する場合、返り値の列番号で範囲指定することで行うことができます。

行\列ABC
1商品ID商品名単価
2K1-001A商品A570
3K1-001B商品B360
4K1-002A商品C820
5K1-002B商品D650
6K1-003A商品E980
7K1-003B商品F260
行\列EF
1商品ID単価
2K1-001B

例えば、上記のデータから検索対象をA列からC列までの範囲と指定して、「商品ID」に対応した「単価」を検索する場合は次のようになります。

=VLOOKUP(A3, A:C, 3, FALSE)

ここでは、「A:C」が連続した列番号での範囲を表します。

商品情報や顧客情報などは、随時表に情報が追加されることも多いです。セル単位で範囲指定すると情報が増えた際に範囲指定をやり直さなくてはなりません。

しかし、列番号で範囲の指定を行うことで情報が増えても範囲指定の変更をする必要がありません。

VLOOKUP関数のエラー対処法と注意点

excel 関数 vlookup

VLOOKUP関数を利用している中で、「#N/A」といったエラーが発生してしまう場合があります。VLOOKUP関数でよくあるエラーの事例とその対処法、注意点について以下では紹介します。

関連記事:Excelのワークシートが表示されない場合はどうする? 再表示方法を解説

よくあるエラー事例とその解決策

よくあるエラーの原因とその解決策について知っておきましょう。

近似一致(TRUE)を指定した場合に指定した範囲の最小値より検索値が小さいため

検索の型の指定を近似一致(TRUE)とした場合、指定した範囲の最小値よりも検索値として指定した値が小さい場合、エラーとなります。「TRUE」では検索値に近似一致した指定した範囲に存在する値の検索が行われます。仮に、数値を検索値として指定した場合は検索値よりも小さく、最も近い値が返ってきます。

対処法

必要に応じて検索値の変更を行います。変更が困難である場合は、INDEX関数とMATCH関数を組み合わせて用いることにより検索値よりも大きい値や小さい値、一致する値の検索が実行できます。

完全一致(FALSE)を指定した場合に指定した項目がないため

検索の型の指定を完全一致(FALSE)とした場合に、範囲として指定したデータ内に検索値と完全一致する項目がなかった場合にエラーとなります。

対処法

範囲として指定したデータ内に確実に検索値と完全一致となるデータがあるが、VLOOKUP関数の返答がエラーとなってしまうことがあります。その場合は、参照対象のセルの中にスペースが含まれていたり印刷されない文字が含まれている場合があります。

また、正しいデータ型にセルがなっていない場合もあります。例えば、セルに数値が含まれる場合は、書式設定が文字列ではなく数値として行われている必要があります。

完全一致(FALSE)を指定した場合に参照列を昇順としていないため

検索の型の指定を近似一致(TRUE)とした場合、参照列のいずれかの並び替えが昇順で行われていない際はエラーとなります。

対処法

昇順となっていない参照列の並び替えを行いましょう。ただし、昇順に並び替えなければならないのは近似一致である「TRUE」を指定した場合のみです。「FALSE」を検索の型として指定した場合は必ずしも並び替える必要はありません。

指定した範囲の左端の列(左から一列目)に検索値がないため

VLOOKUP関数では、検索したい値の存在する場所はテーブル配列の左端の列(左から一列目)にしておく必要があります。そのため、指定した範囲の左端の列に検索値が存在しないとエラーとなります。

対処法

VLOOKUP関数が正しい列を検索できるように調整しましょう。調整が難しい際は、列の移動を行うことが簡単です。

ただし、検索したい値が他のセルを参照して行った計算結果である場合など、列の移動ができない場合はINDEX関数とMATCH関数を組み合わせて用いることにより解決できます。

VLOOKUP関数でのデータ書式設定に注意

VLOOKUP関数を用いる場合、データの書式設定に注意しましょう。

行\列AB
1商品コード商品名
2001商品A
3002商品B
4003商品C
行\列DE
1商品コード商品名
2001

例えば、このようなデータがあり、商品コードからVLOOKUP関数を用いて商品名を取得するとしましょう。この場合、「E2」セルに入力する数式は以下の通りとなります。

=VLOOKUP(D2, A1:B2, 2, FALSE)

商品コードが入力されているセル(列)の書式が「文字列」入力されているとします。しかし、検索値として指定した「D2」セルの商品コード「001」の書式が「数値」で設定されていると、見た目上は同じ「001」だとしても、関数上では異なるものとして扱われてしまいます。

データは存在しているのにエラーとなってしまうといったことになるのです。

VLOOKUP関数と他の関数との違い

VLOOKUP関数と他の関数との違いについて紹介します。

XLOOKUP、HLOOKUPとの比較と使い分け

VLOOKUP関数と似た機能を持つ関数として、XLOOKUP関数とHLOOKUP関数が挙げられます。これら3つの関数の違いや使い分けについて解説します。

関数検索方向検索値の配置利用可能できるExcelの制限
VLOOKUP検索値を垂直(縦方向)に検索する検索範囲の左端(一番左の列)にする制限なし
HLOOKUP検索値を水平(横方向)に検索する検索範囲の上端(一番上の行)にする制限なし
XLOOKUP検索値を任意の方向で検索する制限なしExcel 365Excel 2019以降

単純な垂直・水平方向の検索を行いたい場合や、データが左から右・上から下に配置されている場合は、VLOOKUP関数やHLOOKUP関数を使用すると良いでしょう。

第3引数の列番号や行番号の指定を間違えてしまうと正しい結果を得ることができないことや、行・列を範囲内に挿入してしまうと結果が変わってしまうことに注意しましょう。

XLOOKUPは検索値を任意の方向で検索することができるため、データの方向に制約がない場合に使用すると良いでしょう。また複雑な条件を設定したい場合、VLOOKUP関数やHLOOKUP関数では数式が複雑かつ長くなってしまうことが多いです。しかし、XLOOKUP関数では、検索条件として単一の値だけでなく、配列やセル範囲、複数の条件を指定ができます。これにより、複雑な条件でのデータ検索や抽出が容易になるのです。

VLOOKUP関数とIF関数を組み合わせて使う場合

VLOOKUP関数とIF関数を組み合わせて使うことで、検索した結果に基づいて条件付きの処理を行うことができます。具体的な使い方を例を交えて説明します。例えば、以下のような売上データがあるとします。

行\列ABC
1商品コード商品名売上数量
21001商品A10
31002商品B15
41003商品C20
51004商品D25

ここで、売上数量が一定値以上の場合に「多い」というラベルを付けたいとします。この場合、VLOOKUP関数を使って商品コードに対応する売上数量を取得し、IF関数を使って売上数量が一定値以上かどうかを判定します。具体的な手順は次の通りです。

1.商品コードに対応する売上数量を取得する

VLOOKUP関数を使って商品コードに対応する売上数量を取得します。例えば、セルA2に商品コードが入力されているとして、以下のようにVLOOKUP関数を使います。

=VLOOKUP(A2, A1:C5, 3, FALSE)

2.IF関数で条件を指定する

IF関数を使って売上数量が一定値以上かどうかを判定し、「多い」というラベルを付けます。一定値を15とした場合は以下のようにIF関数を使います。

=IF(VLOOKUP(A2, A1:C5, 3, FALSE)>=15,”多い”,”普通”)

これをD2以下に入力することで、商品コードに対応する売上数量が一定値以上の場合に「多い」というラベルを付けることができます。

行\列ABCD
1商品コード商品名売上数量数量比率
21001商品A10普通
31002商品B15多い
41003商品C20多い
51004商品D25多い

よくある質問

VLOOKUP関数についてよくある質問について紹介します。

Vlookup関数はどういうときに使います?

VLOOKUP関数は、主に以下のような場面で用いられます。

テーブルから特定の値を検索して取得する場合

顧客コードをもとにして顧客名を取得する場合など、特定の値に対応する情報の取得を行う時に用います。

関連するデータを結合する場合

異なるデータソースにある関連するデータを結合する場合に用います。例えば、顧客コードをもとにして顧客名を取得して、別の表にある注文情報と結合する場合などです。

近似一致検索を行う場合

4番目の引数をTRUEに設定することで、検索値に最も近い値を検索することができます。主に数値データの場合に使用されます。

セル範囲を指定して検索する場合

テーブル範囲を指定することで、特定のセル範囲内からデータを検索し取得することができます。

エラー処理を行う場合

データが見つからなかった場合にエラーを回避するために、IFERROR関数などと組み合わせて使用されることがあります。

Vlookup関数を簡単に入力するにはどうしたらいいですか?

VLOOKUP関数を入力したいセルに簡単に入力する方法について紹介します。

関数を入力する方法は様々な種類がありますが、今回は使いたい関数がわからない場合にも活用できる「関数の挿入」を用いた方法について解説を行います。

「関数の挿入」を使った関数の入力方法は次の通りです。

関数を入力したいセルを選択する

関数の入力を行いたいセルを選択しましょう。セルが選択できたら、[Shift]+[F3]キーのショートカットキーか数式バーにある「fx」ボタンをクリックすることで、「関数の挿入」ダイアログボックス(Windows)/「数式パレット」(Mac)が表示されます。

ショートカットキーのコマンドはWindowsとMacで共通です。

入力したい関数を選択する

関数の種類を選択しましょう。もし、どの関数が適切かわからない場合は、条件から関数の検索を行うこともできます。

関数の引数を入力する

関数を選択すると、自動的に「関数の引数」のダイアログボックスが表示されます。入力したい関数に合わせた引数がそれぞれ表示されるため、任意の引数の入力を行いましょう。

この際、それぞれの引数の説明が表示された状態で入力することができるため、関数入力に慣れていなかったとしてもヘルプなどでわざわざ調べることなく入力することができます。

引数の入力が完了したら「OK」を押すことで関数の入力は完了です。

エクセルでvlookupの代わりになる関数は?

 INDEX関数・MATCH関数を併用した方法とXLOOKUP関数を使うことにより、VLOOKUP関数と同様の検索をExcelで行うことができます。

XLOOKUP関数

XLOOKUP関数は、VLOOKUP関数と同様の機能を有しながら、条件により柔軟性を持つ関数です。検索方向や検索値の配置場所に制限がなく、複数条件の検索を容易に行うことができます。

XLOOKUP関数の構文は以下の通りです。

=XLOOKUP(検索値, 範囲, 戻り配列, 見つからない場合, 一致モード, 検索モード) 

項目内容
検索値検索する値を指定します
検索範囲検索する範囲を指定します
戻り配列取り出す値の範囲を指定します
見つからない場合検索値と一致しない場合に表示される値を指定します
一致モード完全一致と近似検索どちらで行うかを指定します
検索モード検索する順序を指定します

ただし、利用可能なExcelに制限があり、Excel 365、またはExcel 2019以降のバージョンでなければ利用することができない点に注意しましょう。

参考:XLOOKUP 関数 – Microsoft サポート

INDEX関数・MATCH関数を併用した方法

INDEX関数・MATCH関数を併用することにより、VLOOKUP関数と同様の機能の実現が可能です。

具体的なINDEX関数・MATCH関数を併用した数式は次の通りです。

=INDEX(データの範囲, MATCH(検索値, 検索範囲, 0))

項目内容VLOOKUP関数に対応する項目
データの範囲データの抽出を行う範囲を指定します範囲
検索値検索する値の指定を行います検索値
検索範囲検索を行う範囲の指定を行います列番号
行\列AB
1商品名単価
2商品A570
3商品B360
4商品C820
5商品D650
6商品E980
7商品F260
行\列DE
1商品名単価
2商品B

例えば、上記データからINDEX関数・MATCH関数を併用することにより「商品B」の「単価」を検索する場合は、以下のような数列となります。

=INDEX(B2:B7, MATCH(D2, A2:A7, 0))

行\列DE
1商品名単価
2商品B=INDEX(B2:B7, MATCH(D2, A2:A7, 0))
行\列DE
1商品名単価
2商品B360

まとめ

今回は、VLOOKUP関数の基本的な使い方から応用方法、エラー表示された際の対処方法などについて紹介しました。VLOOKUP関数は使いこなせれば、効率的に業務を進めることができるようになる便利な関数です。

Excel Vlookup関数に関する重要用語

用語説明
セルセルとは、Excel上に表示されているマス目のことを指します。列と行で構成されており、列は英字(A、B…)、行は数字(1、2…)で表されます。
HLOOKUP関数VLOOKUP関数が垂直方向(縦方向)に検索を行うのに対し、HLOOKUP関数は水平方向(横方向)に検索地の検索を行う関数です。=HLOOKUP(検索値, 検索範囲, 行番号, [検索の型])
IF関数指定した条件に基づいた結果を返すために用いる関数です。=IF(論理式, [真の場合], [偽の場合])
INDEX関数指定された範囲ないから値の抽出を行うことができる関数です。=INDEX(配列, 行番号, [列番号])
MATCH関数範囲内において指定された値が最初に出現する位置を検索することができる関数です。=MATCH(検査値, 検査範囲, [照合の型])