XLOOKUPこそが究極のExcelルックアップ関数である3つの理由

Excelを長年使っている方なら、VLOOKUPやINDEX/MATCHにお世話になった回数は数え切れないでしょう。しかし、VLOOKUPの制限と格闘したり、INDEX/MATCHの複雑なネストに悩まされたりする時代はもう終わりです。ここで登場するのがXLOOKUP。Excelの最新検索関数であり、柔軟・シンプル・高機能の三拍子そろい、VLOOKUPとINDEX/MATCHの両方を置き換えられるほど強力です。
このチュートリアルでは、XLOOKUPがあなたの新しい相棒になる理由を3つご紹介します。日常的な検索タスクがどれほど速く、クリーンに、スマートになるかを見ていきましょう。
構文:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
XLOOKUP関数は、Excelの最新検索関数です。ある列(または行)から値を探し出し、別の列(または行)から関連する値を返します。よりシンプルで柔軟な設計により、VLOOKUPやINDEX/MATCHの置き換えを目的としています。
理由1:左方向にも右方向にも自由自在に検索できる
VLOOKUPは検索列の右側しか検索できません。検索対象の列がテーブル範囲の先頭列にない場合、数式は失敗します。INDEX/MATCHならこの問題を解決できますが、2つの関数をネストする必要があるため読みにくく、大規模なデータでは煩雑になりがちです。
XLOOKUPはこれを一変させます。検索範囲と返却範囲が独立しているため、左でも右でも上でも下でも、手間なく検索できます。
売上データセットがあり、商品名から商品IDを検索したいケースを想定しましょう。
VLOOKUPの場合:
- セルを選択し、次の数式を挿入します。
=VLOOKUP(H5,A2:F23,1,FALSE)
この数式は#N/Aエラーを返します。VLOOKUPは左方向へ検索できないためです(シートでは商品IDが商品名より左にあります)。ここでVLOOKUPを使うには列を並べ替える必要がありますが、データ構造や下流の数式を壊す恐れがあるため、現実的ではありません。

INDEX/MATCHの場合:
- セルを選択し、INDEX/MATCHの組み合わせを使用します。
=INDEX(A2:A23, MATCH(H8, B2:B23, 0))
この数式は商品ID(P006)を返します。動作はしますが、2つの範囲を指定し、MATCHが完全一致(0)であることを確認する必要があり、記述量が増えます。

XLOOKUPの場合:
XLOOKUPは列の順序を気にしません。「何を探すか」と「どこから値を返すか」を伝えるだけでOKです。
- セルを選択し、次の動的なXLOOKUP数式を挿入します。
=XLOOKUP(H12, B2:B23, A2:A23)
この数式は商品名を検索し、対応する商品ID(P006)を返します。IDが左側にあるにもかかわらず、です。構文はクリーンで、ネストも不要です。

実践的な活用例:
売上ダッシュボードの検索ボックスにユーザーが商品名を入力するとします。列を並べ替えることなく、商品IDだけでなく、価格・在庫・仕入先など複数の情報も瞬時に取り出せます。
=XLOOKUP(H12, B2:B23, A2:E23)
この数式は隣接するセルへ「スピル」することで複数列を返すため、1ステップですべての商品情報を取得できます。

理由2:エラー処理が組み込み済み(#N/Aともお別れ)
検索値が見つからない場合、Excelは#N/Aを返します。VLOOKUPやINDEX/MATCHでは、通常IFERRORで数式を包んで丁寧に処理しますが、そのぶんネストが一段増えます。
XLOOKUPにはif_not_found引数が組み込まれており、親切なメッセージや代替値を数式の中で直接指定できます。
データベースに存在しない可能性のある商品単価(例:「Wireless Charger」=ワイヤレス充電器)を検索してみましょう。
VLOOKUP + IFERRORの場合:
- セルを選択し、次の数式を挿入します。
=IFERROR(VLOOKUP(H4,D2:F23,1,FALSE), "Not Found")
動作はしますが、記述が冗長になり、ネストがさらに深くなります。

INDEX/MATCH + IFERRORの場合:
- セルを選択し、次の数式を挿入します。
=IFERROR(INDEX(D2:D23, MATCH(H8, B2:B23, 0)), "Not Found")
こちらも動作しますが、外側のラッパーによって数式が長くなります。

XLOOKUPの場合:
XLOOKUPのif_not_found引数なら、見つからない値もエレガントに処理できます。
- セルを選択し、次の数式を挿入します。
=XLOOKUP(H12, B2:B23, D2:D23, "Not Found")
この数式は商品名を検索し、見つからなければ「Not Found」を返します。簡潔で、余計な関数も不要です。

理由3:ワイルドカード検索が驚くほど簡単に
VLOOKUPは完全一致モード(FALSE)でテキスト検索にワイルドカード(*と?)をサポートしていますが、構文は直感的とは言えません。INDEX/MATCHも、MATCHのmatch_typeが0のときにワイルドカードを認識するため利用可能です。一方、XLOOKUPはmatch_modeを2にすることでワイルドカード一致を明示的に指定でき、意図が分かりやすく、予期しない挙動も減らせます。
商品名の一部しか覚えていない状況を想像してください。たとえば「Lap」で始まる商品の価格を知りたいときです。
VLOOKUPの場合:
- セルを選択し、次の数式を挿入します。
=VLOOKUP("Lap*", B2:D23, 3, FALSE)
ワイルドカードによる完全一致で機能し、データの並べ替えも不要です。ただし、「列番号」引数は列が移動すると脆くなるという弱点があります。

INDEX/MATCHの場合:
- セルを選択し、次の数式を挿入します。
=INDEX(D2:D23, MATCH("Lap*", B2:B23, 0))
この方法もMATCH経由でワイルドカードをサポートします。信頼性はありますが、2つの範囲を指定する構成のため記述が長くなりがちです。

XLOOKUPの場合:
XLOOKUPのmatch_modeを使えば、ワイルドカード検索は非常にシンプルになります。
- セルを選択し、次の数式を挿入します。
=XLOOKUP("Lap*", B2:B23, D2:D23, "No match", 2)
- 「Lap*」:部分一致(「Lap」で始まる任意の文字列と一致)
- 検索配列:
B2:B23 - 返却配列:
D2:D23 - if_not_found:「No match」
- 2:ワイルドカード検索を有効化
この数式はワイルドカード一致によって商品価格(例:$30)を返します。部分一致での名前検索、SKU検索、正確な値が手元にないあらゆる場面で役立ちます。

重要な注意点: XLOOKUPはMicrosoft 365、Excel 2021以降のバージョンで利用可能です。それ以前のバージョンをお使いの場合は、当面VLOOKUPまたはINDEX/MATCHを使い続ける必要があります。
ワイルドカード早見表:
| 記号 | 意味 | 例 | 一致する内容 |
|---|---|---|---|
| * | 任意の文字数に一致 | 「Lap*」 | Laptop Stand |
| ? | 任意の1文字に一致 | 「P00?」 | P001、P002 など |
| ~ | ワイルドカードを無効化(エスケープ) | 「Power~*」 | 文字通りの「Power*」を検索 |
練習用ワークブックのダウンロード
まとめ
XLOOKUPは単なる新しい検索関数ではありません。Excelにおける検索のあり方そのものを見直したものと言えます。今回のチュートリアルでは、XLOOKUPが頼れる相棒となる理由を3つお伝えしました。方向を問わない柔軟な検索、組み込み済みのエラー処理、明示的なワイルドカード一致の組み合わせにより、時間を節約し、数式エラーを未然に防げます。一度使い始めれば、もう元には戻れないはずです。
無料の高度なExcel演習問題(解答付き)を受け取ろう!
-
OneNoteのスペルチェッカーが機能しないときの対処法
OneNoteは、メモや画面のクリップ、描画、音声メモなどを一か所にまとめて管理できる情報収集・ノート作成アプリです。他のOfficeアプリと同様にスペルチェック機能が搭載されており、文法ミスの修正をサポートしてくれます。しかし、まれにこのスペルチェッカーが正しく動作しなくなるトラブルが発生することがあります。 OneNoteのスペルチェッカーが機能しないときの解決策 OneNoteのスペルチェック機能が動作しない場合は、以下の手順を試してみてください。 文章校正(Proofing)の設定を確認する OneNoteを再起動する Officeを修復する 1. 文章校正(Proofing)の設
-
Excelで名前付き範囲を定義・編集する方法|名前ボックスと名前マネージャーの使い方
Excelで名前付き範囲を定義・編集する方法 この記事では、Microsoft 365版Excel、Excel 2019、2016、2013、2010を対象に、セル範囲に名前を定義し、編集する方法を詳しく解説します。 ポイント 対象のセル範囲を選択し、ワークシートのA列上部にある「名前ボックス」に名前を入力します。 または、セル範囲を選択した状態でリボンの「数式」タブを開き、「名前の定義」を選択します。 名前の管理は、「数式」タブの「名前マネージャー」から行えます。名前を選択して「削除」または「編集」をクリックしてください。 名前ボックスを使って名前を定義・管理する 名前を定義する最も