クイックナビゲーション
XLOOKUP関数
概要
XLOOKUP関数は、指定した範囲や配列から検索値に対応する項目を柔軟に検索・取得する強力なルックアップ関数です。VLOOKUPやHLOOKUPの制限を克服し、戻り列の位置に関係なく検索が可能で、完全一致・近似一致・ワイルドカード検索など多彩な検索モードをサポートします。
構文
XLOOKUP(検索値, 検索範囲, 戻り配列, [見つからない場合], [一致モード], [検索モード])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 検索値 | Any |
はい | 検索対象の値。省略すると検索範囲内の空白セルを対象とする。 |
| 検索範囲 | Range |
はい | 検索を行う配列または範囲。 |
| 戻り配列 | Range |
はい | 一致した行から返す配列または範囲。 |
| [見つからない場合] | Any |
いいえ | 一致が見つからない場合に返す値。省略すると#N/Aエラー。 |
| [一致モード] | Number |
いいえ | 0:完全一致(既定), -1:次の小さい値, 1:次の大きい値, 2:ワイルドカード。 |
| [検索モード] | Number |
いいえ | 1:先頭から(既定), -1:末尾から, 2:バイナリ昇順, -2:バイナリ降順。 |
XLOOKUP関数の使用
XLOOKUPは従来のVLOOKUP/HLOOKUPの制約を解消した次世代ルックアップ関数です。検索列と戻り列の位置関係に縛られず、柔軟な検索条件でデータを取得できます。特に表形式データの検索に最適で、動的なデータ処理や複雑な条件検索に威力を発揮します。
XLOOKUPの一般的な例
基本的な完全一致検索
=XLOOKUP(F2,B2:B11,D2:D11)
国名を検索して国際電話コードを返す。VLOOKUP(F2,B2:D11,3,FALSE)と同等。
複数列同時取得
=XLOOKUP(B2,B5:B14,C5:D14)
従業員IDから名前と部署を同時に取得。
見つからない場合の処理
=XLOOKUP(B2,B5:B14,C5:D14,"従業員が見つかりません")
従業員が見つからない場合にメッセージを表示。
近似一致(税率表)
=XLOOKUP(E2,C2:C7,B2:B7,,1)
収入に基づく税率を近似一致で取得。
2次元ネスト検索
=XLOOKUP(D2,$B6:$B17,XLOOKUP($C3,$C5:$G5,$C6:$G17))
行と列の両方で検索して表の値を抽出。
範囲合計
=SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))
2点間の値を合計計算。
よくある質問
一般的なエラーと解決策
#N/Aエラー
Cause: [見つからない場合]引数を指定せず一致が見つからない
Solution: [見つからない場合]に代替値や""を指定する
不正な結果
Cause: バイナリ検索(2,-2)で範囲がソートされていない
Solution: バイナリ検索前にデータを昇順/降順でソートする
#VALUE!エラー
Cause: 検索範囲と戻り配列の行数が異なる
Solution: 両方の範囲が同一行数になるよう調整する
注記
- Excel 365、Excel 2021以降でのみ利用可能
- VLOOKUP/HLOOKUPの完全互換代替
- ワイルドカード使用時は一致モードを2に設定
- バイナリ検索使用時は事前のデータソート必須
- 配列関数として複数列・複数行を同時に返す
互換性
利用可能: Excel 365, Excel 2021
利用不可: Excel 2016, Excel 2019, Excel 2013以前
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 365, Excel 2021+