本ページはプロモーションが含まれています。
目次
XLOOKUPとは?初心者でもわかる基本概要
Excel 2019から登場した「次世代検索関数」
XLOOKUP(エックスルックアップ)は、Excel 2019以降で利用可能になった新しい検索関数です。これまで主流だったVLOOKUP(縦方向検索)やHLOOKUP(横方向検索)の弱点を補い、より直感的で柔軟な検索ができるようになったのが最大の特徴です。
従来の関数では「検索方向の制限」「列番号指定の手間」「逆方向に検索できない」などの問題がありましたが、XLOOKUPはそれらをすべて解決しています。
なぜVLOOKUPではなくXLOOKUPが必要なのか
VLOOKUPは長年Excelユーザーに愛用されてきた関数ですが、次のような課題がありました。
- 列番号が変わると関数が壊れる
→ 列を追加・削除するたびに数式の修正が必要でした。 - 検索は左から右しかできない
→ 検索列より左側の値を取得できませんでした。 - 配列や複数条件に弱い
→ 柔軟な検索や戻り値の複数指定に対応できませんでした。
これに対し、XLOOKUPは「左右どちらでも検索可能」「列番号不要」「複数列の同時取得」など、実務でよく使うニーズを1つの関数でまかなうことができます。
XLOOKUPの代表的な活用シーン
XLOOKUPはビジネス現場のさまざまな場面で活躍します。以下は代表的な使用例です。
- 顧客データの照会
→ 顧客IDから氏名・メールアドレス・購入履歴を検索 - 在庫管理
→ 商品コードから在庫数・ロケーションを即時表示 - 受発注リストの自動補完
→ 商品名を入力すると自動で単価と仕入先を返す - 勤怠・人事情報の参照
→ 社員番号から部署・職位・入社年月をまとめて取得
XLOOKUPは、複数の検索関数を使い分ける手間を省き、効率的かつ正確にデータを取得できる強力なツールです。
初心者でも扱いやすいシンプルな設計
XLOOKUPは構文が明快で、基本的な使い方さえ覚えればすぐに実務で活用できます。最小限の構成であれば3つの引数を指定するだけで使えます。
=XLOOKUP(検索値, 検索範囲, 戻り範囲)
たとえば、「商品名」から「価格」を取得したい場合、検索値に商品名セル、検索範囲に商品リスト、戻り範囲に価格リストを指定するだけで済みます。

このように、初心者でもすぐに成果を実感できる操作性の高さも、XLOOKUPが支持される理由のひとつです。
XLOOKUP関数の基本構文と引数の意味
Excelの「XLOOKUP関数」は、指定した検索値に対応する結果を返す柔軟な検索関数です。VLOOKUPやHLOOKUPの欠点を補い、左右・上下の検索、エラー処理、部分一致などを1つの関数でカバーできます。ここではXLOOKUP関数の構文と、各引数が持つ意味をわかりやすく解説します。
基本構文
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない時の値], [一致モード], [検索モード])
XLOOKUP関数は最大6つの引数を取り、必要最小限は3つです。
各引数の役割と意味
引数名 | 必須 | 内容 |
---|---|---|
検索値 | ○ | 探したい値。例:セルA2の顧客ID、商品名など。 |
検索範囲 | ○ | 検索対象の範囲(列または行)。検索値がここから探されます。 |
戻り範囲 | ○ | 検索に一致した場合に返す値の範囲。検索範囲と並び(縦or横)・サイズを合わせる必要があります。 |
見つからない時の値 | △ | 検索値が見つからない場合に表示する値(例:「該当なし」や空白 “”)。省略すると#N/A エラーになります。 |
一致モード | △ | 検索方法の指定。 ・0(完全一致) ・-1(以下の最大値) ・1(以上の最小値) ・2(ワイルドカード一致)。 |
検索モード | △ | 検索の方向を指定。 ・1(先頭から) ・-1(末尾から) ・2(バイナリ検索・昇順) ・-2(バイナリ検索・降順)。 |
最小構成のシンプルな使用例
=XLOOKUP("ぶどう", B2:B10, C2:C10)
この例では、B列(商品名)から「ぶどう」を探し、C列(価格)から対応する価格を返します。検索値が見つからない場合は #N/A
エラーになります。
見つからないときの値を指定する例
=XLOOKUP("ぶどう", B2:B10, C2:C10, "該当なし")
検索値が見つからない場合に「該当なし」と表示させることができます。
部分一致(ワイルドカード)を使う例
=XLOOKUP("*ジュース*", B2:B10, C2:C10, "なし", 2)
商品名に「ジュース」を含むものを検索し、価格を返します。ワイルドカード*
で部分一致検索が可能です。
末尾から検索する例(検索モードの応用)
=XLOOKUP("ぶどう", B2:B10, C2:C10, "なし", 0, -1)
同じ値が複数存在する場合、最後に見つかった値を返します。

XLOOKUP関数は「使い方が簡単」「検索方向が自由」「エラー処理や柔軟な条件設定ができる」といった特長を備えており、検索関数に悩む方には必ず習得しておきたい強力なツールです。引数を正しく理解することで、より高度な使い方が可能になります。
VLOOKUPとの違いを比較
XLOOKUPは、従来のVLOOKUP関数の制約を解消するために設計された次世代の検索関数です。以下に代表的な違いを図とともに解説します。
1. 検索方向の柔軟性
関数名 | 検索方向 |
---|---|
VLOOKUP | 縦方向のみ |
XLOOKUP | 縦・横の両対応 |
図:検索方向の違い
VLOOKUP:上から下へしか検索できない
┌────────────┐
│検索値 ↓ │
│B列の値 → C列│
└────────────┘
XLOOKUP:左右・上下どちらも検索可能
┌────────────┐
│検索値 → │
│B列の値 ← C列│ ← 逆方向検索も可能
└────────────┘
2. 戻り値の指定方法と列挿入耐性
項目 | VLOOKUP | XLOOKUP |
---|---|---|
戻り値の指定方法 | 列番号(数値) | 範囲(セル範囲)で直接指定 |
列挿入に対する影響 | 弱い(列がズレるとエラー) | 強い(範囲が明示されていれば影響なし) |
図:列挿入による影響の違い
VLOOKUP: =VLOOKUP("りんご", A2:C5, 3, FALSE) → C列に列を追加すると「3列目」がズレて誤動作
XLOOKUP: =XLOOKUP("りんご", A2:A5, C2:C5) → 戻り範囲をC列と指定しているので列挿入しても影響なし
3. 左方向(逆方向)の検索可否
関数名 | 左方向検索 |
---|---|
VLOOKUP | 不可 |
XLOOKUP | 可能 |
図:逆方向検索の違い
VLOOKUP(×): 検索対象より左にある値を取得できない
XLOOKUP(○): 右から左への検索が可能 例:=XLOOKUP("ぶどう", C2:C5, A2:A5)
4. 一致モード・エラー処理・検索モードの柔軟性
機能 | VLOOKUP | XLOOKUP |
---|---|---|
完全一致/近似一致切替 | ○ | ○ |
ワイルドカード(部分一致) | △ | ○ |
エラー時の返却値指定 | △(IFERRORと併用) | ○(引数で指定可) |
順方向/逆方向の検索切替 | × | ○ |
5. 比較表まとめ
比較項目 | VLOOKUP | XLOOKUP |
---|---|---|
検索方向 | 縦のみ | 縦・横どちらも可 |
列番号指定の必要性 | 必要 | 不要(範囲で直接指定) |
左方向の検索 | 不可 | 可能 |
検索方式の指定 | 近似/完全一致 | 完全一致・近似一致・ワイルドカードなど柔軟 |
挿入列による影響 | あり | なし |
エラー処理の柔軟性 | 弱い(IFERRORが必要) | 強い(XLOOKUPの引数で設定可能) |
可読性・メンテ性 | 低め | 高い |
XLOOKUPはVLOOKUPの上位互換とも言える性能を持ち、業務においてより堅牢でメンテナンスしやすい関数として活用できます。特に、列挿入・方向切り替え・エラー処理など、現場でよくある問題に対して非常に有効です。VLOOKUPの基本を知っている方ほど、XLOOKUPの柔軟さに驚かれるはずです。
XLOOKUPの実践例|業務で即使えるサンプル
商品名から価格を検索する
用途例:販売管理、見積作成
想定シナリオ
商品一覧の中から、入力された商品名に対応する価格を自動取得したい場合。
数式例
=XLOOKUP(C2, A2:A10, B2:B10)
解説
C2
に入力された商品名をA2:A10
の中から探し、同じ行のB2:B10
にある価格を返します。- VLOOKUPでは列の順序が制限されますが、XLOOKUPは任意の列から戻せるのが特徴です。
郵便番号から住所を取得する
用途例:顧客管理、配送処理
想定シナリオ
顧客が入力した郵便番号から自動で住所を補完したいときに活用できます。
数式例
=XLOOKUP(D2, F2:F100, G2:G100)
解説
D2
に郵便番号を入力すると、F2:F100
で検索し、対応するG2:G100
の住所を返します。- 住所録と連携して入力作業を大幅に効率化できます。
社員IDから部署と役職を同時に取得する
用途例:人事データの自動表示、入退社手続きの効率化
想定シナリオ
社員IDを1つ入力するだけで、部署と役職を同時に出力するケースです。
数式例(スピル配列対応)
=XLOOKUP(A2, B2:B100, C2:D100)
解説
A2
の社員IDをB2:B100
で探し、部署(C列)と役職(D列)の2列をまとめて返します。- Excelのスピル機能を使うことで、複数列の戻り値に対応できます。
IF関数やFILTER関数と組み合わせた複数条件の検索
用途例:条件付き商品検索、特定条件を満たす値の抽出
想定シナリオ
「商品名が〇〇で、在庫数が5以上のときだけ価格を取得」など、複数条件を処理したい場合。
数式例(IFとの組み合わせ)
=IF(XLOOKUP(C2, A2:A10, D2:D10) >= 5, XLOOKUP(C2, A2:A10, B2:B10), "")
解説
- 商品名(C2)を基に在庫数(D列)を確認し、5以上なら価格(B列)を返します。
- 条件に合わない場合は空白を返すよう設定されています。
数式例(FILTER関数と併用)
=FILTER(B2:B10, (A2:A10=F2)*(D2:D10>=5))
補足
- FILTER関数はXLOOKUPと異なり、複数行一致でもすべて返します。
- 複雑な条件検索にはFILTERとの使い分けが有効です。
ワイルドカードを使った部分一致検索
用途例:曖昧なキーワードによる検索、名前の一部入力での補完
数式例
=XLOOKUP("*ジュース*", A2:A10, B2:B10, "該当なし", 2)
解説
- 商品名に「ジュース」が含まれる項目を検索します。
*
は任意の文字列、2
は部分一致の指定です。- あいまい検索にも対応できるため、入力ミスや表記ゆれに強くなります。
実務で使えるポイント
- 列の追加・並び替えにも柔軟に対応でき、関数が壊れにくい
IFERROR
との併用でユーザーへのエラー表示を回避できる- 検索値が存在しない場合の処理もスマートに対応可能
XLOOKUPは「検索+条件分岐+配列対応」を一括で担える万能関数です。各業務に合わせた実践例を押さえることで、日常業務の効率を飛躍的に高めることができます。業務の種類ごとにテンプレート化しておくと、より実用性が高まります。
XLOOKUPでよくあるエラーとその対処法
XLOOKUP関数を使っていて「うまく値が返らない」「エラーが出て困る」と感じた場合、多くは構文ミスやデータ形式の不一致、バージョンの問題が原因です。ここではよくあるエラー4パターンと具体的な対処方法を紹介します。
#VALUE!
エラー|検索値や範囲の型に注意
原因
検索値・検索範囲・戻り範囲のいずれかに**不正なデータ型(文字列と数値の混在など)**が含まれていると発生します。
対処法
- 検索値と検索範囲のデータ型をそろえる(例:数値→文字列変換など)
ISTEXT()
やISNUMBER()
関数でデータ型を確認- 必要に応じて
TEXT()
関数やVALUE()
関数で統一
例
=XLOOKUP("1001", A2:A10, B2:B10)
A列が数値の場合、「”1001″」(文字列)では一致せず#VALUE!
が出ます。数値として指定するか、検索範囲も文字列に変換してください。
見つからないときのエラー|#N/A
の代替表示を設定
原因
検索対象に一致する値が見つからなかった場合、XLOOKUPは#N/A
を返します。
対処法
第4引数に見つからなかったときの値を指定しておくと、エラーではなく任意の文字列や空白を返せます。
例
=XLOOKUP(D2, A2:A10, B2:B10, "該当なし")
また、IFERROR
関数を併用する方法も有効です。
=IFERROR(XLOOKUP(D2, A2:A10, B2:B10), "該当なし")
関数が動作しない|構文ミスや範囲ミス
原因
- 引数の順序ミス
- 検索範囲と戻り範囲の行数・列数が一致していない
- 無効な引数(TRUEやFALSEを入れる位置が違う など)
対処法
- 必須3引数(検索値・検索範囲・戻り範囲)の順番と範囲サイズを再確認
- 一致モードや検索モードの引数は数値で指定(例:完全一致は
0
)
例
=XLOOKUP("A001", B2:B10, C2:C9) ← NG(戻り範囲の行数が不足)
正しくは:
=XLOOKUP("A001", B2:B10, C2:C10)
XLOOKUPが使えない|バージョン未対応
原因
Excelのバージョンが古く、XLOOKUP関数に対応していない
対処法
- Excel 2019以降、またはMicrosoft 365を利用する
- バージョンアップできない場合は
INDEX
+MATCH
関数に切り替える
代替例(INDEX+MATCH)
=INDEX(C2:C10, MATCH("A001", B2:B10, 0))
補足:デバッグのコツ
- 範囲を選択して
F9キー
で内容を確認 - 検索値の前後に余計なスペースがあると一致しません。
TRIM()
で除去 - テーブル参照時は見出しと一致しているかを必ず確認

XLOOKUPは柔軟な検索が可能な一方で、構文ミスやデータ不整合によるエラーも多発しやすい関数です。エラーの原因を正確に特定し、落ち着いて修正すれば、安定した運用が可能になります。関数の構造とデータの性質をよく理解することが、トラブル解消の近道です。
知っておきたい応用テクニックと記号の使い方
XLOOKUPは基本形だけでも便利ですが、ワイルドカード・演算子・配列計算・一致/検索モードを組み合わせると「部分一致」「しきい値検索」「最後の一致」「複数列スピル」「複数条件キー」など高度な検索が実現できます。業務データの揺れや更新頻度が高い環境ほど威力を発揮します。以下で頻出パターンと記号の具体的な使い方を整理します。
ワイルドカードで部分一致・前方一致・後方一致を検索する
XLOOKUPの [一致モード]
に 2
(ワイルドカード一致)を指定すると、検索値にワイルドカード記号を含めて柔軟にマッチできます。
目的 | 入力例 | 数式例 | 補足 |
---|---|---|---|
語を含む(部分一致) | 「ジュース」 | =XLOOKUP("*ジュース*",B:B,C:C,"該当なし",2) | 任意文字列を表す * を前後に付与します。 |
前方一致(~で始まる) | 「A-」から始まる品番 | =XLOOKUP("A-*",B:B,C:C,"該当なし",2) | 末尾に * 。 |
後方一致(~で終わる) | 末尾が「-JP」 | =XLOOKUP("*-JP",B:B,C:C,"該当なし",2) | 先頭に * 。 |
任意1文字違い許容 | 型番「X?00」 | =XLOOKUP("X?00",B:B,C:C,"該当なし",2) | ? は任意1文字。 |
ポイント
- 検索値は文字列として扱われるため、セル参照を使う場合は連結でパターンを作ります(例
="*"&E2&"*"
)。 - 大文字小文字は区別されません(Excel既定動作)。
不等号でしきい値検索(>=, <=, >, <)
数値条件に応じた該当行を返したいときは、「TRUE/FALSE配列を検索値にする」手法がシンプルです。XLOOKUPは配列式を評価できるため、条件式がTRUEになる最初(または最後)の行を拾わせます。
例:売上額が指定セル H2
以上の最初の顧客名を返す
=XLOOKUP(TRUE, 売上範囲>=H2, 顧客名範囲, "該当なし")
例:在庫数がしきい値未満(要補充)の最初の品目
=XLOOKUP(TRUE, 在庫範囲<補充基準セル, 品目範囲, "OK")
近い値を探す場合は [一致モード]
に数値近似コードを使う方法もあります。
-1
= 検索値未満で最大の値(降順表で使いやすい)1
= 検索値超で最小の値(昇順表で使いやすい)
最初/最後/高速(バイナリ)検索を制御する検索モード活用
データが重複する場合「最後に入力された値」を取りたいなどの要件があります。XLOOKUPの [検索モード]
で制御できます。
検索モード | 意味 | 使用例 |
---|---|---|
1 | 先頭から検索(既定) | 最初に一致した顧客を取得。 |
-1 | 末尾から逆順検索 | 最新日付が下に追加される台帳で「最新ステータス」を取得。 |
2 | 昇順バイナリ検索 | 巨大データで高速検索(検索範囲が昇順に整列必須)。 |
-2 | 降順バイナリ検索 | 降順に整列された履歴テーブルで高速検索。 |
最新レコード取得例(履歴テーブル A列=ID, B列=状態, 新しいほど下に追加)
=XLOOKUP(IDセル, A:A, B:B, "なし", 0, -1)
-1
により末尾側から一致を探し、最後に登録された状態を返します。
複数列を一度に戻す(スピル出力)で情報をまとめて取得
戻り範囲に複数列(または複数行)を指定すると、XLOOKUPはスピルして隣接セルに展開します。顧客名から「住所・電話・担当者」をまとめて返すなどの用途で効率化できます。
例:IDをキーに A列=ID, B\:D列=住所~担当 をまとめて返す
=XLOOKUP(IDセル, A:A, B:D, "該当なし")
返り値セル1つに入力すると右方向に自動展開します。表構造が変わる可能性がある場合は CHOOSECOLS
で列を動的に抜き出すと安全です。
動的列選択例(住所=2列目, 電話=4列目, 担当=5列目を抽出)
=XLOOKUP(IDセル, A:A, CHOOSECOLS(A:E,2,4,5), "該当なし")
複数条件をキー化して検索(連結・TEXTJOIN・LET活用)
XLOOKUPは単一検索値が基本ですが、複数条件を「複合キー」にまとめればマルチ条件検索が可能です。データが「商品 × 店舗」「社員ID × 年月」などで管理されている場合に便利です。
1) ヘルパー列で複合キー
データ側に =商品&"|"&店舗
の列を追加(例 E列)。検索側も同じルールでキーを作成して検索します。
=XLOOKUP( 商品セル&"|"&店舗セル, E:E, 戻り範囲, "該当なし")
2) 式内で動的複合キー(ヘルパー列不要)
=XLOOKUP( 商品セル&"|"&店舗セル, 商品範囲&"|"&店舗範囲, 戻り範囲, "該当なし")
範囲連結は配列演算になるため、旧バージョンではCtrl+Shift+Enterが必要でしたが、動的配列対応版Excelでは通常入力で動作します。
3) TEXTJOIN + LETで可読性向上(条件数が多い場合)
=LET( k, TEXTJOIN("|",, 商品セル, 店舗セル, 年月セル), kArr, TEXTJOIN("|",, 商品範囲, 店舗範囲, 年月範囲), XLOOKUP(k, kArr, 戻り範囲, "該当なし")
)
ワイルドカードと複合キーを組み合わせて「条件のゆらぎ」を吸収
商品名部分一致 × 店舗完全一致など、条件粒度が異なるケースではワイルドカードと連結を混在させます。
例:商品名セル J2
の部分一致(前後 *
付与)+ 店舗セル K2
完全一致
=XLOOKUP("*"&J2&"*" & "|" & K2, 商品範囲&"*"&K2? ) ←整形が複雑になるため推奨はヘルパー列側で正規化
実務では「検索側のキーをパターン化」「データ側は正規化(大文字小文字統一・トリム)」を行い、ワイルドカードを一方的に付ける方がトラブルが少ないです。
計算結果を検索値にする(動的レンジ判定)
「指定日がどの料金帯に属するか」「点数がどの評価区分か」など階層マスタに属する値を返すとき、境界比較を組み合わせます。
区分表:開始点(下限)昇順整列。評価区分を返す。
=XLOOKUP(点数セル, 下限範囲, 区分範囲, "範囲外", -1)
-1
は「検索値未満で最大」を返すため、点数が属する最終下限行を拾えます。税率・送料・成績判定など段階表に最適です。
XLOOKUPで配列を返し、さらに他関数で加工する
戻り範囲がスピルする性質を利用し、取得結果をそのまま他関数に渡すと後続処理が簡潔になります。
- 合致行の複数列を取得 →
SUM
/AVERAGE
/TEXTJOIN
で集計・連結 - 戻り範囲を
FILTER
に接続してさらに絞り込み - 取得結果を
SORT
/UNIQUE
で整形
例:社員IDで該当行を取得し、役職名と部署名を1セルに連結表示
=TEXTJOIN(" / ",, XLOOKUP(IDセル, ID範囲, 部署役職2列範囲, "該当なし"))
記号・演算子・パラメータ早見表
種類 | 記号・値 | 意味・用途 | 注意点 |
---|---|---|---|
ワイルドカード | * | 任意長の文字列に一致 | 一致モード=2が必要。 |
ワイルドカード | ? | 任意1文字に一致 | 一致モード=2。 |
比較演算子 | > , < , >= , <= | 数値・日付の範囲判定 | 配列条件式 or 近似一致コードと組み合わせ。 |
文字連結 | & | 複数条件キー作成 | 区切り文字を挟んで曖昧一致回避。 |
配列定数 | {} | 固定小配列を組む | 動的配列Excel推奨。 |
スピル参照 | # | スピル範囲全体を参照 | 例 A1# 。連動計算に便利。 |
一致モード | 0 | 完全一致(既定) | データ揺れに弱い。 |
一致モード | -1 | 未満で最大 | 段階料金・判定表。範囲昇順推奨。 |
一致モード | 1 | 超で最小 | 逆方向帯域検索。範囲昇順推奨。 |
一致モード | 2 | ワイルドカード一致 | * /? 使用時必須。 |
検索モード | 1 | 先頭から検索 | 既定。 |
検索モード | -1 | 末尾から検索 | 最新レコード取得。 |
検索モード | 2 | – 昇順バイナリ | ソート済大規模表で高速。 |
検索モード | -2 | – 降順バイナリ | 降順表で高速。 |
実務運用で失敗を減らすチェックポイント(応用機能版)
- ワイルドカード検索はデータ件数が多いと最初の一致だけ返るため、複数該当の抽出は
FILTER
との併用を検討してください。 - 複合キー検索では区切り文字を統一し、データ側・入力側でトリム(前後スペース除去)・大文字小文字正規化を行うと一致漏れを防げます。
- 近似一致(-1 / 1)は検索範囲のソート前提です。ソートされていない場合は期待どおりになりません。
- 末尾検索(-1)は履歴行の重複に強力ですが、表がフィルタで並び替えられていると結果が変わるので構造化テーブル+既定並びで管理すると安心です。
- スピル出力は隣接セル上書きに注意してください。結果セルの右側(または下側)に空き領域を確保しておきます。
ショートサンプル集(コピーして試せます)
部分一致(セル参照版)
=XLOOKUP("*"&E2&"*", 商品範囲, 価格範囲, "該当なし", 2)
しきい値以上の最初の値
=XLOOKUP(TRUE, 数値範囲>=基準セル, 戻り範囲, "該当なし")
最新レコードを返す
=XLOOKUP(IDセル, ID範囲, 状態範囲, "なし", 0, -1)
複合キー(商品×月)
=XLOOKUP( 商品セル&月セル, 商品範囲&月範囲, 売上範囲, 0)
段階税率(下限昇順表)
=XLOOKUP(課税額セル, 下限範囲, 税率範囲, "範囲外", -1)
複数列スピル → 部署と役職を並べて取得
=XLOOKUP(IDセル, ID範囲, 部署役職範囲, "該当なし")
応用テクニック導入の優先度目安
目的 | 推奨テクニック | 難易度 | 効果 |
---|---|---|---|
商品名あいまい検索 | ワイルドカード一致 | 低 | 入力ゆらぎ吸収 |
最新更新値取得 | 検索モード=-1 | 低 | 履歴管理の手戻り削減 |
帯域判定(料金・評価) | 一致モード=-1 / 1 | 中 | 手計算排除 |
複数条件検索 | 複合キー連結 or LET | 中 | ピボット不要で抽出 |
まとめ返し | 複数列スピル | 低 | 参照列追加の手間削減 |

必要に応じてデータの正規化(トリム・全角半角統一・文字種変換)を行い、検索範囲と検索値の形式を合わせておくとエラー発生率が大きく下がります。ワイルドカードや複合キーを多用する場合は、入力規則(データバリデーション)やプルダウンを併用して入力ミスを抑えると安定して運用できます。
別シート・別ファイルからのデータ参照方法
XLOOKUP関数は、複数のシートやブックにまたがってデータを検索・取得できる柔軟性を持っています。ここでは、シートをまたぐ参照方法と、別ファイルを参照する場合の注意点、そして実務で活用できるデータ統合のコツを解説します。
別シートからデータを参照する方法
基本の書き方:
=XLOOKUP(検索値, シート名!検索範囲, シート名!戻り範囲)
使用例:
たとえば、Sheet2
に商品リストがあり、商品名から価格を取得したい場合は以下のように記述します。
=XLOOKUP(A2, Sheet2!A2:A100, Sheet2!B2:B100)
A2
:検索したい値(商品名)Sheet2!A2:A100
:検索範囲(商品名の一覧)Sheet2!B2:B100
:戻り範囲(価格の一覧)
ポイント:
- シート名にスペースが含まれている場合は
'
(シングルクォーテーション)で囲みます。
例:='商品一覧'!A2:A100
別ファイル(別ブック)からデータを参照する方法
別のExcelファイルを参照する場合、対象ファイルが開かれているか閉じているかで動作が変わります。
基本の構文:
=XLOOKUP(検索値, '[ブック名.xlsx]シート名'!検索範囲, '[ブック名.xlsx]シート名'!戻り範囲)
使用例:
=XLOOKUP(A2, '[商品マスタ.xlsx]商品リスト'!A2:A100, '[商品マスタ.xlsx]商品リスト'!B2:B100)
商品マスタ.xlsx
:参照元のファイル名商品リスト
:参照元シートA2:A100
:検索対象B2:B100
:戻り値の範囲
注意点:
- 別ブックが開かれていない場合、一部のバージョンではリンク切れやエラーが出ることがあります。
- ファイルパスを含めた絶対パスになる場合もあるため、ファイルの場所を変更すると無効になることがあります。
実務で役立つデータ統合術
① マスタファイルを一元化する
在庫管理や顧客情報など、複数のExcelファイルで管理されているデータを「マスタファイル」にまとめておき、XLOOKUPで参照する構成にすることで、更新や検索が容易になります。
② ファイル構造を崩さない
戻り範囲と検索範囲の行数を必ず一致させること、列や行を挿入・削除しても機能が壊れにくいXLOOKUPの特性を活かして、安定したデータ取得を実現できます。
③ エラー処理でリンク切れに備える
=IFERROR(XLOOKUP(A2, '[商品マスタ.xlsx]商品リスト'!A2:A100, '[商品マスタ.xlsx]商品リスト'!B2:B100), "データ未取得")
リンク切れや該当データなしの場合にメッセージを表示させることで、ミスや見落としを減らせます。

別シート・別ファイルからの参照は、XLOOKUPの柔軟性を最大限に活かせる活用法です。業務効率化のためにも、正確な参照形式とリンク管理を習得しておくことが重要です。
XLOOKUPが使えない環境での代替手段
XLOOKUP関数はExcel 2019以降のバージョンに限定されているため、Excel 2016以前を使用している環境では利用できません。そこで、XLOOKUPが使えない場合でも同様の検索処理を実現できる代替手段を紹介します。
VLOOKUP関数による代替
基本構文
=VLOOKUP(検索値, 範囲, 列番号, [検索の型])
特徴と制限
- 左端の列からしか検索できない
- 列を挿入すると参照がズレる
- 一致条件に柔軟性がない(完全一致/近似一致のみ)
使い方例
商品名から価格を取得する場合:
=VLOOKUP("ぶどう", A2:C10, 3, FALSE)
補足
柔軟性には欠けますが、XLOOKUPの「基本的な検索機能」に近い処理が可能です。
INDEX関数+MATCH関数の組み合わせ
基本構文
=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))
特徴とメリット
- 左右どちらの方向でも検索可能
- 列番号ではなくラベルベースで指定できる
- XLOOKUPの代替として最も柔軟な構成
使い方例
商品名から価格を取得する場合:
=INDEX(C2:C10, MATCH("ぶどう", A2:A10, 0))
応用
複数条件検索も可能(配列数式やFILTER関数と併用)
Googleスプレッドシートでの代替手段
LOOKUP関数
=LOOKUP(検索値, 検索範囲, 結果範囲)
- 検索範囲は昇順に並んでいる必要あり
- 完全一致が必要な場面では不向き
VLOOKUP / INDEX + MATCH
Excelと同様に利用可能。XLOOKUPも新しいGoogle Sheetsではサポートされています。
XLOOKUPに備えた移行戦略
- 現在はVLOOKUPやINDEX+MATCHで運用し、ファイル設計はXLOOKUPへの切り替えを意識しておくと将来の対応がスムーズです。
- テンプレートや社内マニュアルはXLOOKUP対応にしておき、バージョンアップ時に切替できるよう備えるのが理想です。
推奨方針まとめ
目的 | 推奨関数 | 備考 |
---|---|---|
左端列から右の列を取得 | VLOOKUP | 基本的な検索には十分 |
任意方向の検索 | INDEX + MATCH | 高い柔軟性と安定性 |
Googleスプレッドシート利用者 | INDEX + MATCH、またはXLOOKUP | Google SheetsもXLOOKUPに対応中 |
将来的なXLOOKUP導入を見据える | INDEX + MATCH | 書き換えが最小限で済む |

XLOOKUPが使えない環境でも、目的に応じた適切な代替手段を選べば、業務効率を損なうことなく対応可能です。状況に応じた関数の使い分けが重要です。