Office(オフィス)付きパソコンなら格安中古のPC STORE

2025.6.30

さらば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. 1. 完全な自由:

    検索値が左端にある必要はなく、縦でも横でも、同じ構文で直感的に検索できます。

  2. 2. 絶対的な安全性:

    デフォルトで「完全一致」検索となり、意図しないエラーを防ぎます。

    エラー処理も関数内で完結し、数式は常にシンプルです。

  3. 3. 強固な堅牢性:

    列の挿入・削除といった表構造の変化に強く、数式が壊れる心配から解放されます。

  4. 4. 無限の応用力:

    複数条件での検索、逆順検索、二次元検索といった、これまで上級者だけのテクニックだった高度な処理を、スマートに実現します。

Excelのスキルは、もはや一部の事務職だけのものではなく、あらゆるビジネスパーソンにとって必須の戦闘力です。

そして、XLOOKUP関数を自在に使いこなせるかどうかは、その戦闘力を大きく左右する分水嶺となります。

この記事で紹介したテクニックをマスターすれば、あなたがこれまでデータ集計や突合業務に費やしてきた膨大な時間が、数分の一に短縮されることをお約束します。

もし、お使いのExcelのバージョンが古く、この強力なXLOOKUP関数が使えないのであれば、それはPC環境全体を見直す絶好の機会です。

最新のMicrosoft 365を快適に動かすPC選びのご相談は、ぜひ私たち専門家にお任せください。

Office付きパソコンなら格安中古のPC STORE

パソコン購入のためのお役立ち情報

パソコン選びがよく分からない方、ご不安のある方、悩む前に!お気軽にご相談ください!

専門スタッフが、性能・ご予算・お好みなどご希望に合ったパソコンをお探しします!

PC STOREへ