※本ページにはプロモーション(広告)が含まれています
【2026年最新版】ExcelのVLOOKUP・XLOOKUPの使い方と違いを徹底解説完全ガイド
ExcelでデータをVLOOKUP関数で検索してきたけれど、「#N/Aエラーが出て困る」「左の列を返せないの?」と悩んでいませんか。本記事では、長年Excelユーザーに愛用されてきたVLOOKUPと、Office 365・Excel 2021以降で使えるようになった新関数XLOOKUPを徹底比較し、実務での使い分け方を丁寧に解説します。エラーの原因と対処法、置き換えのタイミングまでわかりやすくまとめました。
この記事でわかること
- VLOOKUP関数の基本構文と使い方
- XLOOKUPが優れている点(左方向検索・エラー処理・複数列返却)
- VLOOKUPとXLOOKUPをどちらを使うべきか
- よくあるエラー(#N/A・#REF!・#VALUE!)の原因と対処法
- 実務に役立つ応用テクニック

VLOOKUP関数の基本
VLOOKUP関数とは
VLOOKUP(ブイルックアップ)は「Vertical Lookup」の略で、指定した値を表の左端列から縦方向に検索し、同じ行の指定した列の値を返す関数です。Excel 2003以前から搭載されており、現在もExcelの中で最も利用頻度の高い関数の一つです。
VLOOKUP関数の構文
VLOOKUPの基本構文は次のとおりです。
=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
| 引数 | 役割 | 例 |
|---|---|---|
| 検索値 | 検索したいキー(セル参照 または直接入力) | A2、”りんご” |
| 範囲 | 検索する表全体(左端列に検索値が入っている必要あり) | $B$2:$E$100 |
| 列番号 | 返したい値が範囲の左から何列目か | 3(3列目) |
| 検索の型 | FALSE=完全一致、TRUE=近似一致(省略可) | FALSE |
VLOOKUP関数の使用例
商品コードを元に商品名を取得する例を見てみましょう。商品コードがA列、商品名がB列、価格がC列に入っている表(A1:C100)から、セルE2に入力した商品コードに対応する価格を取得します。
=VLOOKUP(E2, $A$1:$C$100, 3, FALSE)
この式は「E2の値をA1:C100の左端(A列)から検索し、同じ行のC列(3列目)の値を返す」という意味です。検索の型はFALSE(完全一致)を指定するのが実務では基本です。TRUEを使う場合は表がソート済みである必要があります。
VLOOKUP関数の制限・弱点
VLOOKUPには以下のような制約があります。これを理解した上でXLOOKUPの出番を判断できます。
- 左方向検索ができない:検索値より左の列は返せない
- 列番号の指定が静的:列を追加・削除すると列番号がずれる
- エラー処理が複雑:IFERRORと組み合わせる必要がある
- 複数列の返却ができない:複数の値を返すには関数を複数書く必要がある
- 末尾検索(最後の一致)ができない
XLOOKUP関数の基本
XLOOKUPとは
XLOOKUP(エックスルックアップ)はMicrosoftがVLOOKUPの後継として2019年に導入した新しい検索関数です。Microsoft 365(Office 365)のExcelと、Excel 2021以降のバージョンで利用できます。縦方向・横方向・左方向・最後の一致など、柔軟な検索が可能です。
XLOOKUP関数の構文
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
| 引数 | 役割 | 省略 |
|---|---|---|
| 検索値 | 検索したいキー | 必須 |
| 検索範囲 | 検索対象の列または行(1列/1行のみ) | 必須 |
| 戻り範囲 | 返したい値がある列(複数列指定可) | 必須 |
| 見つからない場合 | 一致しない場合に返す値 | 省略可 |
| 一致モード | 0=完全一致, -1=以下の近似, 1=以上の近似, 2=ワイルドカード | 省略可(0) |
| 検索モード | 1=先頭から, -1=末尾から, 2=昇順バイナリ, -2=降順バイナリ | 省略可(1) |
XLOOKUPの使用例
先ほどと同じ商品コード→価格取得の例をXLOOKUPで書くと次のようになります。
=XLOOKUP(E2, A1:A100, C1:C100, "該当なし")
VLOOKUPと比べて構造が明快です。検索範囲と戻り範囲を独立して指定するため、左方向への検索も自由に行えます。

VLOOKUP vs XLOOKUP 徹底比較
| 機能 | VLOOKUP | XLOOKUP |
|---|---|---|
| 対応バージョン | Excel 2003以前〜 | Microsoft 365 / Excel 2021以降 |
| 左方向検索 | ❌ 不可 | ✅ 可能 |
| 複数列返却 | ❌ 1列のみ | ✅ 複数列を一度に返せる |
| エラー処理 | IFERRORを別途記述 | 第4引数で内包 |
| 末尾(最後の一致) | ❌ 不可 | ✅ 検索モード -1 |
| ワイルドカード | TRUEモードで限定的 | 一致モード 2 で対応 |
| 式の書きやすさ | 列番号を数値で指定(変更に弱い) | 範囲指定(列追加に強い) |
| パフォーマンス | 大テーブルで若干遅い場合あり | バイナリ検索対応でさらに高速化も可 |
XLOOKUPの応用テクニック
左方向検索の例
商品名がB列にあり、商品コードがA列にある表で、C列に入力した商品名からA列のコードを取得したい場合、VLOOKUPでは不可能ですが、XLOOKUPなら簡単です。
=XLOOKUP(C2, B1:B100, A1:A100, "不明")
複数列を一度に返す
商品名・価格・在庫数を同時に取得したい場合、XLOOKUPは1式で対応できます。
=XLOOKUP(E2, A1:A100, B1:D100, "未登録")
この式をE2セルに入力すると、B・C・D列の値が横方向に自動展開されます(スピル機能)。
末尾から検索する(最新データを取得)
同じ商品コードのデータが複数行ある場合、最後(最新)の行を取得するには次のように書きます。
=XLOOKUP(E2, A1:A100, C1:C100, "なし", 0, -1)
第6引数に -1 を指定することで末尾(下)から検索します。
この記事に関連するおすすめ商品
Microsoft 365 Personal 1年版 公式ライセンス
約14,000円
XLOOKUP・UNIQUE・FILTERなど最新関数をフル活用
ロジクール ワイヤレスキーボード 静音 K295 テンキー付き
約3,000〜4,500円
VLOOKUP・XLOOKUP数式の入力に最適なテンキー付きキーボード
Dell 27インチ モニター フルHD IPS FHD
約25,000〜35,000円
VLOOKUP・XLOOKUPの複数シート参照を並べて確認できる大画面モニター
※ 価格は変動する場合があります。最新価格はリンク先でご確認ください
よくあるVLOOKUPエラーと対処法
#N/A エラー
最も頻繁に発生するエラーです。主な原因と対処法を下表にまとめます。
| 原因 | 確認ポイント | 対処法 |
|---|---|---|
| 検索値が存在しない | スペル・大文字小文字・全角半角のズレ | TRIM関数・CLEAN関数で整える |
| データ型の不一致 | 数値に見える文字列(左揃えになっている) | VALUE関数で数値変換、または TEXT で揃える |
| 範囲の先頭列が検索列でない | 範囲の左端が検索対象になっているか | 範囲を修正する |
IFERROR を使ってエラー時に空白や任意のメッセージを表示する方法も実務でよく使います。
=IFERROR(VLOOKUP(A2,$D$2:$F$100,2,FALSE), "データなし")
#REF! エラー
列番号が範囲の列数を超えている場合に発生します。たとえば範囲が3列しかないのに列番号に4を指定するとこのエラーになります。範囲の列数を確認して列番号を正しく修正してください。
#VALUE! エラー
列番号が0以下の場合や、数値以外(例えば文字列”B”)を指定した場合に発生します。列番号には1以上の整数を指定してください。

VLOOKUPとXLOOKUP どちらを使うべきか
結論として、Microsoft 365またはExcel 2021以降を使っているならXLOOKUPを積極的に活用することをお勧めします。ただし、作成したファイルをExcel 2019以前のユーザーと共有する場合はVLOOKUPを使い続けたほうが安全です。
| 状況 | 推奨関数 | 理由 |
|---|---|---|
| Microsoft 365利用・他者共有なし | XLOOKUP | 左方向検索・エラー処理が楽 |
| Excel 2019以前のユーザーと共有 | VLOOKUP | XLOOKUPは旧バージョンで開けない |
| シンプルな右方向検索のみ | どちらでもOK | 機能差がほぼない |
| 左方向・末尾検索・複数列返却 | XLOOKUP | VLOOKUPでは実現不可 |
よくある質問
Q. XLOOKUPはExcel 2016で使えますか?
いいえ、XLOOKUPはMicrosoft 365(Office 365)サブスクリプションまたはExcel 2021以降でのみ利用できます。Excel 2016・2019ではサポートされていません。旧バージョン環境ではVLOOKUPまたはINDEX+MATCH関数の組み合わせを使ってください。
Q. VLOOKUPで左の列を取得するにはどうすれば?
VLOOKUPだけでは左方向の検索ができません。INDEX関数とMATCH関数を組み合わせる方法が従来の解決策です。たとえば =INDEX(A1:A100, MATCH(E2, B1:B100, 0)) のように書きます。Microsoft 365環境ならXLOOKUPへの置き換えが最もシンプルです。
Q. #N/AエラーをそのままにせずゼロやTRUE/FALSEで返したい
IFERROR関数を使います。=IFERROR(VLOOKUP(A2,$D$2:$F$100,2,FALSE), 0) のようにすれば見つからない場合に0を返します。XLOOKUP場合は第4引数に直接値を書けるため =XLOOKUP(A2,$D$2:$D$100,$F$2:$F$100,0) と書けます。
Q. 完全一致と近似一致の違いは?
完全一致(FALSE または 0)は検索値と完全に一致するデータのみを返します。近似一致(TRUE)は検索値以下で最大の値を返しますが、表が昇順ソートされている必要があります。給与テーブルや等級テーブルなど範囲で区切る場合以外は、完全一致を使うのが安全です。
Q. 大文字・小文字を区別して検索したい
VLOOKUPもXLOOKUPも標準では大文字・小文字を区別しません。EXACT関数を使った配列式(Ctrl+Shift+Enterで確定)を使う必要がありますが、複雑になるため実務では正規化して揃えてしまうことを推奨します。
まとめ
VLOOKUPは長年の実績があり、旧バージョンとの互換性が必要なファイルでは依然として重要な関数です。一方、XLOOKUPはその弱点をほぼすべて解消した次世代関数であり、Microsoft 365環境を利用している方は積極的に覚えて活用すべき関数です。
- 基本的な右方向検索 → VLOOKUPで十分
- 左方向・末尾・複数列返却が必要 → XLOOKUP一択
- 旧バージョン共有ファイル → VLOOKUPまたはINDEX+MATCH
どちらの関数も検索の型・一致モードの指定ミスがエラーの大半の原因です。まずはFALSE(完全一致)で書き始め、動作を確認してから応用に進めると習得が速くなります。本記事を参考に、業務の効率化にお役立てください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!