XLOOKUPとVLOOKUPの最大の違いは「左方向検索の可否」と「列番号指定の有無」の2点です。この記事では5つの違いを比較表で整理し、どちらをいつ使うべきか判断基準まで解説します。
この記事でわかること
Excel環境がMicrosoft 365または2021以降なら今日からXLOOKUPに切り替えられます。VLOOKUPの5つの制約(左方向検索不可・列番号指定・近似一致デフォルト・IFERROR追加・縦方向限定)を一気に解消する方法がわかります。既存のVLOOKUP数式をXLOOKUPに書き換える4ステップで、作業ミスと修正コストを削減できます。
今の働き方で、一番近いものは?
この記事の結論
XLOOKUPはVLOOKUPの制約を5つすべて解消した後継関数です。左方向検索・完全一致デフォルト・エラー処理内包・列追加耐性・縦横両対応のすべてでVLOOKUPを上回ります。Excel 365または2021以降の環境であれば、今日からXLOOKUPに切り替えてください。
今日やるべき1つ
自分のExcelバージョンを確認し(ファイル→アカウント→バージョン情報)、Microsoft 365または2021以降であれば、既存のVLOOKUP数式を1つ選んでXLOOKUPに書き換えてみてください。所要時間は5分です。
状況別ショートカット
| 状況 | 読むべきセクション | 所要時間 |
| 違いをざっくり把握したい | XLOOKUP vs VLOOKUPは5項目で差が出る | 2分 |
| 自分の環境で使えるか確認したい | XLOOKUPが使えるか3分で診断 | 3分 |
| VLOOKUPから切り替えたい | VLOOKUPをXLOOKUPに置き換える4ステップ | 5分 |
| フリーランス実務での活用法を知りたい | フリーランスの実務は5つの仕組みで効率化 | 5分 |
XLOOKUP vs VLOOKUPは5項目で差が出る
2つの関数の全体像を比較表で整理します。構文の違いから、実務で差が出る5項目まで順に確認してください。
基本構文はXLOOKUPの方がシンプルで直感的
VLOOKUPの構文は =VLOOKUP(検索値, 検索範囲, 列番号, 検索方法) の4引数です。XLOOKUPの構文は =XLOOKUP(検索値, 検索範囲, 戻り範囲, 見つからない場合, 一致モード, 検索モード) の6引数ですが、必須なのは最初の3つだけです。通常の使用では =XLOOKUP(検索値, 検索範囲, 戻り範囲) の3引数で完結します。VLOOKUPで必須だった「列番号の指定」がなくなった分、数式の意図が読みやすくなります。
5項目の違いを比較表で確認
| 比較項目 | VLOOKUP | XLOOKUP | 向いているケース |
| 左方向検索 | 不可 | 可能 | IDが右、名前が左の表を使うとき |
| 列番号指定 | 必要(数値で指定) | 不要(範囲で指定) | 列の追加・削除が多い表を使うとき |
| 完全一致デフォルト | FALSE指定が必要 | デフォルトで完全一致 | データ抽出でミスを防ぎたいとき |
| エラー処理 | IFERROR関数を外側に追加 | 第4引数で内包 | 未入力セルが多い表を扱うとき |
| 縦横対応 | 縦方向のみ | 縦・横どちらも対応 | 横方向の表から値を取り出すとき |
VLOOKUPが今も使われる3つの理由
XLOOKUPが優れているにもかかわらず、VLOOKUPが今も使われる理由は3点あります。第一に、Excel 2019以前の環境ではXLOOKUPが使えないためです。第二に、既存のVLOOKUP数式を含むファイルを他者と共有している場合、互換性の観点から変更しにくいためです。第三に、VLOOKUPの方が参考記事やテンプレートが豊富で、トラブル対応情報を検索しやすいためです。「環境の制約」「共有ファイルの互換性」「情報の多さ」がVLOOKUPを使い続ける現実的な理由です。
XLOOKUPは左方向検索で作業時間を年間数時間単位で削減できる
VLOOKUPでは検索値が必ず表の左端列にある必要があります。例えば「氏名」列の右に「ID」列がある表でIDをキーに氏名を取り出したい場合、VLOOKUPでは表を作り直すか、MATCH関数とINDEX関数を組み合わせる必要がありました。XLOOKUPであれば =XLOOKUP(検索値, ID列, 氏名列) の一行で解決します。毎月この制約に当たっているフリーランスであれば、切り替えだけで月に30分以上の作業時間を回収できます。なお、作業効率を上げる方法については別記事でも詳しく解説しています。

CHECK
▶ 今すぐやること: 上記比較表を見て、自分が困っているのが5項目のどれかを1つ特定する(2分)
Q: XLOOKUPとVLOOKUPは同じ結果を返しますか?
A: 同じ条件で使えば同じ結果を返します。ただしVLOOKUPはデフォルトが「近似一致」のため、第4引数にFALSEを指定し忘れると意図しない値が返ることがあります。XLOOKUPはデフォルトが完全一致のため、その心配がありません。
Q: XLOOKUPはGoogleスプレッドシートでも使えますか?
A: はい。Googleスプレッドシートでも2023年以降からXLOOKUPが利用可能です(Googleスプレッドシートへのプレビュー)。ただし一部のオプション引数の動作が異なる場合があるため、重要なファイルでは動作確認をおすすめします。
XLOOKUPが使えるか3分で診断
以下の質問で自分の環境を3分で判定できます。
Q1: 使っているExcelはMicrosoft 365(旧Office 365)のサブスクリプション版ですか?
Yesの場合はResult A(今すぐ使えます)です。Noの場合はQ2へ進んでください。
Q2: ExcelのバージョンはExcel 2021以降ですか?(ファイル→アカウント→バージョン情報で確認)
Yesの場合はResult A(今すぐ使えます)です。Noの場合はQ3へ進んでください。
Q3: Excel 2019またはExcel 2016を使っていますか?
Yesの場合はResult B(XLOOKUPは使えません)です。NoでMacのExcel等の場合はResult C(バージョンを個別確認してください)です。
Result A: 今すぐXLOOKUPを使えます。
任意のセルに =XLOOKUP( と入力して候補が表示されれば確定です。表示されない場合はOfficeの更新を実行してください(ファイル→アカウント→今すぐ更新)。
Result B: VLOOKUPを使い続けるか環境アップグレードを検討してください。
Excel 2019以前ではXLOOKUPは使えません。VLOOKUPを引き続き使うか、Microsoft 365へのアップグレード(個人プランは月額1,850円から)を検討してください(Microsoft 365料金プラン)。
Result C: バージョン情報を個別確認してください。
MacのExcel 2016以降やExcel for the webでは対応状況が異なります。MicrosoftのXLOOKUP対応バージョン一覧で自分の環境を確認してください。
CHECK
▶ 今すぐやること: Excelを開いて「ファイル→アカウント→バージョン情報」を確認する(1分)
Q: Excel 2019でXLOOKUPを使う方法はありますか?
A: Excel 2019ではXLOOKUPは使えません。代替策として、MATCH関数とINDEX関数を組み合わせる方法(=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0)))があります。左方向検索にも対応でき、機能面ではXLOOKUPに近い動作が可能です。
Q: 社内のExcelファイルをXLOOKUPで保存すると他の人が開けなくなりますか?
A: XLOOKUP非対応のExcelで開いた場合、数式がエラー表示になります。ファイルを共有する相手のExcel環境を事前に確認し、古いバージョンを使っている相手がいる場合はVLOOKUPのままにするか、数式を値として貼り付けて共有する方法をとってください。
VLOOKUPをXLOOKUPに置き換える4ステップ
既存のVLOOKUP数式をXLOOKUPに書き換える際の手順を示します。フリーランスが売掛金管理をExcelで効率化している場合も、この手順でスムーズに移行できます。

ステップ1: 置き換え前に元の数式の3要素を確認する
まず既存のVLOOKUP数式を分解します。例えば =VLOOKUP(A2, $D$2:$G$100, 3, FALSE) という数式の場合、検索値は「A2」、検索範囲は「$D$2:$G$100」、取り出す列は「左から3列目(F列)」です。VLOOKUPは戻り値の列を「検索範囲の左から何列目か」という数値で指定しますが、XLOOKUPは「戻り値の列範囲」を直接指定します。この変換の理解が置き換えの核心です。
ステップ2: XLOOKUP数式の3引数に対応させる
上記の例をXLOOKUPに変換すると =XLOOKUP(A2, $D$2:$D$100, $F$2:$F$100) となります。検索範囲が「D列全体」に絞られ、戻り範囲が「F列全体」として直接指定されます。列番号「3」という数値がなくなった分、数式を読んだだけで「D列で検索してF列を返す」という意図が明確になります。
ステップ3: エラー処理をXLOOKUPの第4引数に移す
元の数式が =IFERROR(VLOOKUP(A2, $D$2:$G$100, 3, FALSE), “未登録”) の形だった場合、XLOOKUPでは =XLOOKUP(A2, $D$2:$D$100, $F$2:$F$100, “未登録”) と第4引数に表示文言を移すだけです。IFERRORの外側の関数が不要になり、数式が1段階シンプルになります。
ステップ4: 置き換え後は1件サンプルで結果を確認する
置き換えた数式を全セルに適用する前に、結果が既知のデータ(例:社員番号が確実に存在するもの)で結果を確認してください。特に検索範囲を絶対参照($記号付き)にしているか、戻り範囲の行数が検索範囲と一致しているかを確認することで、大量データへの適用後のエラーを防げます。
XLOOKUPでは戻り範囲に複数列を指定すると、結果が自動的に隣接セルに広がる「スピル」が使えます。例えば =XLOOKUP(A2, $D$2:$D$100, $E$2:$G$100) と指定すれば、E・F・G列の3つの値が一度に返されます。ただしスピルは既存セルに値があるとエラーになるため、最初はVLOOKUPと同じ「1列返し」から始めて、慣れたら複数列返しに移行してください。
CHECK
▶ 今すぐやること: 既存のVLOOKUP数式を1つコピーして、隣のセルでXLOOKUP版に書き換えて結果を比較する(5分)
Q: VLOOKUPの第4引数TRUEを使った近似一致はXLOOKUPで再現できますか?
A: はい。XLOOKUPの第5引数(一致モード)に「1」(次に大きい値)または「-1」(次に小さい値)を指定することで近似一致を再現できます。ただし近似一致は検索列がソートされている前提で動作するため、ソートされていないデータに使うと誤った値を返す点はVLOOKUPと同様です。
Q: XLOOKUPでVLOOKUPの近似一致(第4引数TRUE)と同じ動きをさせたいです。
A: =XLOOKUP(検索値, 検索範囲, 戻り範囲, , -1) と第5引数に「-1」を指定してください。「-1」は検索値以下の最大値を返す設定で、料金区分表や税率表など数値範囲で結果を分類する用途に向いています。
PCスキルを仕事にしたい方へ
手に職をつける働き方をLINEで受け取る
未経験から在宅で稼げるようになるまでの進め方が届きます。日程が合うときだけセミナーに参加すればOKです。
LINEで受け取る登録1分・ブロック自由
PR提供: 日本デザインスクール(デザスク)
フリーランスの実務は5つの仕組みで効率化
フリーランスの請求管理・案件管理・顧客管理では、データ抽出の精度がそのままミスの発生率に直結します。ここではXLOOKUPを実務に組み込む5つのポイントを紹介します。
ポイント1: 請求先IDから会社名を左方向検索で自動入力し入力ミスをゼロにする
【対象】: 請求書に顧客名を手入力していてミスが発生しているフリーランス
顧客管理シートに「会社名・担当者名・請求金額・支払サイト」を左から順に並べます(列移動作業は不要。5分)。次に請求書シートのA列に「請求書番号またはID」を入力する列を作り、B列に =XLOOKUP(A2, 顧客管理!B:B, 顧客管理!A:A, “未登録”) を入力します(3分)。1件確認用データで会社名が正しく自動入力されるかテストし、問題なければ全行に数式をコピーします(2分)。
XLOOKUPでは「検索列はどこにあってもよい」ため、表を自然な業務フロー順に設計できます。これにより表の設計制約がなくなり、データ追加時の列順変更も不要になります。IDを右列に後から追加した既存の顧客リストも、そのまま活用できます。
顧客管理シートのIDが重複していると、最初に見つかったIDの行の値が返されます。IDの一意性を保つため、Excelのデータ検証(重複禁止ルール)を設定しておいてください。IFERRORを別途追加する必要はありません。
ポイント2: エラー処理を第4引数に内包してIFERROR追加作業を廃止する
【対象】: VLOOKUPにIFERRORを毎回ネストして数式が長くなっているフリーランス
既存の =IFERROR(VLOOKUP(…), “未登録”) 形式の数式を特定します(1分)。VLOOKUPをXLOOKUPに変換し、第4引数に表示文言(例: “未登録”, “要確認”, 0)を追加します(3分)。数式の文字数が短くなったことを確認し、シート全体に適用します(2分)。
実務ではIFERRORを外側に追加するたびに数式が長くなり、他の人が読んだときに意図が伝わりにくくなります。XLOOKUPの第4引数は「見つからなかったときに返す値」を数式の中に直接組み込む設計のため、数式1行で「検索とエラー処理」が完結します。引き渡すファイルを誰でも読みやすい状態に保てる点がXLOOKUPの本質的な優位性です。
第4引数に空文字(“”)を指定すると、該当なしの場合にセルが空白になります。空白と「本当に空のセル」を区別する処理が後続にある場合は、“未登録” のような識別可能な文字列を指定してください。
ポイント3: 検索範囲と戻り範囲を分離して列追加・削除で数式が壊れない設計にする
【対象】: 列の追加・削除のたびにVLOOKUPの列番号を修正している作業が発生しているフリーランス
既存のVLOOKUPで使っている列番号(例: 3列目)を確認し、その列が実際にどの列か(例: F列)を特定します(2分)。XLOOKUPの検索範囲と戻り範囲を、列名で直接指定します(例: =XLOOKUP(A2, D:D, F:F))(2分)。F列の左に新しい列を挿入してみて、数式が自動的に =XLOOKUP(A2, D:D, G:G) に更新されることを確認します(1分)。
VLOOKUPの「3列目」という数値指定はExcelの自動更新の対象外のため、列を追加しても数値は変わりません。XLOOKUPでは戻り範囲を「セル参照」で指定するため、Excelの列挿入・削除に伴う参照の自動更新が適用されます。月1回以上テーブル構造を変更するフリーランスであれば、この設計だけで年間数十分の修正作業をなくせます。また、個人事業主の見積書や請求管理など、頻繁に項目が変わる帳票管理でも特に効果を発揮します。

戻り範囲に列全体(D:D)を指定する場合、データが入っていない大量の空白セルも検索対象になるためファイルサイズが増加する場合があります。データ範囲が1,000行以上の場合は D2:D1000 のように範囲を限定してください。
ポイント4: 完全一致デフォルトを使って近似一致による誤抽出を防止する
【対象】: VLOOKUPで第4引数FALSEを指定し忘れて誤った値が返ったことがあるフリーランス
既存のVLOOKUP数式を確認し、第4引数が省略または「TRUE」になっているものをリストアップします(3分)。XLOOKUPに置き換え、第5引数を省略します(完全一致がデフォルトで適用されます)(2分)。数値IDや商品コードなど、部分一致での誤抽出が起きやすいデータで結果を確認します(2分)。
近似一致モードでは、検索値が見つからない場合に「検索値以下の最大値の行」が返されるため、商品コードが「1234」のつもりで「1230」の行のデータが返ることがあります。XLOOKUPはデフォルトが完全一致のため、この種の静かなミスを構造的に防止できます。「FALSE指定を忘れない」という注意を促すよりも、デフォルトで完全一致になる関数を使う方が確実です。COUNTIFで複数条件を使う場面でも完全一致の重要性は同様です。

近似一致が必要な用途(料金表・税率表での範囲検索)では、XLOOKUPの第5引数に「-1」または「1」を明示的に指定してください。デフォルト設定のまま使うと完全一致のみになるため、近似一致が必要な用途には適用しないよう注意が必要です。
ポイント5: 横方向検索にXLOOKUPを使いHLOOKUPの学習コストを削減する
【対象】: 横方向の表からデータを取り出す際にHLOOKUP関数を別途学習・管理しているフリーランス
横方向の表(例: 月別売上表で1行目が月名、2行目以降が項目)で取り出したいデータを特定します(1分)。=XLOOKUP(検索値, 検索範囲行, 戻り範囲行) の形で指定します(例: =XLOOKUP(“3月”, B1:M1, B3:M3))(3分)。縦方向のXLOOKUP数式と同じ構造で動作することを確認し、HLOOKUPの数式を削除します(1分)。
XLOOKUPは指定する範囲が「行か列か」を自動認識するため、縦でも横でも同じ構文で使えます。管理する関数の種類が2つから1つに減るため、「縦横どちらの表か」を意識する認知コストがなくなります。フリーランスが管理する案件管理表・売上集計表・スケジュール表は縦横が混在することが多く、この統一性が実務で特に効きます。Googleスプレッドシートの基本操作でも同様の考え方が役立ちます。

XLOOKUPで横方向検索をする際、検索範囲が「行」であることを確認してください。縦方向の列(D2:D100)を検索範囲に指定して横方向の戻り範囲を指定すると、エラーまたは意図しない結果になります。HLOOKUPを完全に廃止する前に、既存の横方向テーブルをすべてXLOOKUPで再現できることを確認してから削除してください。
CHECK
▶ 今すぐやること: ポイント1〜5のうち自分の業務に最も近い1つを選び、テスト用シートで実装してみる(10分)
Q: XLOOKUPで複数条件での検索はできますか?
A: はい。=XLOOKUP(検索値1&検索値2, 検索範囲1&検索範囲2, 戻り範囲) のように「&」で複数列を連結することで複数条件検索が可能です。例えば「会社名&担当者名」を組み合わせて一意のレコードを特定するケースで有効です。ただし配列数式として動作するため、入力後にCtrl+Shift+EnterではなくEnterで確定してください(Microsoft 365ではEnterのみで動作します)。
Q: XLOOKUPで見つからない場合に0ではなく空白を返すには?
A: 第4引数に空文字 “” を指定してください(=XLOOKUP(A2, D:D, F:F, “”))。何も指定しない場合はエラー値「#N/A」が返されます。0を返したい場合は第4引数に 0 を指定します。
フリーランスの実務活用は2つのケースで比較
実際の業務でXLOOKUPとVLOOKUPを使い分けるとどうなるか、フリーランスに近い状況で比較します。
ケース1(成功パターン): XLOOKUPへの切り替えで請求ミスを月ゼロ件に
フリーランスのAさんは、顧客管理シートの「会社名列が右側にある」構造を変えられない状況でVLOOKUPを使い続けていました。左方向検索ができないため、毎回手動で会社名をコピーしており、月に2〜3件の転記ミスが発生していました。XLOOKUPに切り替えてIDから会社名を左方向に自動取得する設計に変えたところ、転記作業自体がなくなりミスも解消されました。
「XLOOKUPに切り替えてから、検索キーを左端に持ってくるための列の並べ替えが不要になり、管理シートの設計が一気に楽になりました」という声があります(XLOOKUPの実務活用体験談)。
ケース2(注意パターン): 互換性確認なしに切り替えてファイル共有でトラブル
フリーランスのBさんは、取引先との共有ファイルのVLOOKUP数式をすべてXLOOKUPに置き換えたところ、取引先がExcel 2016を使用していたため、数式が#NAME?エラーになりファイルが使えなくなりました。再度VLOOKUPに戻す作業に半日かかりました。
「VLOOKUPからXLOOKUPへの移行は便利だったけど、他の人と共有するファイルでは相手の環境確認が必須だと痛感した」という経験談があります(VLOOKUPからXLOOKUPへの移行体験談)。
事前に取引先のExcelバージョンを確認していれば、共有ファイルと自分専用ファイルで使い分けるという判断ができ、トラブルを防げます。外注契約書テンプレートの作成など、共有書類の管理全般においても相手の環境確認は重要な習慣です。

CHECK
▶ 今すぐやること: 共有しているExcelファイルがあれば相手のExcelバージョンを確認し、XLOOKUPへの切り替え可否を判断する(3分)
Q: 取引先がExcel 2019の場合、共有ファイルでXLOOKUPを使う方法はありますか?
A: 共有ファイルではXLOOKUPを使わず、VLOOKUPまたはINDEX+MATCHを使ってください。自分の作業用ファイル(共有しないもの)でXLOOKUPを使い、共有ファイルには値のみを貼り付ける方法が現実的です。
Q: XLOOKUPとVLOOKUPが混在したファイルはどう整理すればいいですか?
A: 共有するファイルと自分専用ファイルで使う関数を統一してください。共有ファイルはVLOOKUP、自分専用はXLOOKUPと分けると管理がシンプルになります。混在させるとどのバージョンを基準に運用しているかわかりにくくなるため、どちらかに統一してください。
XLOOKUPへの切り替えを今日から始める
XLOOKUPはVLOOKUPの5つの制約を全て解消した関数であり、Microsoft 365または2021以降の環境であれば今日から使い始める価値があります。
迷ったら「今使っているExcelバージョンを確認する」という1ステップから始めてください。バージョンがOKなら、次は既存のVLOOKUP数式を1つだけXLOOKUPに書き換えてみる。それだけで実感できます。切り替えに正解のタイミングはなく、1本書き換えることが唯一の始め方です。
| 状況 | 次の一歩 | 所要時間 |
| Microsoft 365または2021以降を使っている | 既存VLOOKUPを1本XLOOKUPに書き換える | 5分 |
| Excel 2019以前または環境不明 | ファイル→アカウントでバージョンを確認する | 1分 |
| 取引先との共有ファイルがある | 相手のExcelバージョンを確認してから判断する | 3分 |
| 左方向検索で困っている | ポイント1を参照してXLOOKUPで解決する | 10分 |
XLOOKUP vs VLOOKUPに関するよくある質問
Q: XLOOKUPはVLOOKUPより処理が遅いですか?
A: 通常業務の規模(数千行以内)では体感できる差はほぼありません。数万行以上の大量データを扱う場合、XLOOKUPの列全体指定(D:D)はVLOOKUPの範囲指定よりファイルが重くなることがあります。大量データでは D2:D5000 のように範囲を限定してください(Excelの検索関数パフォーマンス比較)。
Q: VLOOKUPが得意な人にXLOOKUPを教えるには何から始めればいいですか?
A: 「第4引数のFALSEが省略できる」「IFERRORが不要になる」の2点から説明するのが最短です。VLOOKUPとの構文の違いは「列番号の代わりに戻り範囲を直接指定する」という1点に集約されます。最初から全機能を説明しようとすると混乱しやすいため、既存のVLOOKUP数式を1本XLOOKUPに書き換える体験から始めてください。
Q: XLOOKUP関数はMicrosoftの公式サポートで確認できますか?
A: はい。MicrosoftのXLOOKUP関数の公式サポートページで引数の仕様・対応バージョン・使用例が確認できます。引数の動作に迷ったときはまずこちらを参照してください。
【出典・参照元】
Excel XLOOKUP関数の使い方・実務比較(hatenabase)
XLOOKUP関数とは?VLOOKUPとの違い(biz.moneyforward)
スプレッドシートのXLOOKUP解説(biz.moneyforward)