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 | XLOOKUP |
|---|---|---|
| 検索列より左の値を取り出す | 不可(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)