
さらばVLOOKUP!ExcelのXLOOKUP関数の使い方を完全マスター【複数条件・エラー処理も網羅】
Officeのお役立ち情報


ExcelのVLOOKUP関数って、すごく便利なんですけど、時々イライラしちゃうんです…。
検索したい値が表の左端にないと使えないし、エラーが出た時にIFERROR関数で囲むのも面倒で…。
列を一つ追加しただけで、数式が全部ずれて大惨事になったこともあります。
もっとスマートな方法ってないんでしょうか?

そのお悩み、Excelを使う多くの人が一度は必ず通る道です。
VLOOKUP関数は長年Excelのデータ検索の主役でしたが、おっしゃる通り、多くの弱点と制約を抱えていました。
でも、ご安心ください。
その弱点をすべて克服し、これまでの常識を覆す、まさに“神”とも呼べる後継関数が存在するんですよ。
それが**「XLOOKUP(エックスルックアップ)関数」**です。
今日は、なぜXLOOKUPがVLOOKUPに取って代わる存在なのか、その基本的な使い方から、複数条件での検索やエラー処理といった、多くの入門記事が触れない実務必須の応用テクニックまで、この記事一本で完全にマスターできるよう、日本一詳しく、そして丁寧に解説していきます。
もう二度と、VLOOKUPの制約に悩まされることはなくなりますよ。
さらばVLOOKUP!XLOOKUP関数がExcelの「常識」を覆す5つの革命
XLOOKUP関数は、単にVLOOKUP関数の改良版というだけではありません。
それは、Excelにおけるデータ検索の考え方を、より直感的で、より安全で、そしてより強力なものへと変える、革命的な進化なのです。
まずは、XLOOKUPがいかに優れているか、VLOOKUPの“悪夢”と比較しながら5つのポイントで解説します。
革命1:検索範囲が「左端」である必要がなくなる【最大のストレス解放】
VLOOKUP関数における最大の制約、それは**「検索値が、検索するテーブル範囲の必ず“一番左の列”になければならない」**という、あの悪名高いルールでした。
例えば、社員名簿で「氏名」から「社員番号」を検索したい場合、氏名が社員番号より右の列にあると、VLOOKUPは使えません。
そのためだけに、元の表の列の順番をわざわざ入れ替える、といった不毛な作業を強いられてきました。
XLOOKUPは、この制約を完全に取り払いました。
XLOOKUPでは、「検索値を探す範囲(検索範囲)」と「取り出したいデータがある範囲(戻り範囲)」を、それぞれ独立して指定します。
そのため、検索したい値がテーブルの右端にあろうと、真ん中にあろうと、全く問題ありません。
これにより、私たちは元の表の構造を一切気にすることなく、自由な発想でデータを検索できるようになったのです。
革命2:デフォルトで「完全一致」検索となり、意図せぬエラーを防ぐ
VLOOKUP関数には、もう一つの大きな“罠”がありました。
それは、第4引数である `[検索の型]` を省略したり、`TRUE` を指定したりすると、「近似一致」検索になってしまうことです。
これは、検索値と完全に一致する値が見つからない場合に、検索値以下の最大値を返してくるという仕様ですが、多くの場合、ユーザーが意図しない、間違ったデータを返してくる原因となっていました。
そのため、VLOOKUPを使う際は、常に第4引数に `FALSE` を指定し、「完全一致」検索を明示することが“お作法”とされてきました。
XLOOKUPでは、この長年の悪習が改善され、**デフォルトの動作が「完全一致」検索**となりました。
ユーザーが何も指定しなければ、常に完全に一致する値だけを探しに行きます。
これにより、関数の入力がシンプルになるだけでなく、意図しないデータが表示されるリスクが大幅に減り、より安全で直感的な操作が可能になりました。
革命3:エラー処理が関数内に標準搭載されている【IFERROR不要】
VLOOKUP関数で検索値が見つからなかった場合、セルには無慈悲な「#N/A」というエラー値が表示されます。
これを避けるためには、`=IFERROR(VLOOKUP(...), "該当なし")` のように、`IFERROR` や `IFNA` といった別の関数を組み合わせて、数式を“ネスト(入れ子)”にする必要がありました。
これにより、数式は長く、複雑になり、可読性も低下していました。
XLOOKUPは、このエラー処理機能も関数内に標準で搭載しています。
オプションの第4引数 `[見つからない場合]` に、エラー時に表示したい文字列(例:「該当なし」)や数値(例:0)を直接指定するだけです。
`IFERROR` で数式を囲む必要はもうありません。
これにより、数式は驚くほどシンプルで、美しく、そして誰にとっても分かりやすいものになります。
革命4:列の挿入・削除に強い「動的な参照」【数式の崩壊を防ぐ】
これは、実務でVLOOKUPを多用してきた人ほど、深く頷ける“あるある”な悲劇です。
VLOOKUPは、取り出したいデータが、検索範囲の左から何番目の「列番号」にあるかを、数値で指定する必要がありました。
例えば、`=VLOOKUP(..., ..., 3, ...)` のようにです。
この仕様の最大の問題は、元の表の構造が変化した際に、数式が即座に壊れてしまう脆弱性にありました。
例えば、検索範囲の2列目と3列目の間に、後から新しい列を一つ挿入したとします。
すると、本来3列目にあったデータは4列目にずれますが、数式内の「3」という数値は自動では更新されません。
結果として、すべての数式が間違った列のデータを参照し始め、気づかぬうちにデータ全体が信頼性を失う、という大惨事を引き起こします。
XLOOKUPは、この問題も解決します。
戻り値の場所を「列番号」という曖昧な数値ではなく、`C:C` のような具体的な「セル範囲」で直接指定するため、後から元の表に行や列を挿入・削除しても、Excelが自動で参照範囲を調整してくれます。
これにより、メンテナンス性に優れ、変化に強い、堅牢なワークシートを構築できるのです。
革命5:HLOOKUPやINDEX+MATCHの役割を一人でこなす万能性
Excelには、VLOOKUPの他にも、横方向の検索を行う「HLOOKUP」や、VLOOKUPの「左端の壁」を乗り越えるために、上級者が使ってきた「INDEX関数とMATCH関数の組み合わせMATCH関数で検索値が何番目にあるかを探し、その行番号をINDEX関数に渡して対応する値を取り出す、という合わせ技。VLOOKUPの弱点を克服できるため、長年Excel上級者に愛用されてきました。」というテクニックがありました。
XLOOKUPは、これらの関数の役割も、たった一人ですべてこなしてしまいます。
横方向の検索も、VLOOKUPでは不可能だった左方向への検索も、追加の学習なしに、全く同じ構文と考え方で実行できます。
XLOOKUPの登場は、Excelにおける“検索”という概念を統一し、シンプル化した、まさに歴史的な出来事なのです。
【基本編】XLOOKUP関数の構文を完全マスターする
XLOOKUPの革命的なメリットを理解したところで、その具体的な使い方を見ていきましょう。
一見すると引数が多くて複雑に見えるかもしれませんが、必須なのは最初の3つだけです。
XLOOKUP関数の基本構文:6つの引数を徹底解説
XLOOKUP関数の完全な構文は以下の通りです。
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
- ・1. 検索値(必須):
探したい値、またはその値が入力されているセルを指定します。
(例:社員番号「1001」、セル「A2」など)
- ・2. 検索範囲(必須):
検索値を探す対象となる、単一の列または行のセル範囲を指定します。
(例:社員番号が入力されている列全体 `A:A` など)
- ・3. 戻り範囲(必須):
検索値が見つかった場合に、実際に取り出したいデータが含まれる、単一の列または行のセル範囲を指定します。
(例:氏名が入力されている列全体 `B:B` など)
- ・4. [見つからない場合](任意):
検索値が見つからなかった場合に表示する値を指定します。
これを指定すれば、`IFERROR`は不要です。
(例:"該当なし", 0 など)
- ・5. [一致モード](任意):
検索方法を指定します。
省略すると `0` (完全一致) になります。
近似一致検索など、高度な検索で使います。
- ・6. [検索モード](任意):
検索の方向を指定します。
省略すると `1` (先頭から末尾へ) になります。
最後のデータを探す場合などに使います。
実践1:VLOOKUPからの乗り換え - 基本的な検索
まずは、最も基本的な使い方です。
「社員マスタ」シートにある社員番号リストから、対応する氏名を検索するケースを考えます。
VLOOKUPの場合:=VLOOKUP(A2, 社員マスタ!A:B, 2, FALSE)
XLOOKUPの場合:=XLOOKUP(A2, 社員マスタ!A:A, 社員マスタ!B:B)
VLOOKUPでは、検索範囲として `A:B` というテーブル全体を指定し、その中から「2番目」の列を取り出す、という考え方でした。
一方、XLOOKUPでは、「A列(検索範囲)でA2の値を探し、見つかったら同じ行にあるB列(戻り範囲)の値を返す」という、より人間が考えるプロセスに近い、直感的な記述になっているのが分かります。
実践2:エラー処理をスマートに行う - 第4引数 [見つからない場合]
次に、検索する社員番号が存在しなかった場合の処理です。
VLOOKUPの場合(IFERRORが必要):=IFERROR(VLOOKUP(A2, 社員マスタ!A:B, 2, FALSE), "該当者なし")
XLOOKUPの場合(第4引数を指定するだけ):=XLOOKUP(A2, 社員マスタ!A:A, 社員マスタ!B:B, "該当者なし")
XLOOKUPの数式がいかにシンプルで読みやすいか、一目瞭然です。
エラー処理のために関数をネストする必要がなくなり、数式のメンテナンス性も格段に向上します。
実践3:複数列のデータを一度に取得する - スピル機能との連携
XLOOKUPの真の力は、Microsoft 365のExcelに搭載された「スピル(Spill)一つの数式を入力するだけで、結果が複数のセルに自動的に展開(溢れ出す)される、Excelの新しい計算機能です。動的配列数式とも呼ばれます。」機能と組み合わせることで発揮されます。
例えば、社員番号から「氏名」「部署」「役職」を一度に取得したい場合を考えます。
戻り範囲を、`社員マスタ!B:D` のように複数列に指定するだけです。
XLOOKUPで複数項目を一度に取得:=XLOOKUP(A2, 社員マスタ!A:A, 社員マスタ!B:D)
この数式を一つのセルに入力するだけで、結果は右方向のセルに自動的に展開(スピル)され、氏名、部署、役職が一度に表示されます。
VLOOKUPで同じことをしようとすれば、列ごとに3つの数式を入力する必要がありました。
この動的な配列処理能力こそ、XLOOKUPが次世代の関数と呼ばれる理由の一つです。
【応用編】実務で差がつく!XLOOKUP関数の高度な活用テクニック
基本をマスターしたら、いよいよXLOOKUPの真価を発揮させる応用テクニックの世界へ進みましょう。
これらのテクニックを使いこなせば、これまで複雑な数式や作業列を駆使して行っていたデータ処理が、驚くほどシンプルに実現できます。
テクニック1:複数条件での検索(AND条件)- もう作業列は不要
シナリオ:「部署名が“営業部”」で、かつ「役職が“課長”」である社員の氏名を検索したい。
VLOOKUPでは、このような複数条件での検索は直接実行できませんでした。
そのため、多くの人は、部署名と役職名を `&` で連結した「作業列」を元データにわざわざ作成し、その作業列をキーにして検索する、という手間のかかる方法を取っていました。
XLOOKUPは、この作業列すら不要にします。
検索値と検索範囲の両方を `&` で連結して、仮想的な検索キーを数式内で作り出してしまうのです。
複数条件での検索(AND条件):=XLOOKUP("営業部"&"課長", 部署列範囲 & 役職列範囲, 氏名列範囲)
この数式は、Excelの内部で「営業部課長」という結合された文字列を検索キーとし、同じく内部で仮想的に作られた「部署名と役職名が結合された範囲」を検索しにいきます。
そして、条件に一致した行の氏名を返します。
元のデータを一切汚すことなく、スマートに複数条件検索が実現できる、非常に強力なテクニックです。
テクニック2:近似一致とワイルドカード - 曖昧な検索を極める
オプションの第5引数 `[一致モード]` を活用することで、XLOOKUPはより柔軟な検索を実行できます。
- ・`-1`: 完全一致、またはそれより**小さい方**の直近の値(VLOOKUPの近似一致TRUEと同じ)
- ・`1`: 完全一致、またはそれより**大きい方**の直近の値
- ・`2`: ワイルドカード`*`(アスタリスク)や `?`(クエスチョンマーク)といった特殊な文字を使い、「任意の文字列」や「任意の1文字」を含む、曖昧な条件で検索する手法です。文字を使った部分一致検索
近似一致の実践:
例えば、販売個数に応じた割引率のテーブルから、対応する割引率を検索する場合を考えます。
販売個数が「15個」の場合、「10個以上」の割引率を適用したい。
このような場合に、一致モード `-1` が役立ちます。
近似一致(小さい方):=XLOOKUP(販売個数セル, 個数下限列, 割引率列, 0, -1)
ワイルドカードの実践:
顧客リストから、「鈴木」という姓で始まる顧客のデータを検索したい場合、一致モードを `2` に設定し、検索値にワイルドカード文字 `*`(アスタリスク)を使います。
ワイルドカード検索(前方一致):=XLOOKUP("鈴木*", 氏名列, 顧客ID列, "該当なし", 2)
テクニック3:横方向の検索 - さらばHLOOKUP
XLOOKUPは、縦方向の検索(VLOOKUP)と横方向の検索(HLOOKUP)を、全く同じ構文で区別なく実行できます。
シナリオ:1行目に月(4月, 5月, 6月…)、2行目以降に各商品の売上データが並んでいる表から、「商品A」の「6月」の売上を取得したい。
横方向の検索:=XLOOKUP("6月", 1行目の月範囲, 商品Aの売上データ行範囲)
VLOOKUPとHLOOKUPで、なぜか引数の指定方法が微妙に異なり混乱する、といったExcel学習者の長年の悩みも、XLOOKUPがすべて解決してくれます。
テクニック4:検索方向の変更 - 最後のデータを取得する
オプションの第6引数 `[検索モード]` を使うと、検索の方向を制御できます。
デフォルトは `1` (先頭から末尾へ)ですが、これを `-1` (末尾から先頭へ)に変更することで、特定の条件に合致する**最後のデータ**を取得するという、非常に実用的な検索が可能になります。
シナリオ:顧客別の購入履歴データから、特定の顧客IDを持つ人の「最終購入日」を調べたい。
末尾からの検索:=XLOOKUP(顧客IDセル, 顧客ID列, 購入日列, "購入履歴なし", 0, -1)
この数式は、購入履歴リストを“下から上へ”と検索し、最初に見つかった(つまり時系列では最後になる)購入日を返します。
これは、VLOOKUPでは実現できず、複雑な配列数式を必要とした高度なテクニックでした。
テクニック5:ネストして複雑な検索を実現する - XLOOKUP in XLOOKUP
XLOOKUPは、それ自体を入れ子(ネスト)にすることで、二次元の表から行列の交差する値を抜き出す、`INDEX` と `MATCH` 関数の組み合わせの役割も果たせます。
シナリオ:行に商品名、列に月が並んだ売上マトリクス表から、「商品B」の「8月」の売上金額を取得したい。
二次元の表検索:=XLOOKUP("商品B", 商品名の列範囲, XLOOKUP("8月", 月の行範囲, 売上データ全体の範囲))
この数式の内側の `XLOOKUP("8月", ...)` が、まず「8月」に対応する「列全体」のデータ範囲を返します。
そして、外側のXLOOKUPが、その返された列範囲の中から「商品B」を探し出し、最終的な値を取得します。
この発想を理解できれば、あなたのExcelスキルは間違いなく上級者のレベルに達しています。
XLOOKUP関数が使えない?- 原因と対処法
これほど強力なXLOOKUP関数ですが、一部の環境では「#NAME?」エラーが表示され、使えない場合があります。
その原因は、ほぼ以下の2つに集約されます。
原因1:Excelのバージョンが古い
XLOOKUP関数は、比較的新しい関数です。
利用できるのは、サブスクリプション版の**Microsoft 365**、または買い切り版の**Excel 2021以降**のバージョンです。
残念ながら、Excel 2019, 2016といった古いバージョンではサポートされていません。
ご自身のバージョンは、「ファイル」タブ → 「アカウント」から確認できます。
原因2:互換モードでファイルを開いている
Excelのバージョンが新しいにも関わらず使えない場合、開いているファイルが古い「.xls」形式である可能性があります。
この場合、ウィンドウの上部に「互換モード」と表示されます。
「ファイル」タブ → 「名前を付けて保存」から、ファイルの種類を「Excel ブック (*.xlsx)」に変更して保存し直すことで、新しい関数が使えるようになります。
まとめ - XLOOKUPを制する者は、Excelを制す
VLOOKUPの数々の制約から私たちを解放し、Excelにおけるデータ検索のあり方を、より直感的で、安全で、強力なものへと進化させたXLOOKUP関数。
その革命的な価値を、改めて振り返ってみましょう。
- 1. 完全な自由:
検索値が左端にある必要はなく、縦でも横でも、同じ構文で直感的に検索できます。
- 2. 絶対的な安全性:
デフォルトで「完全一致」検索となり、意図しないエラーを防ぎます。
エラー処理も関数内で完結し、数式は常にシンプルです。
- 3. 強固な堅牢性:
列の挿入・削除といった表構造の変化に強く、数式が壊れる心配から解放されます。
- 4. 無限の応用力:
複数条件での検索、逆順検索、二次元検索といった、これまで上級者だけのテクニックだった高度な処理を、スマートに実現します。
Excelのスキルは、もはや一部の事務職だけのものではなく、あらゆるビジネスパーソンにとって必須の戦闘力です。
そして、XLOOKUP関数を自在に使いこなせるかどうかは、その戦闘力を大きく左右する分水嶺となります。
この記事で紹介したテクニックをマスターすれば、あなたがこれまでデータ集計や突合業務に費やしてきた膨大な時間が、数分の一に短縮されることをお約束します。
もし、お使いのExcelのバージョンが古く、この強力なXLOOKUP関数が使えないのであれば、それはPC環境全体を見直す絶好の機会です。
最新のMicrosoft 365を快適に動かすPC選びのご相談は、ぜひ私たち専門家にお任せください。
パソコン購入のためのお役立ち情報
パソコン選びがよく分からない方、ご不安のある方、悩む前に!お気軽にご相談ください!
専門スタッフが、性能・ご予算・お好みなどご希望に合ったパソコンをお探しします!
