第3回 / 全6回 ⏱ 約15分

VLOOKUPとXLOOKUPを完全マスター

VLOOKUPの構文・よくあるエラーからXLOOKUPの優位性まで、実務で使える検索関数を具体例とともに完全解説します。

このレッスンで学ぶこと

  • VLOOKUPの構文と引数の意味
  • よくあるエラーの原因と対処法
  • XLOOKUPの優位性と使い分け
  • 実務で使える検索パターン3選

VLOOKUPとは?

VLOOKUPは「Vertical Lookup(垂直検索)」の略で、表の左端列をキーにして、右側の列から値を取り出す関数です。

=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
引数説明
検索値探したい値A2(商品コード)
範囲検索対象の表商品マスタ!A:D
列番号取り出したい列の番号2(2列目=商品名)
検索方法完全一致か近似一致かFALSE(完全一致)

実務例:商品コードから商品名を引く

注文データのA列に商品コードがあり、商品マスタから商品名を取得したい場合:

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

重要: 第4引数は必ず FALSE(完全一致)を指定しましょう。省略すると TRUE(近似一致)になり、意図しない値が返ることがあります。

FALSEとTRUEの違い

検索方法動作使う場面
FALSE(完全一致)検索値と完全に一致する行を探すコード検索、マスタ参照(99%はこちら)
TRUE(近似一致)検索値以下で最も近い値を探す税率表、成績ランク表など

TRUE(近似一致)の使いどころ

成績ランク表:
| 点数 | ランク |
|------|--------|
| 0    | D      |
| 60   | C      |
| 70   | B      |
| 80   | A      |
| 90   | S      |
=VLOOKUP(75, ランク表, 2, TRUE)   → 結果: "B"

75点は70以上80未満なので「B」が返ります。TRUEを使う場合、検索列は昇順にソートされている必要があります。

VLOOKUPでよくあるエラー

#N/A エラー

原因1: 検索値がマスタに存在しない

対策:IFERRORで囲む
=IFERROR(VLOOKUP(A2, マスタ!A:C, 2, FALSE), "該当なし")

原因2: 余分なスペースが混入している

対策:TRIMで前後の空白を除去
=VLOOKUP(TRIM(A2), マスタ!A:C, 2, FALSE)

#REF! エラー

原因: 列番号が範囲の列数を超えている

=VLOOKUP(A2, A:C, 5, FALSE)   ← 3列しかないのに5列目を指定

列の挿入で壊れる問題

VLOOKUPの列番号は数字で指定するため、マスタに列を挿入するとズレます。

列挿入前: =VLOOKUP(A2, マスタ!A:D, 3, FALSE)  → 「単価」列を参照
列挿入後: 同じ数式なのに「カテゴリ」列を参照してしまう!

この問題を根本的に解決するのが、次に紹介するXLOOKUPです。

XLOOKUPとは?

XLOOKUPはExcel 2021 / Microsoft 365で使えるVLOOKUPの上位互換関数です。

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])

VLOOKUPとの比較

特徴VLOOKUPXLOOKUP
検索方向左→右のみ左右どちらも可
列番号の指定数字(ズレるリスク)戻り範囲を直接指定
見つからない場合IFERRORが必要第4引数で指定可
複数列の返却不可戻り範囲を広げるだけ
デフォルト一致モード近似一致(TRUE)完全一致

実務例:顧客マスタから情報を引く

=XLOOKUP(A2, 顧客マスタ!B:B, 顧客マスタ!D:D, "未登録")
  • 第1引数:検索する顧客コード
  • 第2引数:顧客マスタの検索列
  • 第3引数:取り出したい列(会社名など)
  • 第4引数:見つからなければ「未登録」と表示

XLOOKUPの強み:左方向の検索

VLOOKUPでは検索キーが表の左端にないと使えませんでした。XLOOKUPにはこの制約がありません。

| 商品名   | カテゴリ | 商品コード |
|----------|---------|-----------|
| ノートPC | 電子機器 | P-001     |
| マウス   | 周辺機器 | P-002     |

商品名から商品コードを引く(右→左の検索):

=XLOOKUP("ノートPC", A:A, C:C)   → "P-001"

VLOOKUPではINDEX+MATCHの組み合わせが必要でしたが、XLOOKUPなら1つの関数で完結します。

どちらを使うべき?

判断フローチャート:
1. Excel 2021 / Microsoft 365 を使っている?
   → はい → XLOOKUPを使う
   → いいえ → VLOOKUPを使う

2. 他の人とファイルを共有する?
   → 相手がXLOOKUP非対応の可能性あり → VLOOKUPを使う
   → 全員365環境 → XLOOKUPを使う

実務のヒント: 社内でExcelのバージョンが混在している場合は、VLOOKUPを基本とし、自分だけが使うファイルではXLOOKUPを使うのが安全です。

ハンズオン演習

以下の2つのシートを作成して練習してください。

シート1:注文データ

| 注文番号 | 商品コード | 数量 |
|---------|-----------|------|
| 001     | A-101     | 3    |
| 002     | B-205     | 1    |
| 003     | A-101     | 5    |
| 004     | C-310     | 2    |
| 005     | Z-999     | 1    |

シート2:商品マスタ

| 商品コード | 商品名       | 単価   |
|-----------|-------------|--------|
| A-101     | ノートPC     | 89000  |
| B-205     | ワイヤレスマウス | 3500   |
| C-310     | USBハブ      | 2800   |
| D-415     | モニター     | 45000  |

演習1: VLOOKUPで注文データに商品名を追加してください。

演習2: VLOOKUPで単価を取得し、数量 × 単価 で金額を計算してください。

演習3: Z-999はマスタに存在しません。IFERRORで「該当なし」と表示してください。

演習4:(365ユーザー向け)XLOOKUPで同じ処理を書き直し、VLOOKUPとの違いを実感してください。

まとめ

  • VLOOKUP は表の左端列をキーに右方向へ検索する関数。第4引数は必ず FALSE を指定
  • よくあるエラーは #N/A(値が見つからない)と列番号のズレ
  • XLOOKUP はVLOOKUPの上位互換。左右検索・エラー処理内蔵・列番号不要
  • ファイル共有相手のExcelバージョンに応じて使い分ける

次のレッスンでは、関数では大変な大量データの集計を一瞬でこなす「ピボットテーブル」を学びます。

共有する
#Excel#VLOOKUP#XLOOKUP#関数