VLOOKUP関数 完全ガイド
基本構文・実務5パターン・エラー対処まで
Googleスプレッドシートで最も使われる検索関数。構文の意味を正確に理解して、現場で確実に使えるようにする。
GASで「マスターシートから値を取ってくる」処理を書くとき、VLOOKUPと同じロジック(検索→一致行を返す)を使います。関数を理解していると、GASのコードが読みやすくなります。
GASで自動化を学ぶ →VLOOKUPとは何か
VLOOKUPは「Vertical Lookup」の略で、表の左端列を縦方向に検索し、一致した行の指定列の値を返す関数です。
用途は一言で言えば「マスターデータから値を引っ張ってくる」こと。商品コードから商品名を取る、社員IDから部署名を取る、といった処理が代表例です。
基本構文
=VLOOKUP(検索値, 検索範囲, 列番号, 検索の型)
| 引数 | 意味 | よく使う値 |
|---|---|---|
| 検索値 | 探したいキー(セル参照が一般的) | A2, “1001” など |
| 検索範囲 | マスターデータの範囲(左端列でキー検索) | マスター!A:D など |
| 列番号 | 検索範囲の何列目の値を返すか | 2, 3, 4 など |
| 検索の型 | FALSE=完全一致 / TRUE=近似一致 | ほぼ常に FALSE |
重要:検索の型は必ず明示してください。省略するとTRUE(近似一致)になり、予期しない結果になることがあります。
実務でよく使う5パターン
パターン1:商品マスタから価格を取得
注文シートにある商品コードをもとに、マスターシートから価格を取ってくる最も典型的な使い方です。
=VLOOKUP(B2, マスター!A:C, 3, FALSE)
- B2:注文シートの商品コード
- マスター!A:C:商品マスターシートのA〜C列全体
- 3:C列(価格)を返す
パターン2:IFERROR と組み合わせてエラーを隠す
マスターに存在しないコードを引いたとき #N/A が表示されます。IFERRORでラップして空白や「未登録」を表示するのが実務の定番です。
=IFERROR(VLOOKUP(B2, マスター!A:C, 3, FALSE), "未登録")
パターン3:別シートのマスターを参照する
シート名にスペースや記号が含まれる場合はシングルクォートで囲みます。
=VLOOKUP(A2, '商品マスター 2024'!A:D, 2, FALSE)
パターン4:ARRAYFORMULA で一括適用
1つの式でB列全体にVLOOKUPを適用します。入力が増えても自動で拡張されるので、行ごとにコピーする必要がなくなります。
=ARRAYFORMULA(IFERROR(VLOOKUP(B2:B, マスター!A:C, 3, FALSE), ""))
パターン5:完全一致(FALSE)と近似一致(TRUE)の使い分け
TRUE(近似一致)が有効なのは、数値の範囲マッピングのときだけです。例:スコアに応じたランク付けなど。この場合、検索範囲の左端列を昇順に並べるのが必須条件です。
// スコアテーブルがA列に昇順で並んでいる前提
=VLOOKUP(C2, $A$2:$B$6, 2, TRUE) // TRUE で近似一致(以上の範囲を返す)
VLOOKUPの制限と注意点
| 制限 | 内容 | 回避策 |
|---|---|---|
| 左側検索不可 | 検索キーは必ず範囲の左端列でなければならない | XLOOKUP または INDEX+MATCH を使う |
| 最初の一致のみ | 重複キーがあっても最初にヒットした行しか返さない | FILTER関数で複数行を返す |
| 列挿入に弱い | マスター列を挿入すると列番号がずれる | XLOOKUP または MATCH で列番号を動的に取得 |
| 大量データで重い | 全列指定(A:D)は処理が重くなることがある | A2:D1000 のように行を限定する |
よくあるエラーと即時対処
| エラー | 主な原因 | 対処 |
|---|---|---|
| #N/A | 検索値がマスターに存在しない、または型が違う | IFERROR でラップ、型をVALUE()やTEXT()で統一 |
| #REF! | 列番号が検索範囲の列数を超えている | 列番号を確認して修正 |
| #VALUE! | 引数に誤った型が入っている | 検索値・列番号の入力を確認 |
| 間違った値が返る | 検索の型をTRUEのまま使っている | 第4引数を必ずFALSEにする |
VLOOKUPからXLOOKUPへ
VLOOKUPは機能的に枯れた関数です。現在のGoogleスプレッドシートではXLOOKUPが使えるため、新規で作るシートにはXLOOKUPを使うことをおすすめします。
| 比較項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 左側検索 | ❌ 不可 | ✅ 可能 |
| 複数列を返す | ❌ 1列のみ | ✅ 複数列対応 |
| エラー処理 | IFERRORが必要 | 第4引数で内包 |
| 見つからない場合の処理 | 別途IFERRORが必要 | 引数で直接指定 |
| 既存データとの互換性 | ◎ 広い | △ 比較的新しい |
既存のシートにあるVLOOKUPを無理に書き換える必要はありません。ただし新規作成時はXLOOKUPを選ぶことで、後のメンテナンスが楽になります。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
