Excel初心者のためのVLOOKUP関数の使い方 別シート参照やエラー対処も解説
結論
VLOOKUP関数は、商品コードや社員番号をもとに、表から商品名や単価などを自動で取り出す関数です。基本構文は「=VLOOKUP(検索値,範囲,列番号,検索方法)」で、検索値を範囲の左端列に置き、検索方法には原則FALSE(完全一致)を指定します。数式をコピーする際は範囲を絶対参照にしましょう。#N/Aエラーが出たら、検索値の有無や余分なスペースを確認してください。
この記事では、VLOOKUP関数の基本構文や操作手順、別シートの参照方法、エラーの対処法などを初心者向けに解説します。
請求書や名簿への転記作業に手間がかかっている方や、VLOOKUP関数のエラーでお困りの方は、ぜひ参考にしてください。

DX推進ができている企業は何をしているのか?
無理なくはじめる“ちょうどいい” バックオフィス業務改善のコツ
ITが苦⼿な社員が多い会社が取るべきDX戦略について、とある製造業A社を例に挙げて解説します。
目次
VLOOKUP関数とは?表から条件に合う値を自動で取り出す関数
まず、VLOOKUP関数とは何かについて、基本的な情報を押さえておきましょう。
VLOOKUP関数は検索値と同じ行にある別の列の値を返す
VLOOKUP関数は、表の左端列から指定した値を縦方向(Vertical)に検索し、同じ行の別の列の値を取り出す関数です。
たとえば、商品コード「A002」に対応する商品名を調べたいときなどに、商品一覧から「A002」を検索し、同じ行にある商品名「ノート」を自動で取得できます。
手作業での転記ミスや確認の手間を減らせる
VLOOKUP関数を活用することで、請求書に商品コードを入力するだけで商品名や単価を自動表示することができるようになるため、入力ミスの防止につながり、結果として確認の手間も削減できます。役立ちます。元データを修正すれば、数式の結果も更新されるようになり、入力内容の更新の手間も省けます。
VLOOKUP関数の活用シーン
VLOOKUP関数は以下のようなシーンで活用できます。
| 活用シーン | 活用イメージ |
| 商品の在庫管理 | 商品コードを入力すると、自動で商品名、単価、在庫数を取得 |
| 社員名簿管理 | 社員番号を入力すると、自動で氏名・所属部署を取得 |
| 請求書管理 | 取引先名を入力すると、自動で請求書番号や請求金額、入金期日を表示 |
| 契約書管理 | 取引先名を入力すると、自動で契約書の番号や契約終了日を表示 |
総務・経理・営業事務・法務など、日常的にデータを扱う業務で便利な関数です。
VLOOKUP関数の基本構文と4つの引数
ここでは、VLOOKUP関数を構成する、検索値・範囲・列番号・検索方法の4つの役割を解説します。
なお、ここからは商品の在庫管理をする場合を想定し、商品コードを入力することで、商品マスタ(「商品コード、商品名、単価」の一覧表)にあるさまざまな情報を自動で取得する方法を一例として紹介します。
基本構文は「=VLOOKUP(検索値, 範囲, 列番号, 検索方法)」
VLOOKUP関数の基本構文は次のとおりです。
=VLOOKUP(検索値,範囲,列番号,検索方法)
たとえば、以下のような商品マスタがあり、「商品コード」を検索の起点に「商品名」を検索したい場合は、
▼商品マスタ
| 商品コード | 商品名 | 単価 |
| A001 | ボールペン | 120 |
| A002 | ノート | 250 |
| A003 | ファイル | 380 |
| A004 | クリアケース | 450 |
=VLOOKUP(商品コード,商品マスタの表の範囲,商品名の列番号,FALSE)
をそれぞれ指定していきます。
A2セルの商品コードをF2:H5の商品マスタから検索し、商品名を取得する場合は、次のように入力します。
=VLOOKUP(A2,F2:H5,2,FALSE)
4つの引数の意味や詳細について、順番に確認しましょう。
第1引数「検索値」には、検索の起点となる値を指定する
検索値には、商品コードや取引先名、社員番号など「検索の起点となる値」を指定します。
たとえば、下図のように、A2セルに商品コード「A002」がある場合は「A2」を指定します。セル参照なら、コードを変更するだけで検索結果も切り替わります。

第2引数「範囲」は検索値が左端の列になるように指定する
範囲には、検索対象となる表を指定します。
たとえば、下図のように商品マスタがF2セル〜H5セルにある場合は、「F2:H5」を指定します。

注意点として、第2引数の「範囲」の一番左の列が、第1引数の「検索値」である必要性があります。(詳細は「VLOOKUPを使うときの注意点」にて後述)
また、数式をコピーするときは、範囲がずれないよう絶対参照($をつける、「$F$2:$H$5」など)にしておきましょう。
第3引数「列番号」は範囲の左端を1として数える
列番号は、検索範囲の左端を「1」として数えます。
たとえば、F列が商品コード、G列が商品名、H列が単価なら、商品名を取得する場合は「2」、単価なら「3」を指定します。シートl全体の列番号ではなく、あくまで指定した範囲の左端から数える点に注意してください。

第4引数「検索方法」は原則FALSE(完全一致)を指定する
検索方法には「FALSE(完全一致)」または「TRUE(近似一致)」を指定します。
商品コードや社員番号など、特定の値を正確に検索する場合は「FALSE」を使用しましょう。TRUEは数値の区分判定などに利用しますが、検索列を昇順に並べる必要があります。省略するとTRUEになるため、通常はFALSEを指定するのがおすすめです。

VLOOKUP関数の使い方を5ステップで解説
ここでは、商品マスタから商品名を取得する手順を5つのステップに分けて解説します。
ステップ1 検索元となる表(マスタ)を用意する
まず、検索元となる表(マスタ)を用意します。
たとえば、F1:H5に商品マスタを作成します。1行目に「商品コード・商品名・単価」の見出しを入力し、2行目以降に商品情報を入力します。

ステップ2 結果を表示したいセルに関数を入力する
次に、検索結果を表示させたいセル(下図、B2セル)を選択し、「=VLOOKUP」の数式を入力します。Excelの数式バー左側にある「fx」ボタンから「関数の引数」ダイアログを開いて入力することも可能です。

ステップ3 検索値と範囲を指定する
第1引数に検索値を入力します。(下図では商品コードが入力されたA2セルを指定)
続いて、第2引数に範囲を指定します。(下図では商品マスタのF2:H5を指定)
数式を複数行にコピーする場合は、検索範囲を絶対参照に変更するようにしましょう。

ワンポイント
F4キーで簡単に絶対参照に切り替えることが可能です。
数式の編集中にF2:H5を選択して「F4キー」を押すと、「$F$2:$H$5」に変更できます。
またキーボードの仕様によって、Fn+F4キーや、Macの場合はCmd+Tなど異なることもあります。F4キーで切り替わらない場合は、Fn+F4キーや、Macの場合は、Command+Tキーを試してみましょう。
ステップ4 列番号と検索方法を指定する第3引数の「列番号」と、第4引数の「検索方法」を指定します。
下図の場合、商品名は、検索範囲F2:H5の左から2列目にあります。そのため、第3引数には「2」を指定します。
また、商品コードが完全に一致するデータを取得したいため、第4引数には「FALSE」を指定します。
完成した数式は、次のとおりです。
=VLOOKUP(A2,$F$2:$H$5,2,FALSE)
Enterキーを押すと、A2セルの「A002」に対応する「ノート」がB2セルに表示されます。

ステップ5 オートフィルで数式をコピーする
関数が完成したら、入力した数式を、次行以降にもコピーしましょう。
関数を入力したセルを選択すると、セルの右下に小さな小さな四角(フィルハンドル)が表示されます。この四角(フィルハンドル)にマウスポインターを合わせると、ポインターが黒い十字型に変わります。この黒い十字型のカーソルを下方向にドラッグすると、数式をまとめてコピーできます。
またポインターが黒い十字型の状態でダブルクリックをすると、隣の列にデータが入力されている行まで数式を一括でコピーすることが可能です。

別シートのデータをVLOOKUPで参照する方法
ここからは、VLOOKUP関数で別シートのデータを参照する方法を紹介します。
範囲を指定するときに参照先のシートを選択する
別シートを参照するには、結果を表示するセルに「=VLOOKUP(A2,」まで入力し、参照先のシートをクリックします。
続けて検索範囲を選択し、列番号と検索方法を入力すれば完成です。範囲はF4キーで絶対参照にしておきましょう。

シート名を含めた範囲指定の書き方を確認する
別シートの範囲は「シート名!セル範囲」と記述します。シート名にスペースがある場合は「'商品 マスタ'!A2:C5」のようにシングルクォーテーション「'」で囲みます。シートをクリックして選択すれば、入力ミスを防げます。
別ブックを参照する場合はファイルの移動や名前変更に注意する
別のExcelファイルも参照できますが、参照先ファイルの移動や名前変更によってリンクの更新が必要になる場合があります。複数のファイルで情報を管理する際は、保存場所とファイル名を統一し、参照関係をわかりやすくしておきましょう。
VLOOKUPでエラーが出たときの原因と対処法
VLOOKUP関数でエラーが出たら、まず表示内容を確認しましょう。代表的な原因と対処法を紹介します。
#N/Aエラーは検索値が範囲内に見つからないときに表示される
「#N/A」は、検索値が指定範囲に見つからない場合などに表示されます。
#N/Aが表示された場合、下記をまずは順に確認してみましょう。
- 検索値が元の表に存在するか、範囲の左端列にあるか
- 範囲の選択漏れや検索方法の指定ミスがないか
- 商品コードなどの照合に「FALSE(完全一致)」を指定しているか
- 正しく入力できているか、
上記を確認してもエラーが直らなかった場合、次のような要因が考えられます。
全角・半角や余分なスペースの違いで一致しないことがある
検索値と元データが同じに見えても、余分なスペースや数値・文字列の形式の違いで一致しない場合があります。
たとえば、全角の「A001」と半角の「A001」は別の文字列として扱われます。
A2セルに対象の文字列がある場合、ASC関数「=ASC(A2)」を使えば、全角英数字を半角に統一できます。ただし、ASC関数は全角カタカナも半角カナに変換するため、商品コードなど英数字の値に使いましょう。
また、文字列に余分なスペースが入っていると、検索できない場合があります。たとえば、「A001」と末尾に空白がある「A001 」も一致しません。A2セルの余分な半角スペースは「=TRIM(A2)」で整理でき、全角スペースはSUBSTITUTE関数で置換できます。
「Ctrl+Hキー」で一括置換する場合は、必要な空白まで消さないよう注意しましょう。
#REF!エラーは列番号が範囲の列数を超えているときに表示される
「#REF!」は、指定した列番号が検索範囲の列数を超えた場合などに表示されます。
たとえば、検索範囲がF2:H5の3列なのに、列番号を「4」にするとエラーになります。取得したい列が範囲の左から何列目か数え直しましょう。また、参照していたセルやシートを削除した場合も発生するため、数式内の参照先を確認してください。
IFERROR関数を組み合わせるとエラー時の表示を変えられる
IFERROR関数を組み合わせると、VLOOKUPでエラーが起きた際に「該当なし」など任意の文字を表示できます。
たとえば、エラーが起きたときは空白を表示させたい場合は、任意の文字に「""」を指定します。
IFERROR関数を使用した数式の例
=IFERROR(VLOOKUP(A2,$F$2:$H$5,2,FALSE),"")
ただし、「#N/A」だけでなく「#REF!」なども置き換えるため、数式の間違いに気づきにくくなる点に注意しましょう。
まず原因を修正し、その後に表示を整えるのがおすすめです。なお、#N/Aエラーのときだけ表示を変えたい場合は、IFNA関数(Excel 2013以降)を使う方法もあります。
VLOOKUPで2つ以上の条件を指定する方法
VLOOKUP関数は通常ひとつの値で検索しますが、作業列を使えば複数条件で検索できます。
作業列で複数の条件を「&」で結合する
たとえば、契約管理台帳でB列に取引先コード、C列に契約種別がある場合、左端のA列に「=B2&"|"&C2」と入力します。
これで「C001|保守契約」のような検索キーを作成できます。区切り文字を入れると、異なる条件の組み合わせが同じ文字列になるのを防ぎやすくなります。作成した数式は下の行にもコピーしましょう。

検索値も同じ順番で結合して指定する
検索する側でも、作業列と同じ順番・区切り文字で条件を結合します。
たとえばF2に取引先コード、G2に契約種別を入力し、A列が検索キー、D列が契約終了日の台帳なら、下記の数式で終了日を取得できます。ただし、同じ検索キーが複数あると最初の一致行が返されるため、検索キーが重複していないか事前に確認しましょう。
この例の場合の数式
=VLOOKUP(F2&"|"&G2,$A$2:$D$100,4,FALSE)
VLOOKUPを使うときの注意点
VLOOKUP関数を使う際は、以下3つのポイントに注意しましょう。
- 検索列(範囲の左端列)より左側の値は取得できない……必要に応じて列の配置を変えるか、左右どちらの列からも値を取得できるXLOOKUP関数を使いましょう。
- 列の挿入・削除で取得する項目がずれることがある……検索範囲内で列を挿入・削除すると、目的の項目が別の列に移り、意図しない値が返る場合があります。表の構成を変更した際は、数式の列番号と検索結果を確認しましょう。
- 数式やデータが多いと動作が重くなることがある……検索範囲を必要な部分に絞り、不要な数式を整理しましょう。
VLOOKUPの弱点を補うXLOOKUP関数
XLOOKUP関数は、VLOOKUP関数の弱点を補う便利な検索関数です。検索列の左右どちらにある値も取得でき、列番号を数える必要がありません。また、初期設定で完全一致の検索になるため、FALSEの指定忘れも防げます。
たとえば「=XLOOKUP(A2,F2:F5,G2:G5,"該当なし")」で商品名を検索できます。ただし、Excel 2016・2019では利用できません。これらのバージョンでは、INDEX関数とMATCH関数を組み合わせることで、検索列の左側にある値も取得できます。
よくある質問(FAQ)
最後に、VLOOKUP関数で初心者が疑問に感じやすいポイントを紹介します。
Q. VLOOKUPを簡単に使うコツは?
A. 検索値・範囲・列番号・検索方法の4つを順番に確認するのがコツです。検索値は範囲の左端列に置き、商品コードなどの照合には「FALSE」を指定しましょう。また数式を下方向にコピーする前に、「F4キー」で検索範囲を絶対参照にしておくと、参照先がずれるのを防げます。
Q. 初心者がVLOOKUPを練習するにはどうすればいい?
A. 商品コード・商品名・単価の3列の表を作り、コードから商品名を取得してみましょう。慣れたら単価の取得や、別シートの参照、存在しないコードによる「#N/A」の確認も試してみてください。
Q. 検索方法をTRUE(近似一致)にするのはどんなとき?
A. TRUE(近似一致)は、売上金額に応じた手数料率や、点数に応じた評価ランクを求めるときに使います。検索列は昇順に並べる必要があり、検索値以下で最も大きい値の行から結果が返ります。商品コードや契約番号のように、正確な一致が必要な検索ではFALSEを選びましょう。
Q. GoogleスプレッドシートでもVLOOKUPは使える?
A. Googleスプレッドシートでも使用できます。ただし、別のスプレッドシートファイルを参照する場合は「IMPORTRANGE関数」を組み合わせる必要があります。操作画面や一部の機能の違いにも注意しましょう。
Q. VLOOKUPとXLOOKUPはどちらを使えばいい?
A. XLOOKUP関数に対応したExcelなら、左右どちらの列も検索でき、列番号の指定が不要なXLOOKUPが便利です。一方、古いExcelとの互換性が必要な場合や、既存のファイルでVLOOKUPが使われている場合はVLOOKUP関数の知識も欠かせません。利用環境と目的に応じて使い分けましょう。
まとめ
VLOOKUP関数は、コードや番号をもとに表から必要な情報を取り出し、転記の手間とミスを減らせる関数です。使いこなすポイントは、検索値を範囲の左端列に置くこと、検索方法にFALSEを指定すること、範囲を絶対参照にすることの3つです。#N/Aエラーが出たときは、余分なスペースや全角・半角の違いを疑いましょう。
まずは、普段使っている請求書や名簿で、コードから名前を表示するところから試してみてください。Microsoft 365やExcel 2021以降を使っている場合は、XLOOKUP関数もあわせて覚えておくと、より柔軟に検索できます。
この記事を書いたライター
田村 真弥
Microsoft Office Specialist(MOS)
Microsoft Office Specialist(MOS)のWord・Excel Expert資格をはじめ、PowerPointを含む複数のOffice資格を保有するライター。商社勤務時代には、Excelを使ったデータ管理・集計やWordでの文書作成、PowerPointでの商品PR資料・パンフレット作成など、Officeソフトを幅広く実務で活用してきました。資格取得で培った専門知識と豊富な実務経験を活かし、Excel・Wordの基本操作から応用機能まで、初心者の方にも実践しやすく、わかりやすい記事をみなさまにお届けしています。