【Excel】VLOOKUP関数の使い方|基本から応用まで初心者向けに解説

ExcelのVLOOKUP関数は、データ管理の効率を一気に上げてくれる超重要な関数です!この記事では、基本の使い方からエラー対策、実務テクニックまで丁寧に解説していきます。
- VLOOKUP関数の基本的な書き方と仕組み
- 具体的な実践例で使い方をマスター
- コピー時にずれない絶対参照のテクニック
- ドロップダウンリストとの組み合わせ方法
- IFERROR関数でエラーを非表示にする方法
- データの重複を確認する2つの方法
Sub VLOOKUP自動検索()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim i As Long
For i = 2 To 4
ws.Cells(i, “C”).Value = WorksheetFunction.VLookup( _
ws.Cells(i, “B”), Range(“E:G”), 2, False)
ws.Cells(i, “D”).Value = WorksheetFunction.VLookup( _
ws.Cells(i, “B”), Range(“E:G”), 3, False)
Next i
MsgBox “3件のVLOOKUP検索が完了しました”
End Sub
| E | F | G | |
|---|---|---|---|
| 1 | 商品ID | 果物名 | 単価 |
| 2 | A001 | りんご | 150 |
| 3 | A002 | みかん | 80 |
| 4 | A003 | ぶどう | 300 |
| 5 | A004 | いちご | 250 |
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 注文No | 商品ID | 果物名 | 単価 |
| 2 | 1 | A003 | ぶどう | 300 |
| 3 | 2 | A001 | りんご | 150 |
| 4 | 3 | A004 | いちご | 250 |
☝ 実務では数百行のデータもVBAマクロで一括処理できます
VLOOKUP関数とは?基本の仕組みを解説
VLOOKUP関数は、指定した表の中から検索値に一致するデータを探し出し、対応する列の値を返す関数です。「V」はVertical(垂直)の頭文字で、表を縦方向に検索するという意味があります。
例えば、商品IDを入力するだけで、商品名や単価を自動的に表示させることができます。手作業でデータを探す必要がなくなるため、業務効率が大幅にアップします。
VLOOKUP関数の書き方(構文と引数)
VLOOKUP関数の基本構文は以下の通りです。

=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
| 引数 | 説明 | 入力例 |
|---|---|---|
| 検索値 | 探したい値、またはそのセル | B2 |
| 範囲 | 検索対象のデータ範囲(検索値が左端列) | E2:G10 |
| 列番号 | 範囲の左端から数えて何列目の値を返すか | 2 |
| 検索方法 | FALSEで完全一致、TRUEで近似一致 | FALSE |
ポイント: 実務では検索方法に「FALSE」(完全一致)を指定するのが基本です。TRUEを使うケースは料金表の範囲検索など、限られた場面になります。
VLOOKUP関数の具体的な使い方【実践例】
ここでは、果物の注文表に商品マスタから「果物名」と「単価」を自動入力する例で解説します。
果物名を取得するVLOOKUP関数を組んでみよう
果物名を表示したいセル(例: C2)をクリックします。
以下の数式を入力します。
=VLOOKUP(B2,E:G,2,FALSE)
- B2: 検索値(商品ID)
- E:G: 検索範囲(商品マスタ)
- 2: 左端から2列目(果物名の列)
- FALSE: 完全一致
数式を入力したらEnterキーを押して確定します。B2のIDに対応する果物名が自動的に表示されます。
同じ考え方で「単価」も取得してみよう
単価を取得する場合は、列番号を「3」に変更するだけです。
=VLOOKUP(B2,E:G,3,FALSE)
VLOOKUP関数をコピーするとずれる?絶対参照で解決
VLOOKUP関数を下のセルにコピーすると、検索範囲がずれてしまい正しい結果が返ってこないことがあります。これはExcelの「相対参照」という仕組みが原因です。
解決方法:絶対参照($マーク)を使う
検索範囲のセル参照に「$」を付けることで、コピーしても範囲がずれなくなります。
=VLOOKUP(B2,$E:$G,2,FALSE)
絶対参照の付け方
数式バーの中の範囲部分(E:G)をドラッグして選択します。
キーボードの「F4」キーを1回押すと、自動的に「$」マークが付きます。
「$」が付いた状態で下のセルにコピーすれば、範囲がずれることなく正しい結果が表示されます。
ドロップダウンリストとVLOOKUP関数を組み合わせる方法
検索値を手入力すると、入力ミスで#N/Aエラーが発生しやすくなります。ドロップダウンリスト(プルダウン)を使えば、リストから選択するだけで済むため、入力ミスを防止できます。
検索値を入力するセル(例: B2)を選択します。
メニューバーの「データ」タブから「データの入力規則」を選択します。
入力値の種類で「リスト」を選び、元の値にマスタデータのID列を指定します。
セルのドロップダウンからIDを選択すると、VLOOKUP関数により対応するデータが自動的に表示されます。
VLOOKUP関数のエラー対処法|IFERROR関数で非表示にする
VLOOKUP関数で検索値が見つからない場合、「#N/A」エラーが表示されます。このエラーを非表示にするには、IFERROR関数と組み合わせます。
#N/Aエラーが出る主な原因
| エラー | 原因 |
|---|---|
| #N/A | 検索値が範囲内に存在しない |
| #REF! | 列番号が範囲の列数を超えている |
| #VALUE! | 引数の指定に誤りがある |
IFERROR関数でエラーを空白にする方法
=IFERROR(VLOOKUP(B2,$E:$G,2,FALSE),"")
この数式は、VLOOKUP関数がエラーを返した場合に空白(””)を表示します。空白の代わりに「該当なし」などの文字列を指定することもできます。
VLOOKUP関数でデータの重複を確認する方法
VLOOKUP関数を使う前に、マスタデータに重複がないか確認しておくことが重要です。重複があると、VLOOKUP関数は最初に見つかったデータしか返さないため、意図しない結果になる場合があります。
COUNTIF関数で重複チェック
COUNTIF関数を使えば、各データが何件あるかをカウントできます。
=COUNTIF(E:E,E2)
この数式の結果が「2以上」なら、重複データがあることを意味します。
条件付き書式で重複を色分け
Excelの条件付き書式を使うと、重複データをハイライト表示できます。
重複を確認したい範囲を選択します。
「ホーム」タブ →「条件付き書式」→「セルの強調表示ルール」→「重複する値」を選択します。
重複データに適用する色を選んで「OK」をクリックすると、重複しているセルが色分けされます。
VLOOKUP関数で複数の検索結果を表示する方法
検索値に一致するデータが複数ある場合、通常のVLOOKUP関数では最初の1件しか取得できません。すべての結果を表示するには、少し工夫が必要です。
この場合、COUNTIF関数とROW関数を組み合わせた作業列を使うことで、複数の結果を取得できるようになります。詳しい手順は上記の画像を参考にしてください。
VLOOKUPをVBAで自動化する方法
VLOOKUP関数を手動で入力する代わりに、VBAマクロを使えば複数行の検索を一括で自動実行できます。大量のデータを処理する場合に特に効果的です。
' 商品IDから果物名・単価を自動検索するマクロ
Sub VLOOKUP自動検索()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim i As Long
For i = 2 To 4
ws.Cells(i, "C").Value = WorksheetFunction.VLookup( _
ws.Cells(i, "B"), Range("E:G"), 2, False)
ws.Cells(i, "D").Value = WorksheetFunction.VLookup( _
ws.Cells(i, "B"), Range("E:G"), 3, False)
Next i
MsgBox "3件のVLOOKUP検索が完了しました"
End Sub
VBAマクロの実行結果は記事冒頭のインタラクティブデモで確認できます。ボタンを押すとアニメーションで動作をシミュレーションします。
VLOOKUP関数でよくある質問(FAQ)
Q. VLOOKUP関数で別シートのデータを参照できますか?
はい、できます。範囲の指定で「シート名!セル範囲」の形式を使います。
=VLOOKUP(B2,Sheet2!A:C,2,FALSE)
Q. VLOOKUP関数とXLOOKUP関数の違いは何ですか?
XLOOKUP関数はExcel 2021以降(Microsoft 365含む)で使える新しい関数です。VLOOKUP関数では検索値が範囲の左端列にある必要がありますが、XLOOKUPではその制約がありません。また、エラー処理も引数で指定できるため、IFERROR関数との組み合わせが不要になります。
XLOOKUPの構文や引数の詳細は「XLOOKUP関数の使い方完全ガイド|VLOOKUPとの違い・複数条件・VBA実装まで」で詳しく解説しています。
Q. 検索方法のTRUEとFALSEはどう使い分けますか?
通常の業務では「FALSE(完全一致)」を使うのが基本です。TRUE(近似一致)は、料金表や送料表など、範囲で区切られたデータを検索する場合に使います。TRUEを使う場合は、データが昇順に並んでいる必要があります。
Q. VLOOKUP関数で「#N/A」エラーが出る原因は?
主な原因は以下の通りです。
- 検索値がマスタデータに存在しない
- 検索値の前後に余分なスペースが入っている
- データ型が異なる(数値と文字列が混在)
- 検索範囲が正しく指定されていない
実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。
| D | E | F | |
|---|---|---|---|
| 1 | 検索値 | 結果 | |
| 2 | A001 | ? |
| A | B | C | |
|---|---|---|---|
| 1 | 商品ID | 商品名 | 価格 |
| 2 | A001 | ノートPC | ¥89,800 |
| 3 | A002 | マウス | ¥2,980 |
| 4 | A003 | キーボード | ¥5,480 |
| A 1列目 | B 2列目 | C 3列目 | |
|---|---|---|---|
| 2 | A001 | ノートPC | ¥89,800 |
| A | B | C | E | F | |
|---|---|---|---|---|---|
| 2 | A001 | ノートPC | ¥89,800 | A001 | ノートPC |
まとめ
この記事では、ExcelのVLOOKUP関数の使い方を基本から応用まで解説しました。
- VLOOKUP関数の基本: =VLOOKUP(検索値, 範囲, 列番号, FALSE)で表からデータを自動取得
- 絶対参照: コピー時に範囲がずれないよう「$」を付ける
- ドロップダウンリスト: 入力ミス防止に効果的
- IFERROR関数: エラーを非表示にして見た目をスッキリ
- 重複チェック: COUNTIF関数と条件付き書式で事前確認
- 複数結果の表示: 作業列を使って対応可能
VLOOKUP関数をマスターすれば、Excelでのデータ管理が格段に効率化します。ぜひ実務で活用してみてください。
Excelスキルを活かしてSNS運用も自動化しませんか?
Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。
→ SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較
関連記事
- 【Excel】IFERROR関数の使い方!エラーを非表示にする方法を図解で解説 — VLOOKUPのエラー処理に必須
- 【Excel】IF関数の使い方!条件分岐を図解でわかりやすく解説 — 条件付き検索に
- 【Excel】COUNTIFS関数の使い方!複数条件でデータを数える方法を図解で解説 — データ集計に
- Excelおすすめ関数6選|初心者が最初に覚えるべき関数ガイド — Excel関数の全体像
VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。
LINEでExcelを気軽に学べる
