Excel初心者

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

しんたろ。

ExcelのVLOOKUP関数は、データ管理の効率を一気に上げてくれる超重要な関数です!この記事では、基本の使い方からエラー対策、実務テクニックまで丁寧に解説していきます。

この記事でわかること
  • VLOOKUP関数の基本的な書き方と仕組み
  • 具体的な実践例で使い方をマスター
  • コピー時にずれない絶対参照のテクニック
  • ドロップダウンリストとの組み合わせ方法
  • IFERROR関数でエラーを非表示にする方法
  • データの重複を確認する2つの方法
この操作、VBAで一瞬で自動化できます
まずは関数の使い方を解説し、最後に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
下のデモで実行結果を確認できます
📊 商品管理.xlsx – Excel
EFG
1 商品ID果物名単価
2 A001りんご150
3 A002みかん80
4 A003ぶどう300
5 A004いちご250
ABCD
1 注文No商品ID果物名単価
2 1A003 ぶどう 300
3 2A001 りんご 150
4 3A004 いちご 250
準備完了 100%
✅ 3件の商品IDから果物名と単価がVLOOKUPで自動入力されました!
☝ 実務では数百行のデータもVBAマクロで一括処理できます

VLOOKUP関数とは?基本の仕組みを解説

VLOOKUP関数は、指定した表の中から検索値に一致するデータを探し出し、対応する列の値を返す関数です。「V」はVertical(垂直)の頭文字で、表を縦方向に検索するという意味があります。

例えば、商品IDを入力するだけで、商品名や単価を自動的に表示させることができます。手作業でデータを探す必要がなくなるため、業務効率が大幅にアップします。

VLOOKUP関数の書き方(構文と引数)

VLOOKUP関数の基本構文は以下の通りです。

VLOOKUP関数の4つの引数(検索値・範囲・列番号・検索方法)の仕組みを示す図解
VLOOKUP関数の引数の仕組み
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
引数説明入力例
検索値探したい値、またはそのセルB2
範囲検索対象のデータ範囲(検索値が左端列)E2:G10
列番号範囲の左端から数えて何列目の値を返すか2
検索方法FALSEで完全一致、TRUEで近似一致FALSE

ポイント: 実務では検索方法に「FALSE」(完全一致)を指定するのが基本です。TRUEを使うケースは料金表の範囲検索など、限られた場面になります。

VLOOKUP関数の具体的な使い方【実践例】

ここでは、果物の注文表に商品マスタから「果物名」と「単価」を自動入力する例で解説します。

果物名を取得するVLOOKUP関数を組んでみよう

STEP1
結果を表示したいセルを選択する

果物名を表示したいセル(例: C2)をクリックします。

STEP2
VLOOKUP関数を入力する

以下の数式を入力します。

=VLOOKUP(B2,E:G,2,FALSE)
  • B2: 検索値(商品ID)
  • E:G: 検索範囲(商品マスタ)
  • 2: 左端から2列目(果物名の列)
  • FALSE: 完全一致
STEP3
Enterキーで確定する

数式を入力したらEnterキーを押して確定します。B2のIDに対応する果物名が自動的に表示されます。

同じ考え方で「単価」も取得してみよう

単価を取得する場合は、列番号を「3」に変更するだけです。

=VLOOKUP(B2,E:G,3,FALSE)

VLOOKUP関数をコピーするとずれる?絶対参照で解決

VLOOKUP関数を下のセルにコピーすると、検索範囲がずれてしまい正しい結果が返ってこないことがあります。これはExcelの「相対参照」という仕組みが原因です。

VLOOKUP関数の相対参照と絶対参照の比較図
相対参照(NG)と絶対参照(OK)の違い

解決方法:絶対参照($マーク)を使う

検索範囲のセル参照に「$」を付けることで、コピーしても範囲がずれなくなります。

=VLOOKUP(B2,$E:$G,2,FALSE)

絶対参照の付け方

STEP1
数式バーで範囲部分を選択する

数式バーの中の範囲部分(E:G)をドラッグして選択します。

STEP2
F4キーを押す

キーボードの「F4」キーを1回押すと、自動的に「$」マークが付きます。

STEP3
数式をコピーする

「$」が付いた状態で下のセルにコピーすれば、範囲がずれることなく正しい結果が表示されます。

検索値を手入力すると、入力ミスで#N/Aエラーが発生しやすくなります。ドロップダウンリスト(プルダウン)を使えば、リストから選択するだけで済むため、入力ミスを防止できます。

STEP1
ドロップダウンリストを設定したいセルを選択する

検索値を入力するセル(例: B2)を選択します。

STEP2
データタブの「データの入力規則」をクリックする

メニューバーの「データ」タブから「データの入力規則」を選択します。

STEP3
「リスト」を選択し、元の値を設定する

入力値の種類で「リスト」を選び、元の値にマスタデータのID列を指定します。

STEP4
リストから選択して動作確認する

セルのドロップダウンから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の条件付き書式を使うと、重複データをハイライト表示できます。

STEP1
データ範囲を選択する

重複を確認したい範囲を選択します。

STEP2
条件付き書式から「重複する値」を選択する

「ホーム」タブ →「条件付き書式」→「セルの強調表示ルール」→「重複する値」を選択します。

STEP3
書式を設定してOKをクリックする

重複データに適用する色を選んで「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」エラーが出る原因は?

主な原因は以下の通りです。

  • 検索値がマスタデータに存在しない
  • 検索値の前後に余分なスペースが入っている
  • データ型が異なる(数値と文字列が混在)
  • 検索範囲が正しく指定されていない
💻 操作を体験してみよう!

実際の操作手順をクリックして体験できます。各ステップをクリックしてみましょう。

関数の引数 — VLOOKUP
第1引数: 検索値(探したい値)
E2
→ 「A001」が入っているセルを指定
DEF
1検索値結果
2?
▲ このセルの値で検索します
第2引数: 範囲(データの表)
$A$1:$C$5
→ 検索対象の表全体を選択。左端列が検索列になる
ABC
1商品ID商品名価格
2A001ノートPC¥89,800
3A002マウス¥2,980
4A003キーボード¥5,480
◀ A列(左端)を検索 → 指定列の値を返す
$マーク(絶対参照)をつけると、数式をコピーしても範囲がずれません
第3引数: 列番号(何列目を返す?)
2
→ 範囲内の左から2列目(B列=商品名)を返す
A
1列目
B
2列目
C
3列目
2A001ノートPC¥89,800
2列目 = B列の「ノートPC」を取得
第4引数: 検索方法
FALSE(完全一致)
→ FALSE=完全一致。通常はFALSEを指定します。
=VLOOKUP(E2, $A$1:$C$5, 2, FALSE)
ノートPC
E2の「A001」をA列で探し、同じ行のB列の値を返しました
ABCEF
2A001ノートPC¥89,800ノートPC
1 結果を表示したいセルに =VLOOKUP( と入力
2 検索値のセルをクリック(例: E2)
3 データ範囲を選択し、F4で絶対参照に
4 列番号とFALSEを指定してEnter

まとめ

この記事では、ExcelのVLOOKUP関数の使い方を基本から応用まで解説しました。

  • VLOOKUP関数の基本: =VLOOKUP(検索値, 範囲, 列番号, FALSE)で表からデータを自動取得
  • 絶対参照: コピー時に範囲がずれないよう「$」を付ける
  • ドロップダウンリスト: 入力ミス防止に効果的
  • IFERROR関数: エラーを非表示にして見た目をスッキリ
  • 重複チェック: COUNTIF関数と条件付き書式で事前確認
  • 複数結果の表示: 作業列を使って対応可能

VLOOKUP関数をマスターすれば、Excelでのデータ管理が格段に効率化します。ぜひ実務で活用してみてください。


Excelスキルを活かしてSNS運用も自動化しませんか?

Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。

SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較

Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK
期間限定でChatGPT✖︎Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました