← 記事一覧へ戻る

Excel VLOOKUP関数の使い方|つまずきやすいポイント徹底解説

Excel VLOOKUP関数の基本構文・設定・実例を会社員目線で5分マスター。別シートを参照する応用と#N/Aエラー対処も網羅。

「VLOOKUP関数って聞いたことあるけど、自分で書いたことはない」 「他人が書いた式は何となく読めるけど、ゼロから書くのは怖い」

そんな経験ありませんか?

エンジニア向けのVLOOKUP関数の解説記事なんてあるの?逆にそれを知らんわ笑

ということで、この記事は、会社員の僕が実際に使ってみて分かった基本の使い方と、僕がぶつかった実際のエラーと対処法を、初心者目線で徹底解説します。

最後まで読めば、Excelの定番関数VLOOKUPを自分で書けるようになりますよ🌱


この記事でわかること

  • VLOOKUP関数がどんな関数なのか(イメージで理解)
  • どんな場面で使えるか・何が楽になるか
  • 基本構文と4つの設定の意味
  • 実例:商品コードから商品名・単価を引く
  • 応用:別シートを参照する方法(現場で一番使うパターン)
  • つまずきやすいポイントとエラー対処

VLOOKUP関数ってどんな関数?

ひとことで言うと、「縦に並んだ表(マスタ)から、欲しい値を自動で引っ張ってくる」関数です。

VLOOKUP関数の概要図

商品コードを入れると、対応する商品名や単価が自動で表示される。会社員が日常的に作る売上記録や在庫管理表などで、よく使われる関数です。


こんな場面で使える

会社員の業務で、こういう場面ありませんか?

  • 売上記録:商品コードを入れたら、商品名と単価が自動で出てきてほしい
  • 在庫管理:商品コードで在庫数を引っ張ってきたい
  • 顧客リスト:顧客IDから氏名・住所・電話番号を一覧化したい
  • 見積書作成:商品コードから単価を引いて、数量と掛け算したい

僕の本業でも、毎月の集計作業でVLOOKUP関数がめちゃくちゃ活躍してます。


こんな作業が楽になる

VLOOKUP関数を使うと、作業が一気にラクになります。

VLOOKUP関数のBefore/After比較

ポイントは3つ。

  • 商品名や単価を毎回 手入力で転記 → 商品コードを入れるだけで 自動表示
  • 100行のリストに 30分 かかる → 30秒 で完了
  • 手入力で 入力ミス が混入 → マスタ参照だから ミスゼロ

しかも、商品マスタを1箇所更新すれば、関連する全ての表が自動で更新されます。

「これ覚えたら、Excel作業が一段階上のレベルになる」って感覚をぜひ味わってください🌱


VLOOKUP関数の構文と4つの設定

それでは本題。構文はこんな感じです。

=VLOOKUP(検索値, 検索範囲, 列番号, 検索方法)

カッコの中に 4つの設定 を入れます(プログラミングの世界では 「引数(ひきすう)」 と呼びますが、要は「カッコの中の値」のことです)。順番に見ていきます。

設定① 検索値(何を探すか)

検索したい値そのもの、またはそのセル参照を入れます。

  • 直接入力:"P001"
  • セル参照:E2

実務ではセル参照を使うことがほとんどです。

設定② 検索範囲(どこから探すか)

商品マスタなど、検索元になるデータ範囲を指定します。

  • 範囲指定:A2:C9
  • 列全体:A:C(行数が増えても自動対応で便利)

ここで重要なのが、「検索値は範囲の左端列に必ずある」 という前提です。商品コードで検索したいなら、商品コードの列が範囲の一番左に来るようにします。

設定③ 列番号(何列目を返すか)

範囲の中で、何列目の値を返すかを数字で指定します。

  • 商品名を返したい:2(左端から2列目)
  • 単価を返したい:3(左端から3列目)

設定④ 検索方法(完全一致 or 近似一致)

  • FALSE(または 0):完全一致(基本これを使う)
  • TRUE(または 1):近似一致(並べ替えが必要・特殊用途)

迷ったら FALSE 一択 で大丈夫です。


実例で5分マスター|商品コード→商品名・単価を引く

関数ジェネレーターを読み込んでいます。

実際に動かしてみます。文房具の商品マスタから、商品コードに対応する商品名と単価を引いてみましょう。

Step1:商品マスタを用意する

A〜C列に商品マスタを作ります。商品コード・商品名・単価が縦に並んだシンプルな表です。

商品マスタの例

ポイントは 「検索したい列(商品コード)が一番左にある」 こと。これがVLOOKUP関数の前提です。

Step2:VLOOKUP関数を入力する

E列に売上記録を作ります。E列に商品コード、F列に商品名(VLOOKUPで引く)、G列に単価(VLOOKUPで引く)、H列に数量を入れる構成です。

F2セルに以下を入力します。

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

Excelは入力中に設定のヒント(ツールチップ)を出してくれます。設定の意味を忘れてもこの場で確認できるので、慣れないうちはありがたい機能です。

VLOOKUP関数を入力中の画面

$ マーク(絶対参照)を付けるのが重要ポイント。これを付けておかないと、後でオートフィルでコピーした時に範囲がズレてエラーになります。

Step3:オートフィルで一気にコピーする

F2の数式が完成したら、G2にも単価用の数式を入れます。

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

列番号を 3 にすると、3列目の単価が返ってきます。

F2:G2を選択して、右下の小さい四角を下にドラッグ。E列の商品コードに対応する商品名・単価が一気に埋まります。

オートフィルで一気にコピーした結果

これでVLOOKUP関数の基本はマスターです。


【応用】別シートを参照する方法(現場で一番使うパターン)

ここまでは同じシート内で完結する例でした。でも、現場では別シートを参照するケースの方が多い です。

商品マスタは「商品マスタ」シート、売上記録は「売上記録」シートに分けて管理する、というのが現場の普通の運用です。

書き方の違い

別シートを参照するVLOOKUP関数は、こんな見た目になります。

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

範囲の前に シート名 + ! が付いていて、「商品マスタ」シートのA〜C列から検索する、という意味です。

別シートを参照するVLOOKUP関数

実際の入力手順(シート名は手打ちしない)

「シート名 + ! を付ける」って書くと難しく聞こえますが、実際は 手で打つ必要はない です。Excelがシートをまたいでクリックするだけで自動で入力してくれます。

僕も最初は「シート名って毎回手打ちするの?タイポしそう…」って構えてたんですけど、ぜんぜん違いました笑

具体的な手順はこんな感じ。

  1. 売上記録シートの B2セルに =VLOOKUP(A2, まで入力
  2. 画面下の 「商品マスタ」シートのタブをクリック
  3. 商品マスタシートで A〜C列を範囲選択(列ヘッダー A をクリック → Shift押しながら C をクリック)
  4. そのまま続けて , 2, FALSE) と入力 → Enter
  5. 自動的に 商品マスタ!A:C の形で参照が入る

→ シート名を手打ちする必要なし。タイポも防げます。

注意点:シート名にスペースがある場合

シート名に 半角・全角スペースが含まれる場合、シート名をシングルクォートで囲む必要があります。

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

スペースの有無で記法が変わるので、シート名はなるべくシンプルにしておくのがおすすめです。


つまずきやすいエラーと対処法

VLOOKUP関数を使ってると、僕も実際にぶつかったエラーが3つあります。

#N/A エラー:検索値が見つからない

検索値が検索範囲に存在しない場合に出るエラーです。例えば、商品マスタにない「P999」を検索すると #N/A になります。

#N/A エラーが出た画面

このエラーは「データが見つかりませんでしたよ」という正常な動作。値が本当に存在するかを確認するのが第一歩です。

ただし、「FALSE指定なのに違う値が出る」「データはあるはずなのに #N/A になる」 という詰まり方をすることもあります。これは表記揺れやデータ型の違いが原因のことが多くて、僕もこれで結構ハマりました。詳しくはVLOOKUPができない原因5選で解説しています。

#REF! エラー:列番号が範囲を超えている

検索範囲がA:Cの3列なのに、列番号を 4 と指定したような場合に出ます。列番号が範囲内に収まっているか確認しましょう。

#VALUE! エラー:設定の型が違う

列番号に数字以外を入れた場合などに出ます。設定の順番や型を再確認してください。


XLOOKUP関数を使える環境なら検討も

最後に補足。Excel 2021 / Microsoft 365 環境では、XLOOKUP関数 という新しい選択肢があります。

XLOOKUP関数は、VLOOKUPの不便な点(左端列縛り・列番号の指定など)が解消されていて、より柔軟に使えます。

ただし、Excel 2019 以前の環境では使えない ので、職場のExcelバージョンを確認してから使うかどうか判断するのがおすすめです。

XLOOKUPとの違いや使い分けについては、VLOOKUPができない原因5選の後半で解説しています。


よくある質問(FAQ)

Q1:絶対参照の $ マークって毎回手で入力するの?

いいえ、F4 キー で自動入力できます。

例:A2:C9 を入力したあと F4 を押すと、自動で $A$2:$C$9 になります。1回ずつ押すたびに参照形式が切り替わるので、覚えておくと爆速です。

Q2:完全一致は TRUE と FALSE どっちですか?

完全一致は FALSE(または 0 です。TRUE(または 1)は近似一致で、特殊な用途(昇順並べ替えが必要)でしか使いません。迷ったら FALSE で大丈夫です。

Q3:検索範囲を別シートにできますか?

できます。シート名!範囲 の形で指定します(本文の「応用編」参照)。


まとめ

VLOOKUP関数は、4つの設定の意味さえ押さえれば5分でマスターできる関数です。

  • 検索値・検索範囲・列番号・検索方法(FALSE)の4つ
  • 絶対参照($)を忘れずに
  • 現場では別シートを参照するパターンが一番多い

今日のアクション:架空の商品マスタを1個作って、VLOOKUP関数を1回書いてみる。手を動かすと一気に理解が進みます。


もし解決できないエラーがあったら教えてください

この記事で書いた基本のエラーで解決できないケースもあると思います。

「FALSE指定なのに違う値が出る」「データはあるはずなのに #N/A になる」など、詰まったエラーがあったら気軽に教えてください。次の記事のネタにさせてもらいます🌱

連絡手段:

  • 📝 記事下の コメント欄 にどうぞ
  • 🐦 X(旧Twitter)の @miyamon_ai にリプライ・DMでもOK

会社員の僕が業務効率化するためのノウハウを定期的に発信しています。


関連記事: