タスクラボ関数リファレンス > XLOOKUP

XLOOKUP関数の使い方

対応: Excel 2021以降・Microsoft 365・Google スプレッドシート

XLOOKUP は表から値を探して取り出す関数の現行版です。VLOOKUPの弱点(左側を検索できない・列番号がずれる)をすべて解消しています。

構文

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
引数必須意味
検索値必須探す値(例: 商品コード)
検索範囲必須検索値を探す1列(または1行)
戻り範囲必須取り出したい値がある列。検索範囲の左でもよい
見つからない場合任意見つからないときに返す値。省略すると #N/A
一致モード任意0=完全一致(既定)/-1=完全一致か次に小さい値/1=完全一致か次に大きい値/2=ワイルドカード
検索モード任意1=先頭から(既定)/-1=末尾から(最後の一致を取る)

基本の例

A列=商品コード、B列=商品名、C列=単価の表から、コード「A102」の単価を出す:

=XLOOKUP("A102", A2:A100, C2:C100)

見つからないときに「該当なし」と表示する(#N/A を出さない):

=XLOOKUP(E2, A2:A100, C2:C100, "該当なし")

VLOOKUPとの違い

できることVLOOKUPXLOOKUP
検索列よりの値を取り出す不可(INDEX+MATCHが必要)
列の挿入・削除に強いか列番号がずれて壊れる範囲指定なので壊れない
見つからない場合の指定IFERRORで包む必要第4引数で完結
既定の一致近似一致(事故のもと)完全一致
末尾から検索(最後の一致)不可可(検索モード -1)

よく使う応用

左側検索(B列の氏名から、A列の社員番号を出す):

=XLOOKUP(E2, B2:B100, A2:A100)

複数列をまとめて返す(戻り範囲を複数列にするとスピルする):

=XLOOKUP("A102", A2:A100, B2:D100)

最後に出てくる一致を取る(同じ顧客の最新行など):

=XLOOKUP(E2, A2:A100, C2:C100, "なし", 0, -1)
#NAME? が出る場合: Excel 2019以前はXLOOKUPに対応していません。VLOOKUPかINDEX+MATCHを使ってください。

関連