🔍 Step 32: VLOOKUPの基本構文
実務で最も使われる関数をマスターしよう!
📋 このステップで学ぶこと
- VLOOKUPとは何か
- 4つの引数の意味
- 検索値と範囲の指定方法
- 列番号の理解
- 完全一致と近似一致の違い
🎯 1. VLOOKUPとは
🔑 VLOOKUPの役割
VLOOKUPは、縦方向(Vertical)に検索して、対応する値を探し出す(LOOKUP)関数です。例えば、商品コードから価格を探す、社員番号から部署を探すなど、別の表から情報を引っ張ってくるときに使います。
VLOOKUPは、縦方向(Vertical)に検索して、対応する値を探し出す(LOOKUP)関数です。例えば、商品コードから価格を探す、社員番号から部署を探すなど、別の表から情報を引っ張ってくるときに使います。
📊 VLOOKUPのイメージ
📚 商品マスタ(参照表)
| 商品コード | 商品名 | 単価 |
| A001 | ノートPC | 80000 |
| A002 | マウス | 2000 |
| A003 | キーボード | 3500 |
⬇
🔍 A002を検索
単価を取得したい
⬇
✅ 売上表(入力先)
| 商品コード | 数量 | 単価 |
| A002 | 5 | 2000 ← VLOOKUP |
💡 A002の単価(2000)が自動で入力される
💡 日常生活での例
住所録で「田中さん」を探して電話番号を調べる作業と同じです。名前(検索値)で探して、電話番号(取得したい値)を見つけます。VLOOKUPは、これをExcelが自動的にやってくれる機能です。
住所録で「田中さん」を探して電話番号を調べる作業と同じです。名前(検索値)で探して、電話番号(取得したい値)を見つけます。VLOOKUPは、これをExcelが自動的にやってくれる機能です。
📝 2. VLOOKUPの基本構文
📋 VLOOKUPの構文(※横スクロールできます)
【VLOOKUPの構文】
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
4つの引数:
① 検索値: 何を探すか
② 範囲: どこから探すか
③ 列番号: 何列目の値を取得するか
④ 検索方法: 完全一致(FALSE)か近似一致(TRUE)か
📊 VLOOKUPの4つの引数
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
① 検索値 – 何を探すか
例: A2(商品コード「A002」が入っているセル)
または直接 “A002” と指定
または直接 “A002” と指定
② 範囲 – どこから探すか
例: E2:G10(商品マスタ全体)
⚠️ 左端の列に検索値がある範囲を指定
⚠️ 左端の列に検索値がある範囲を指定
③ 列番号 – 何列目の値を取得するか
例: 3(範囲の左から3列目)
E列が1、F列が2、G列が3
E列が1、F列が2、G列が3
④ 検索方法 – 完全一致か近似一致か
FALSE または 0 → 完全一致(推奨)
TRUE または 1 → 近似一致
TRUE または 1 → 近似一致
📊 具体例(※横スクロールできます)
【具体例】
商品マスタ(E列〜G列):
E列 F列 G列
2 A001 ノートPC 80000
3 A002 マウス 2000
4 A003 キーボード 3500
売上表のC2セルに単価を表示したい:
A2セルに「A002」が入力されている
数式:
=VLOOKUP(A2, $E$2:$G$4, 3, FALSE)
結果: 2000
📝 3. 各引数の詳しい説明
① 検索値
📋 検索値の指定方法(※横スクロールできます)
【検索値の指定方法】
✓ セル参照: A2
✓ 直接入力: “A002″(文字列はダブルクォートで囲む)
✓ 数値: 1001(数値はそのまま)
注意点:
・検索値は範囲の左端列に存在する必要がある
・大文字小文字は区別されない(”ABC”=”abc”)
・全角半角は区別される(”123″≠”123”)
② 範囲
📋 範囲の指定方法(※横スクロールできます)
【範囲の指定方法】
正しい指定:
✓ $E$2:$G$10(絶対参照推奨)
✓ Sheet2!$A$1:$C$100(別シート参照)
間違った指定:
✗ F2:G10(検索列が含まれていない)
✗ G2:E10(左右が逆)
重要:
・範囲の左端列に検索値が必要
・絶対参照($)を使うと数式をコピーしやすい
📊 範囲指定の正しい例と間違った例
✅ 正しい範囲指定
| E列 | F列 | G列 |
| コード | 商品名 | 単価 |
| A001 | ノートPC | 80000 |
範囲: E2:G10
検索列(E列)が左端にある ✓
検索列(E列)が左端にある ✓
❌ 間違った範囲指定
| E列 | F列 | G列 |
| コード | 商品名 | 単価 |
| A001 | ノートPC | 80000 |
範囲: F2:G10
検索列(E列)が含まれていない ✗
検索列(E列)が含まれていない ✗
③ 列番号
📋 列番号の数え方(※横スクロールできます)
【列番号の数え方】
範囲の左端を1として数える:
範囲が E2:G10 の場合:
E列 = 1列目
F列 = 2列目
G列 = 3列目
注意:
・Excelの列番号(A,B,C…)ではない
・範囲内での順番を指定
📊 列番号の数え方
| E列 | F列 | G列 |
|
列番号: 1
商品コード
|
列番号: 2
商品名
|
列番号: 3
単価
|
| A001 | ノートPC | 80000 |
💡 単価を取得したい → 列番号は3を指定
④ 検索方法
📋 FALSEとTRUEの違い(※横スクロールできます)
【FALSE(完全一致)とTRUE(近似一致)】
FALSE または 0(推奨):
・完全一致で検索
・検索値が見つからない場合は#N/Aエラー
・通常はこちらを使う
TRUE または 1:
・近似一致で検索
・範囲が昇順に並んでいる必要がある
・成績の評価など特殊な場合に使用
実務では99%がFALSE!
🎯 重要なポイント
- 検索方法は必ずFALSEを指定する(省略するとTRUEになる)
- 範囲は絶対参照($)を使う
- 検索列は範囲の左端に含める
📝 4. 実践例
📊 例1: 商品コードから単価を取得(※横スクロールできます)
【例1: 商品コードから単価を取得】
商品マスタ(Sheet2のA列〜C列):
A列 B列 C列
1 商品コード 商品名 単価
2 A001 ノートPC 80000
3 A002 マウス 2000
4 A003 キーボード 3500
売上表(Sheet1):
A列 B列 C列
1 商品コード 数量 単価
2 A002 5 ←ここに単価を表示したい
C2セルに入力する数式:
=VLOOKUP(A2,Sheet2!$A$2:$C$4,3,FALSE)
結果: 2000
📊 例2: 社員番号から部署を取得(※横スクロールできます)
【例2: 社員番号から部署を取得】
社員マスタ(E列〜G列):
E列 F列 G列
1 社員番号 氏名 部署
2 1001 田中 営業
3 1002 佐藤 開発
4 1003 鈴木 総務
B2セルに入力する数式:
=VLOOKUP(A2,$E$2:$G$4,3,FALSE)
A2に「1002」が入力されている場合:
結果: 開発
📊 VLOOKUPの動作イメージ
入力先(売上表)
| 商品コード | 数量 | 単価 |
| A002 | 5 | =VLOOKUP(A2,…) |
⬇ 検索
参照先(商品マスタ)
| 商品コード | 商品名 | 単価 |
| A001 | ノートPC | 80000 |
| A002 | マウス | 2000 ← 取得! |
| A003 | キーボード | 3500 |
⬇ 結果
単価が自動入力される
| 商品コード | 数量 | 単価 |
| A002 | 5 | 2000 |
⚠️ 5. よくある間違いと注意点
⚠️ よくある間違い(※横スクロールできます)
【よくある間違い】
❌ 間違い1: 範囲に検索列が含まれていない
=VLOOKUP(A2,F2:G10,2,FALSE)
→ E列(商品コード)が範囲に含まれていない
✅ 正しい:
=VLOOKUP(A2,E2:G10,3,FALSE)
❌ 間違い2: 列番号が間違っている
=VLOOKUP(A2,E2:G10,1,FALSE)
→ 1列目は商品コード(検索値と同じ)
✅ 正しい:
=VLOOKUP(A2,E2:G10,3,FALSE)
→ 3列目の単価を取得
❌ 間違い3: 絶対参照を使っていない
=VLOOKUP(A2,E2:G10,3,FALSE)
→ 数式をコピーすると範囲がずれる
✅ 正しい:
=VLOOKUP(A2,$E$2:$G$10,3,FALSE)
❌ 間違い4: 検索方法を省略
=VLOOKUP(A2,E2:G10,3)
→ 省略するとTRUE(近似一致)になる
✅ 正しい:
=VLOOKUP(A2,$E$2:$G$10,3,FALSE)
⚠️ #N/Aエラーが出たら
#N/Aエラーは「検索値が見つからない」という意味です。以下を確認してください:
・検索値が参照範囲に存在するか
・全角半角、スペースの有無が一致しているか
・データ型(文字列/数値)が一致しているか
#N/Aエラーは「検索値が見つからない」という意味です。以下を確認してください:
・検索値が参照範囲に存在するか
・全角半角、スペースの有無が一致しているか
・データ型(文字列/数値)が一致しているか
📝 練習問題
練習 1
初級
商品コード「A002」の商品名を取得してください
商品マスタ(E2:G4):
E列 F列 G列
2 A001 ノートPC 80000
3 A002 マウス 2000
4 A003 キーボード 3500
A2セルに「A002」が入力されている
B2セルに商品名を表示したい
B2セルに入力する数式:
=VLOOKUP(A2,$E$2:$G$4,2,FALSE)
結果: マウス
解説:
- 検索値: A2(A002)
- 範囲: $E$2:$G$4(商品マスタ全体)
- 列番号: 2(商品名はE列から2列目)
- 検索方法: FALSE(完全一致)
練習 2
中級
社員番号「1002」の氏名と部署を両方取得してください
社員マスタ(E2:G4):
E列 F列 G列
2 1001 田中 営業
3 1002 佐藤 開発
4 1003 鈴木 総務
A2セルに「1002」が入力されている
B2セルに氏名、C2セルに部署を表示したい
B2セルに入力する数式(氏名):
=VLOOKUP(A2,$E$2:$G$4,2,FALSE)
C2セルに入力する数式(部署):
=VLOOKUP(A2,$E$2:$G$4,3,FALSE)
結果:
- B2: 佐藤
- C2: 開発
解説: 同じ検索値(A2)で、異なる列番号を指定することで、複数の情報を取得できます。
練習 3
上級
別シートの商品マスタから単価を取得してください
Sheet2の商品マスタ(A2:C4):
A列 B列 C列
2 A001 ノートPC 80000
3 A002 マウス 2000
4 A003 キーボード 3500
Sheet1のA2セルに「A003」が入力されている
Sheet1のC2セルに単価を表示したい
Sheet1のC2セルに入力する数式:
=VLOOKUP(A2,Sheet2!$A$2:$C$4,3,FALSE)
結果: 3500
解説:
- 別シートを参照する場合は「シート名!範囲」と指定
- Sheet2!$A$2:$C$4 のように記述
- 絶対参照($)を使うことで数式をコピーしやすくなる
練習 4
中級
数式を下にコピーしても正しく動作するVLOOKUPを作成してください
商品マスタ(E2:G4):
E列 F列 G列
2 A001 ノートPC 80000
3 A002 マウス 2000
4 A003 キーボード 3500
売上表(A列〜C列):
A列 B列 C列
1 商品コード 数量 単価
2 A001 3 ?
3 A002 5 ?
4 A003 2 ?
C2〜C4に単価を表示したい(C2の数式をC3,C4にコピー)
C2セルに入力する数式:
=VLOOKUP(A2,$E$2:$G$4,3,FALSE)
C2をC3、C4にコピー
結果:
- C2: 80000
- C3: 2000
- C4: 3500
解説:
- 検索値(A2)は相対参照 → コピーするとA3, A4に変わる
- 範囲($E$2:$G$4)は絶対参照 → コピーしても固定される
- この組み合わせで、正しく動作する
📝 Step 32 のまとめ
✅ このステップで学んだこと
- VLOOKUPとは: 縦方向に検索して値を取得する関数
- 4つの引数: 検索値、範囲、列番号、検索方法
- 範囲指定: 検索列を左端に含める必要がある
- 列番号: 範囲の左端から数える
- 検索方法: 通常はFALSE(完全一致)を使用
- 絶対参照: 範囲に$を付けてコピー時に固定
🎯 次のステップの予告
VLOOKUPの基本構文をマスターしました!次のSTEP 33では、「VLOOKUPのエラー処理」を学びます。#N/Aエラーを適切に処理する方法を習得します。
VLOOKUPの基本構文をマスターしました!次のSTEP 33では、「VLOOKUPのエラー処理」を学びます。#N/Aエラーを適切に処理する方法を習得します。
❓ よくある質問
Q1: VLOOKUPで左側の列を取得できますか?
できません。VLOOKUPは検索列より右側の列しか取得できません。左側の列を取得したい場合は、INDEX+MATCH関数を使うか、データの配置を変更してください(STEP 35で学習)。
Q2: 検索方法でFALSEとTRUEの違いは何ですか?
FALSE(完全一致): 検索値と完全に一致するものを探す。通常はこちらを使用。
TRUE(近似一致): 検索値以下の最大値を探す。成績評価など特殊な場合に使用。実務では99%がFALSEです。
TRUE(近似一致): 検索値以下の最大値を探す。成績評価など特殊な場合に使用。実務では99%がFALSEです。
Q3: #N/Aエラーが出る原因は?
検索値が参照範囲に見つからない場合に発生します。全角半角の違い、前後のスペース、データ型の不一致などを確認してください。次のステップでエラー処理を学びます。
Q4: 列番号を自動で指定できますか?
COLUMN関数やMATCH関数を組み合わせることで可能です。ただし、初心者のうちは直接数字で指定する方が分かりやすいです。
Q5: 数式をコピーしたら範囲がずれてしまいます
範囲に絶対参照($)を使っていないためです。範囲は $E$2:$G$10 のように $ を付けることで、コピーしても範囲が固定されます。
Q6: 検索値が重複している場合はどうなりますか?
VLOOKUPは最初に見つかった値を返します。重複がある場合は、最初の一致のみが取得されます。すべての重複を取得したい場合は、別の方法が必要です。
Q7: Googleスプレッドシートでも同じように使えますか?
はい、VLOOKUPはGoogleスプレッドシートでも同じ構文で使用できます。ただし、Googleスプレッドシートでは別シート参照の書き方が少し異なる場合があります(シート名にスペースがある場合はシングルクォートで囲む)。
学習メモ
Excel・Googleスプレッドシート完全マスター - Step 32
📋 過去のメモ一覧
▼