自習室管理人ブログ
カテゴリー一覧を見る

XLOOKUP関数の使い方【VLOOKUPとの違いと移行】

XLOOKUP関数の使い方【VLOOKUPとの違いと移行】|XLOOKUP 使い方 Excel関数・操作術

XLOOKUPは、VLOOKUPが抱えていた「左方向に検索できない」「列番号がズレる」「IFERRORが必要」という3つの制約をまとめて解消した検索関数です。Microsoft 365またはExcel 2021以降を使っているなら、今日から切り替える価値があります。

この記事では、構文の読み解き方から実務でよく使うパターン、VLOOKUPからの書き換え手順、互換性の注意点まで順に整理します。

この記事のポイント

  • XLOOKUPの必須引数は3つだけ。VLOOKUPより書き方がシンプルで、左方向検索・複数列取得も1つの数式で完結する
  • 第4引数を使えばIFERROR不要。エラー処理が安全かつ簡潔に書ける
  • Excel 2019以前では使用不可。社外配布ファイルや旧バージョン混在環境では互換性への対応が必要

XLOOKUP関数とは?VLOOKUPと何が違うのか

XLOOKUPは、表の中から値を探して対応するデータを取り出す関数です。長年Excelの定番だったVLOOKUPの後継として登場し、構文がシンプルになりながら機能は大幅に拡張されています。

手動と電動の鉛筆削りと三本の鉛筆
イメージ

XLOOKUPが登場した背景と対応バージョン

XLOOKUPは2019年末にMicrosoft 365向けにリリースされました。Microsoft公式サポートページによると、対応バージョンはMicrosoft 365およびExcel 2021以降(Web版含む)です。

注意が必要なのは、Excel 2019とExcel 2016では使用できない点です。これらのバージョンでXLOOKUPを含むセルを開くと#NAME?エラーが表示されます。

公式ページの「適用先」欄にExcel 2019の記載がありますが、同ページ内のNOTE(注記)には「XLOOKUP は Excel 2016 および Excel 2019 では使用できません」と明記されています。記事作成時点では、このNOTEの記載を優先してください。

VLOOKUPが1985年のExcel初期から存在するのに対し、XLOOKUPは約35年後に登場した比較的新しい関数です。学術論文としての蓄積はほぼない状態で、情報発信の主流はMicrosoftの公式ドキュメントとIT系メディアとなっています。

VLOOKUPの主な制約とXLOOKUPが解決した点

VLOOKUPを日常的に使っている方なら、次のような場面で困った経験があるはずです。IT解決チャンネルの解説をもとに、XLOOKUPが解決した4つの制約を整理します。

VLOOKUPの制約 XLOOKUPでの解決策
検索値より左の列を取得できない 検索範囲と戻り範囲を別々に指定するため、左右どちらの列も取得可能
列番号を数えて指定する必要がある 戻り範囲をセル範囲で直接指定するため、列の増減で数式が壊れない
省略時が近似一致(FALSEの付け忘れミスが多発) 省略時が自動で完全一致になる
エラー処理にIFERRORで囲む必要がある 第4引数に表示したい値を書くだけで対応できる

この4点の改善により、VLOOKUPで必要だった「INDEX+MATCH」の組み合わせや「IFERRORによる二重ネスト」が不要になります。

印刷した表と蛍光ペンと電卓
イメージ

XLOOKUP関数の構文と6つの引数

XLOOKUPの構文は一見長く見えますが、実際に書くのは最初の3引数だけというケースがほとんどです。各引数の役割を把握しておくと、必要なときに迷わず追加できます。

引き出しから1枚の索引カードを探す
イメージ

必須3引数(検索値・検索範囲・戻り範囲)の基本

Microsoft公式サポートページに記載されている構文は次のとおりです。

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

必須なのは最初の3つだけです。それぞれの意味は以下のとおりです。

  • 検索値:探したい値(セル参照でも直接入力でも可)
  • 検索範囲:検索値を探す列(または行)。1列・1行のみ指定
  • 戻り範囲:取り出したい値が入っている列(または行)。検索範囲と同じ行数にする

たとえば、E2に入力した社員番号でA列を検索してB列の氏名を取り出す場合、数式はこうなります。

=XLOOKUP(E2, A2:A21, B2:B21)

VLOOKUPで同じことをするには =VLOOKUP(E2, A2:C21, 2, FALSE) と書く必要がありました。列番号の「2」も「FALSE」も不要になっているのが、XLOOKUPのシンプルさです。

省略可能な第4〜6引数の役割一覧

後半3つの引数は省略できますが、それぞれ実務で役立つ場面があります。シキワザの解説(2026年8月公開)をもとに整理します。

引数 省略時の動作 よく使う指定値
第4引数:見つからない場合 #N/A を返す “該当なし”、””(空白)、0
第5引数:一致モード 0(完全一致) -1(次に小さい値)、1(次に大きい値)、2(ワイルドカード)
第6引数:検索モード 1(先頭から検索) -1(末尾から検索)、2・-2(高速バイナリ検索)

実務では第4引数まで書いて止めるパターンが多く、第5・第6引数は料金表の段階判定や「同じIDの最新行を取りたい」といった特定の場面で追加します。

同じ大きな紙に赤と青のペンで書く手
イメージ

どのように使えばよい?基本から応用までの実例

構文を覚えたら、実際の場面に当てはめてみましょう。VLOOKUPでは難しかった操作を中心に、よく使う3パターンを具体的な数式で紹介します。

左方向・複数列への検索(VLOOKUPでは難しかった操作)

左方向への検索は、XLOOKUPの使い勝手が最もわかりやすく変わる点です。VLOOKUPでは検索値の列が必ず範囲の左端でなければならず、左にある列を取り出すにはINDEX+MATCHを組み合わせる必要がありました。

XLOOKUPでは検索範囲と戻り範囲を独立して指定するため、左右の位置関係に制約がありません。たとえば、G列(商品名)で検索してF列(商品コード)を取り出す場合はこう書きます。

=XLOOKUP(A2, G2:G50, F2:F50, "該当なし")

複数列の同時取得には、スピル機能を活用します。戻り範囲を複数列で指定すると、対応する複数の値が横方向に自動展開されます。

=XLOOKUP(E2, A2:A21, B2:D21)

この1つの数式だけで、社員番号に対応する「氏名・部署・役職」の3列分が一度に取り出せます。VLOOKUPなら3つの数式が必要だった処理です。ただし、展開先のセルにデータが入っていると#SPILL!エラーが発生するため、右隣のセルが空いているかを確認してから入力してください。

別シート・別ブックの値を参照する方法

別シートや別ブックのデータを参照する場合も、XLOOKUP自体の書き方は変わりません。検索範囲と戻り範囲にシート名またはブック名を付けるだけです。

別シート(例:「マスタ」シート)を参照する場合はこうなります。

=XLOOKUP(A2, マスタ!A:A, マスタ!B:B, "該当なし")

別ブック(例:「商品DB.xlsx」)を参照する場合は、ブックが開いている状態でセル範囲をドラッグ選択すると自動的にパスが挿入されます。ブックを閉じた状態で参照するとフルパスが表示されますが、数式の動作は変わりません。

範囲を絶対参照($A$2:$A$100のようにF4キーで固定)にしておくと、数式を下へコピーしたときに検索範囲がずれる事故を防げます。これはVLOOKUP時代から変わらない基本的な注意点です。

第5引数「一致モード」と第6引数「検索モード」の使い分け

この2つの引数は省略できますが、使いこなすと検索の幅が大きく広がります。シキワザ(2026年8月公開)の解説をもとに、実務でよく使う組み合わせを紹介します。

一致モード(第5引数)の選び方:

  • 0(省略時):完全一致。商品コードや社員番号の検索に使う基本設定
  • -1:完全一致がなければ「次に小さい値」を返す。成績ランク表や料金の段階判定に向く
  • 1:完全一致がなければ「次に大きい値」を返す。送料表など上限で区切る表に向く
  • 2:ワイルドカード(*や?)を有効にする。部分一致で検索したい場合に指定

検索モード(第6引数)の選び方:

  • 1(省略時):先頭から末尾へ検索する通常の動作
  • -1:末尾から先頭へ検索する。同じIDが複数行ある場合に「最後(最新)の行」を取り出したいときに使う

注意点として、第6引数に-1を指定する場合は第5引数(一致モード)を省略できません。デフォルト値の0を明示的に書く必要があります。例:=XLOOKUP(A2, B:B, C:C, "該当なし", 0, -1)

丸い端子のプラグと縦長の差し込み口
イメージ

エラーが出たときはどう対処する?

XLOOKUPでよく遭遇するエラーは#N/Aと#SPILL!の2種類です。それぞれ原因がはっきりしているため、対処もシンプルです。

#N/Aが表示される主な原因と第4引数による回避策

#N/Aは「検索値が見つからなかった」というExcelからのサインです。主な原因は3つあります。

  • 検索値が実際には存在しない:入力ミスや余分なスペースが含まれていることが多い。TRIM関数で空白を除去してから検索すると解決するケースがある
  • データ型の不一致:検索値が数値なのに検索範囲に文字列として保存されている(またはその逆)。セルの書式を統一する
  • 検索範囲の指定ミス:検索範囲と戻り範囲の行数が一致していない場合も#VALUE!やずれた結果の原因になる

見つからなかったときの表示をコントロールするには、第4引数を使います。

=XLOOKUP(E2, A2:A21, B2:B21, "該当なし")

空白を表示したい場合は ""、数値の集計に含めたい場合は 0 を指定します。

青空の下でロープの下に張られた白い網
イメージ

IFERROR不要で書けるエラー処理の書き方

VLOOKUPでは =IFERROR(VLOOKUP(…), "該当なし") のように関数を二重にネストする必要がありました。XLOOKUPでは第4引数があるため、この書き方は不要です。

さらに、Tech System Lab(2026年9月公開)では、第4引数がIFERRORより安全な理由を次のように説明しています。

⚠ IFERRORとXLOOKUP第4引数の違い

IFERRORは数式内で発生したすべてのエラーを隠します。検索範囲の書き間違いによる#VALUE!まで「該当なし」に化けてしまい、ミスに気づきにくくなります。

第4引数は「検索値が見つからなかったとき」だけに反応します。#VALUE!などの別のエラーは隠れないため、問題の切り分けがしやすくなります。

既存のVLOOKUP式でIFERRORを使っていた場合は、XLOOKUP移行時に第4引数へ置き換えることで、より安全なエラー処理になります。

VLOOKUPからXLOOKUPへの移行で注意すること

既存のVLOOKUP式をXLOOKUPへ書き換えるのは難しくありません。ただし、ファイルを共有する相手のExcelバージョンによっては対応が必要です。移行前に確認しておきたい点を整理します。

既存のVLOOKUP式をXLOOKUPに書き換える手順

VLOOKUPとXLOOKUPの対応関係は次のとおりです。IT解決チャンネルの書き換え対応表をもとに整理しました。

VLOOKUPの要素 XLOOKUPへの置き換え
検索値(第1引数) 検索値(第1引数)—同じ
テーブル範囲(第2引数:範囲全体) 検索範囲(第2引数):検索する1列だけを指定
列番号(第3引数) 戻り範囲(第3引数):取り出したい列をセル範囲で指定
FALSE(完全一致) 省略でOK(XLOOKUPの標準が完全一致)
IFERRORによるエラー処理 第4引数に表示したい値を直接指定

具体的な書き換え例を示します。

# 書き換え前(VLOOKUP)
=IFERROR(VLOOKUP(E2, A2:C21, 2, FALSE), "該当なし")

# 書き換え後(XLOOKUP)
=XLOOKUP(E2, A2:A21, B2:B21, "該当なし")

VLOOKUPの「テーブル範囲全体」を「検索する1列」に絞り、「列番号」を「取り出す列の範囲」に置き換えるのが基本の手順です。IFERRORは削除して第4引数に統合します。

互換性の問題:旧バージョンのExcelで開いた場合

XLOOKUPを使ったブックをExcel 2019またはExcel 2016で開くと、数式が正しく動作しません。シキワザ(2026年8月公開)によると、Excel 2019以前でXLOOKUPを含むブックを開き再保存すると、数式ごと失われる可能性があります。

⚠ 旧バージョン混在環境での対応策

  • 値として貼り付け:XLOOKUP数式で取り出した結果を「値のみ貼り付け」に変換してから配布する
  • VLOOKUPに戻す:社外配布用ファイルはVLOOKUPまたはINDEX+MATCHで作成する
  • ファイルを分ける:社内用(XLOOKUP)と社外配布用(値のみ)を別管理にする

自分のPCがMicrosoft 365またはExcel 2021以降であっても、ファイルを受け取る相手の環境を確認してから移行を進めることが安全です。特に取引先や顧客に送るファイルでXLOOKUPを使う場合は、事前に相手のExcelバージョンを確認するか、値貼り付けでの対応をおすすめします。

よくある質問

Q. XLOOKUPはExcel 2019で使えますか?

A. 使えません。Microsoft公式サポートページのNOTEには「XLOOKUP は Excel 2016 および Excel 2019 では使用できません」と明記されています。Excel 2019でXLOOKUPを含むセルを開くと#NAME?エラーが表示されます。Microsoft 365またはExcel 2021以降へのアップグレードが必要です。

Q. VLOOKUPとXLOOKUPはどちらを使えばよいですか?

A. Microsoft 365またはExcel 2021以降を使っており、ファイルを共有する相手も同等のバージョンであれば、XLOOKUPへの移行をおすすめします。左方向検索・複数列取得・エラー処理のシンプルさなど、実務上の利点が多くあります。ただし、旧バージョンのExcel環境に配布するファイルではVLOOKUPまたは値貼り付けへの変換が必要です。

Q. XLOOKUPでワイルドカード検索をするにはどうすればよいですか?

A. 第5引数(一致モード)に「2」を指定します。例:=XLOOKUP("みかん*", A2:A10, B2:B10, "該当なし", 2) のように書くと、「みかん」で始まるデータを部分一致で検索できます。第5引数を省略(または0を指定)した場合、*や?は文字として扱われるため、ワイルドカードが機能しません。

これはVLOOKUP(完全一致でもワイルドカードが有効)と異なる挙動なので注意が必要です。

Q. #SPILL!エラーが出た場合はどう対処しますか?

A. #SPILL!エラーは、スピル(結果の自動展開)先のセルにデータが入っているときに発生します。戻り範囲を複数列にした数式の右隣に既存のデータがある場合に起きるケースが多いです。展開先のセルを空にするか、スピルを使わず列ごとに別々のXLOOKUP式を入力することで解決できます。

Q. 同じIDが複数行ある場合、最新の行を取り出すにはどうすればよいですか?

A. 第6引数(検索モード)に「-1」を指定すると、末尾(下)から検索するため、最後に一致した行の値を取り出せます。このとき第5引数(一致モード)は省略できないため、完全一致のデフォルト値「0」を明示的に書く必要があります。例:=XLOOKUP(A2, B:B, C:C, "該当なし", 0, -1)

まとめ

XLOOKUPの使い方をVLOOKUPとの違いを軸に整理しました。必須引数は3つだけで、書き方はVLOOKUPよりシンプルです。左方向検索・複数列取得・第4引数によるエラー処理という3点が、日常業務での使い勝手を大きく変えます。

移行の最初の一歩として、手元にある既存のVLOOKUP式を1つ選んで書き換えてみてください。「テーブル範囲全体→検索する1列」「列番号→取り出す列の範囲」「IFERRORの二重ネスト→第4引数」という3つの置き換えを実際に手を動かして確認すると、構文が自然と身につきます。

ただし、ファイルを社外や旧バージョン環境に配布する場合は互換性への対応が必要です。共有先のExcelバージョンを確認してから、移行の範囲を決めてください。

集中してExcelの勉強を進めたい方には、静かな環境で作業できる自習室も選択肢の一つです。管理人が運営するアイデスク新宿自習室は、新宿西口駅から徒歩3分・24時間365日利用可能で、半個室ブース(パーテーション+背面カーテン付き)とWi-Fi・電源完備の環境を整えています。

※本記事の情報は2026年10月時点のものです。最新情報は各公式サイトでご確認ください。
最終更新: 2026年10月31日

参考サイト

集中できる学習環境を探している方は、新宿の自習室もご覧ください。24時間利用可・半個室ブース中心の自習室です。
→ アイデスク新宿自習室の詳細

タイトルとURLをコピーしました