「VLOOKUPは難しくて挫折した…」 「もっと簡単で柔軟な検索関数はないの?」 「複雑なデータから必要な情報を素早く取り出したい!」
そんな悩みを一気に解決してくれるのが、今回ご紹介する XLOOKUP(エックスルックアップ)関数 です。
XLOOKUPは、Microsoftが満を持して登場させた「次世代の検索関数」。長年Excelユーザーを悩ませてきたVLOOKUPの欠点をすべて克服し、誰でも直感的に使えるように設計されています。
この記事では、XLOOKUPをまったく使ったことがない初心者の方でも、読み終える頃にはスラスラ使いこなせるようになることを目指して、基本から応用、さらには実践的な例題までたっぷりと解説していきます。
ぜひ最後までお付き合いくださいね!
目次
- XLOOKUPとは?基本を理解しよう
- XLOOKUPの基本構文と引数
- 【基本編】まずは使ってみよう!シンプルな例題
- 【中級編】エラー処理と便利な使い方
- 【応用編】XLOOKUPの真価を発揮するテクニック
- VLOOKUPとの違いを徹底比較
- 実践練習問題(解答付き)
- よくあるエラーと対処法
- まとめ
1. XLOOKUPとは?基本を理解しよう
XLOOKUP関数とは
XLOOKUP関数 とは、簡単に言うと「指定した値を表の中から探して、対応する値を取り出してくれる関数」です。
例えば、商品コード一覧表から「商品コードA001の商品名を知りたい」「社員番号1234の人の部署を知りたい」というときに大活躍します。
利用できる環境
XLOOKUPは比較的新しい関数で、以下の環境で利用できます。
- Microsoft 365(旧Office 365)
- Excel 2021 以降
- Excel for the web(ブラウザ版)
⚠️ Excel 2019以前のバージョンでは使えませんので、その場合はVLOOKUPやINDEX+MATCHを使う必要があります。
なぜXLOOKUPが「最強」と呼ばれるのか
XLOOKUPがこれほど評価されている理由は、以下の5つの強力な特徴にあります。
- 左側の値も検索できる(VLOOKUPは右側しか検索できなかった)
- エラー処理が引数だけで完結する(IFERRORを組み合わせる必要がない)
- 完全一致がデフォルト(VLOOKUPの「FALSE忘れ」によるミスがない)
- 横方向の検索もOK(HLOOKUPの代わりにもなる)
- 下から上への検索もできる(最新データの取得が簡単)
これらの特徴を、具体例とともに順に見ていきましょう。
2. XLOOKUPの基本構文と引数
XLOOKUPの基本構文は以下の通りです。
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
引数は全部で6つありますが、最初の3つが必須、後ろの3つは省略可能 です。最初は前半3つだけ覚えればOKです。
それぞれの引数の意味を表にまとめました。
| 引数名 | 必須 | 内容 |
|---|---|---|
| 検索値 | ◯ | 探したい値(例:商品コード「A001」) |
| 検索範囲 | ◯ | 検索値を探す範囲(縦1列または横1行) |
| 戻り範囲 | ◯ | 取り出したい値が入っている範囲 |
| 見つからない場合 | △ | 検索値が見つからなかったときに表示する値 |
| 一致モード | △ | 完全一致か近似一致かを指定(既定値は完全一致) |
| 検索モード | △ | 上から検索するか下から検索するかを指定 |
「△」の引数はとりあえず省略しても問題ありません。慣れてきたら少しずつ使いこなしていきましょう。
引数の覚え方のコツ
最初の3つの引数は、頭の中で次のように考えると簡単に覚えられます。
「何を」「どこから探して」「何を返すか」
- 検索値 = 何を
- 検索範囲 = どこから探して
- 戻り範囲 = 何を返すか
このシンプルな3ステップさえ押さえれば、XLOOKUPの8割は理解できたも同然です!
3. 【基本編】まずは使ってみよう!シンプルな例題
それでは、実際にXLOOKUPを使った例題をいくつか見ていきましょう。
例題1:商品コードから商品名を取り出す
以下のような商品マスタがあるとします。
| A | B | C | |
|---|---|---|---|
| 1 | 商品コード | 商品名 | 価格 |
| 2 | A001 | りんご | 150 |
| 3 | A002 | みかん | 100 |
| 4 | A003 | バナナ | 80 |
| 5 | A004 | ぶどう | 400 |
| 6 | A005 | いちご | 500 |
E2セルに商品コード「A003」と入力されているとき、F2セルに「バナナ」を表示させたい場合、次のように書きます。
=XLOOKUP(E2, A2:A6, B2:B6)
この式の意味:
- 検索値:
E2(A003)を - 検索範囲:
A2:A6(商品コードの列)から探して - 戻り範囲:
B2:B6(商品名の列)の対応する値を返す
→ 結果として 「バナナ」 が表示されます。
例題2:商品名から価格を取り出す
「みかんの価格はいくら?」を調べたい場合はどうでしょうか。
=XLOOKUP("みかん", B2:B6, C2:C6)
→ 結果は 「100」 です。
検索値を直接ダブルクォーテーション("")で囲めば、文字列で指定することもできます。
例題3:左側の値を検索する(VLOOKUPでは不可能だった!)
ここが重要! XLOOKUPの最大の強みの1つが、「検索範囲の左側にあるデータも取り出せる」という点です。
例えば、「商品名”バナナ”の商品コードを知りたい」というケース。
=XLOOKUP("バナナ", B2:B6, A2:A6)
→ 結果は 「A003」 です。
VLOOKUPでは、検索する列より左側の列の値は取り出せませんでした。そのため、「INDEX+MATCH」という複雑な組み合わせを使う必要があったのです。
XLOOKUPなら、検索範囲と戻り範囲を別々に指定できるので、左でも右でも自由自在!
4. 【中級編】エラー処理と便利な使い方
検索値が見つからないときの処理
VLOOKUPでよくあるのが、検索値が見つからないときに「#N/A」というエラーが表示されてしまう問題です。
XLOOKUPなら、第4引数に「見つからなかったときに表示する値」を指定できます。
例題4:見つからない場合に「該当なし」と表示する
先ほどの商品マスタで、存在しない商品コード「X999」を検索してみます。
=XLOOKUP("X999", A2:A6, B2:B6, "該当なし")
→ 結果: 「該当なし」
第4引数に文字列を入れることで、エラーの代わりに分かりやすいメッセージを表示できます。これだけで、VLOOKUP+IFERRORの組み合わせが不要になるのです。
第4引数の活用例
| 第4引数の値 | 表示される内容 |
|---|---|
"該当なし" | 該当なし |
"未登録" | 未登録 |
0 | 0 |
"" | 空白 |
"確認してください" | 確認してください |
横方向の検索もできる(HLOOKUPの代わりに)
XLOOKUPは縦だけでなく、横方向の検索も得意です。例えば、月ごとの売上が横並びになっている表でも使えます。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 月 | 1月 | 2月 | 3月 | 4月 |
| 2 | 売上 | 100 | 150 | 200 | 180 |
「3月の売上を知りたい」場合:
=XLOOKUP("3月", B1:E1, B2:E2)
→ 結果: 「200」
縦でも横でも、まったく同じ感覚で書けるのがXLOOKUPの良いところです。
複数列を一度に取り出す
XLOOKUPは、なんと複数の列を一度に取り出すこともできます!
例題5:商品コードから商品名と価格を同時に取得
=XLOOKUP("A002", A2:A6, B2:C6)
戻り範囲を「B2:C6」と複数列にすると、商品名と価格の両方が一度に取り出されます。
→ 結果: 「みかん」と「100」がそれぞれ隣のセルに表示
これは「スピル」というExcelの新機能で、1つの式の結果が自動的に複数のセルに広がる仕組みです。
5. 【応用編】XLOOKUPの真価を発揮するテクニック
一致モード(第5引数)を使いこなす
第5引数の「一致モード」を変えると、XLOOKUPの動作を細かく調整できます。
| 値 | 動作 |
|---|---|
0 | 完全一致(既定値) |
-1 | 完全一致、なければ次に小さい値 |
1 | 完全一致、なければ次に大きい値 |
2 | ワイルドカード一致 |
例題6:成績から評価を判定する
以下の評価基準テーブルがあるとします。
| A | B | |
|---|---|---|
| 1 | 点数(以上) | 評価 |
| 2 | 0 | F |
| 3 | 60 | D |
| 4 | 70 | C |
| 5 | 80 | B |
| 6 | 90 | A |
「75点」の評価を知りたいとき、近似一致で検索します。
=XLOOKUP(75, A2:A6, B2:B6, "該当なし", -1)
→ 結果: 「C」(75点は70点以上80点未満なのでC評価)
第5引数に -1 を指定することで、「完全一致がなければ、次に小さい値(70)」を見つけて、その評価「C」を返してくれます。
検索モード(第6引数)で下から検索
第6引数の「検索モード」を使うと、検索する方向を変えられます。
| 値 | 動作 |
|---|---|
1 | 先頭から末尾へ検索(既定値) |
-1 | 末尾から先頭へ検索(下から検索) |
2 | バイナリ検索(昇順データ用) |
-2 | バイナリ検索(降順データ用) |
例題7:最新の取引履歴を取得する
以下のような取引履歴があるとします(同じ顧客が複数回登場)。
| A | B | C | |
|---|---|---|---|
| 1 | 日付 | 顧客名 | 金額 |
| 2 | 2025/1/15 | 田中 | 5000 |
| 3 | 2025/2/20 | 佐藤 | 3000 |
| 4 | 2025/3/5 | 田中 | 8000 |
| 5 | 2025/4/10 | 田中 | 12000 |
| 6 | 2025/5/1 | 佐藤 | 6000 |
「田中さんの最新の取引金額」を知りたい場合:
=XLOOKUP("田中", B2:B6, C2:C6, "該当なし", 0, -1)
→ 結果: 「12000」(一番下の田中さんの取引)
通常の検索だと一番上の「5000」が返されてしまいますが、第6引数に -1 を指定することで、下から検索して最新のデータを取得できます。これは月次レポートや在庫管理で非常に役立つテクニックです!
ワイルドカード検索(あいまい検索)
第5引数を 2 にすると、*(任意の文字列)や ?(任意の1文字)といったワイルドカードを使った検索ができます。
例題8:「東京」を含む顧客を検索
| A | B | |
|---|---|---|
| 1 | 顧客名 | 担当者 |
| 2 | 東京商事 | 山田 |
| 3 | 大阪産業 | 鈴木 |
| 4 | 東京物産 | 高橋 |
「東京」を含む最初の顧客の担当者を取得するには:
=XLOOKUP("*東京*", A2:A4, B2:B4, "該当なし", 2)
→ 結果: 「山田」
部分一致での検索ができるので、表記ゆれがあるデータでも柔軟に対応できます。
複数条件で検索する裏技
XLOOKUPは本来、1つの条件でしか検索できませんが、ちょっとした工夫で複数条件にも対応できます。
例題9:商品名と店舗名の両方が一致するデータを検索
| A | B | C | |
|---|---|---|---|
| 1 | 商品名 | 店舗 | 在庫数 |
| 2 | りんご | 東京店 | 50 |
| 3 | りんご | 大阪店 | 30 |
| 4 | みかん | 東京店 | 20 |
| 5 | みかん | 大阪店 | 40 |
「りんご」かつ「大阪店」の在庫数を取得:
=XLOOKUP(1, (A2:A5="りんご")*(B2:B5="大阪店"), C2:C5)
→ 結果: 「30」
検索範囲の部分で、複数の条件を「*(掛け算)」でつなぐことで、両方の条件が一致する行(=1になる行)を見つけ出せます。
6. VLOOKUPとの違いを徹底比較
長年使われてきたVLOOKUPと、新しいXLOOKUPの違いを表で見比べてみましょう。
| 項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 検索方向 | 左→右のみ | 左右どちらでもOK |
| デフォルトの一致モード | 近似一致 | 完全一致 |
| エラー処理 | IFERRORが必要 | 第4引数で完結 |
| 列の指定方法 | 列番号で指定 | 範囲で指定 |
| 列の追加・削除 | 式が壊れることが多い | 壊れにくい |
| 横方向の検索 | 不可(HLOOKUPが必要) | 可能 |
| 下から検索 | 不可 | 可能 |
| 複数列の同時取得 | 不可(複数式が必要) | 可能(スピル) |
| 学習コスト | やや高め(慣れが必要) | 直感的で覚えやすい |
同じ処理をVLOOKUPとXLOOKUPで書き比べてみる
「商品コードA002の商品名を取得する」という同じ処理を、両方の関数で書いてみましょう。
VLOOKUPの場合:
=VLOOKUP("A002", A2:C6, 2, FALSE)
XLOOKUPの場合:
=XLOOKUP("A002", A2:A6, B2:B6)
XLOOKUPの方が、何をしているかが直感的に分かりますよね。「2」や「FALSE」のような、覚えなければならない要素が減っているのが特徴です。
7. 実践練習問題(解答付き)
ここまで学んだ内容を、実際に手を動かして練習してみましょう!
練習用データ
以下の社員リストを使って問題を解いてみてください。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 社員番号 | 氏名 | 部署 | 役職 | 入社年 |
| 2 | E001 | 山田太郎 | 営業部 | 課長 | 2010 |
| 3 | E002 | 佐藤花子 | 経理部 | 主任 | 2015 |
| 4 | E003 | 鈴木一郎 | 営業部 | 部長 | 2005 |
| 5 | E004 | 田中美咲 | 人事部 | 一般 | 2020 |
| 6 | E005 | 高橋健太 | 開発部 | 主任 | 2018 |
【初級】問題1
社員番号「E003」の氏名を取得する数式を書いてください。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP("E003", A2:A6, B2:B6)
結果: 鈴木一郎 </details>
【初級】問題2
「田中美咲」さんの部署を取得する数式を書いてください(左側検索の練習です)。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP("田中美咲", B2:B6, C2:C6)
結果: 人事部 </details>
【中級】問題3
社員番号「E999」(存在しない番号)を検索したとき、「該当者なし」と表示される数式を書いてください。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP("E999", A2:A6, B2:B6, "該当者なし")
結果: 該当者なし </details>
【中級】問題4
社員番号「E002」の氏名・部署・役職を一度に取得する数式を書いてください。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP("E002", A2:A6, B2:D6)
結果: 佐藤花子、経理部、主任(3つのセルにスピル) </details>
【上級】問題5
「営業部」に所属する社員のうち、最後に登場する社員(一番下)の氏名 を取得する数式を書いてください。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP("営業部", C2:C6, B2:B6, "該当なし", 0, -1)
結果: 鈴木一郎
第6引数に -1 を指定して、下から検索しているのがポイントです。 </details>
【上級】問題6
「営業部」かつ「課長」の社員の氏名を取得する数式を書いてください(複数条件検索)。 <details> <summary>▼ 解答を見る</summary>
=XLOOKUP(1, (C2:C6="営業部")*(D2:D6="課長"), B2:B6)
結果: 山田太郎 </details>
すべて解けた方は、もうXLOOKUPマスターと言ってもいいでしょう!👏
8. よくあるエラーと対処法
XLOOKUPを使っていてつまずきやすいエラーと、その対処法をまとめました。
エラー1:#N/A(該当する値が見つかりません)
原因:
- 検索値が検索範囲に存在しない
- 余計なスペースが含まれている
- 大文字・小文字、半角・全角の違い
対処法:
- 第4引数を指定して、エラーの代わりに任意の文字列を表示する
TRIM関数で余計なスペースを除去してから検索する
=XLOOKUP(TRIM(E2), A2:A6, B2:B6, "見つかりません")
エラー2:#VALUE!
原因:
- 検索範囲と戻り範囲のサイズが一致していない
- 例:検索範囲が
A2:A6(5行)なのに、戻り範囲がB2:B10(9行)
対処法:
- 検索範囲と戻り範囲の行数(または列数)を一致させる
エラー3:#SPILL!
原因:
- スピルする先のセルに、すでに別のデータが入っている
対処法:
- 数式を入れたセルの右側または下側(スピル先)を空にする
エラー4:関数自体が認識されない(#NAME?)
原因:
- 使用しているExcelのバージョンがXLOOKUPに対応していない
対処法:
- Excel 2021以降、またはMicrosoft 365にアップグレードする
- 古いバージョンでは、VLOOKUP+IFERRORやINDEX+MATCHで代用する
9. まとめ
ここまでお疲れさまでした!XLOOKUPの全体像をおさらいしておきましょう。
この記事で学んだこと
- XLOOKUPは、VLOOKUPの欠点をすべて解消した次世代の検索関数
- 基本構文:
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
- 左右どちらの方向にも検索できる
- 第4引数で簡単にエラー処理ができる
- 横方向の検索も、下からの検索も自由自在
- 複数列の同時取得もスピルで一発
- 複数条件検索にも、ちょっとした工夫で対応可能
XLOOKUPを使うべき人
- VLOOKUPの「列番号指定」が苦手な方
- 表の構造が頻繁に変わる業務をしている方
- データ分析やレポート作成を効率化したい方
- とにかくシンプルで分かりやすい関数を使いたい方
最後に
XLOOKUPは、一度使い始めると「もうVLOOKUPには戻れない!」と感じるほど便利な関数です。最初は基本の3つの引数だけでも構いません。少しずつ使いこなして、ぜひあなたの業務を効率化していってくださいね。

この記事が、皆さまのExcelスキルアップのお役に立てれば幸いです!
それでは、また次の記事でお会いしましょう。


コメント