XLOOKUP関数の使い方|基本・一致モード・下から検索・複数条件・VLOOKUPとの違い(練習ファイル付き)

XLOOKUP関数の使い方|基本・一致モード・下から検索・複数条件・VLOOKUPとの違い(練習ファイル付き)

XLOOKUP関数は、表から値を探して、対応する値を取り出す関数です。VLOOKUP と違い、探す列と返す列を別々に指定するので、左の列も返せ、列を挿入しても結果がずれません。見つからないときの表示、近い値の検索、下からの検索もこれ1つでできます。

G2に入力:コードから商品名を取り出す(基本)
数式=XLOOKUP(G1,A2:A9,B2:B9)
ひとことでG1 のコードを A 列から探して、同じ行の商品名を返す
G1
探す値です。ここではコード 103
A2:A9
探す列です。コードの列
B2:B9
返す列です。商品名の列
補足結果は「ぶどう」です。目的別の書き方は、すぐ下の早見表から選べます。
目次

XLOOKUP の式 早見表(目的別)

やりたいこと式の例くわしい記事
基本(コードから商品名)=XLOOKUP(G1,A2:A9,B2:B9)この記事の下
見つからないときの表示=XLOOKUP(G5,A2:A9,B2:B9,"未登録")見つからないときの直し方
左の列を返す(商品名からコード)=XLOOKUP("トマト",B2:B9,A2:A9)逆引き検索
複数の列をまとめて返す=XLOOKUP(106,A2:A9,B2:D9)複数列をまとめて取得
「〇〇で始まる」で探す=XLOOKUP("ぶ*",B2:B9,D2:D9,,2)部分一致・ワイルドカード
下から探す(最後の値)=XLOOKUP(G1,A2:A9,B2:B9,,0,-1)一致モード・検索モード
2つ以上の条件で探す=XLOOKUP(1,(C2:C9="野菜")*(D2:D9>=150),B2:B9)2つの条件で検索
別のシートから探す=XLOOKUP(G1,商品!A2:A9,商品!B2:B9)別シートから検索
当てはまる行を全部出すXLOOKUP ではできない → FILTER複数該当をすべて抽出

この記事では、XLOOKUP 関数の使い方を、基本の書き方から、左の列・複数の列を返す、一致モード(以下の最大・ワイルドカード)、下から検索、横方向、複数条件、VLOOKUP との違い、よくあるエラーの直し方まで、実際の Excel の画面で説明します。最後に、目的別の詳しい記事もまとめています。

練習用Excelファイル(無料ダウンロード)
「基本」「左の列と複数列」「一致モード」「下から検索」「横方向」「複数条件」「VLOOKUPとの違い」「よくある間違い」と、記事内のツールと同じ「ツール①〜③」の11シートです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

XLOOKUP関数の書き方(構文)

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
引数意味
検索値探したい値(コード・名前など)
検索範囲探す列(または行)
戻り範囲返したい値の列(または行)。検索範囲と同じ大きさにする
見つからない場合(省略可)見つからないときに表示する値。省略すると #N/A
一致モード(省略可)0=完全一致(省略時)/-1=完全一致か、次に小さい値/1=完全一致か、次に大きい値/2=ワイルドカード(* ?)を使う
検索モード(省略可)1=上(先頭)から(省略時)/-1=下(末尾)から/2・-2=並べ替え済みの範囲を高速に探す

XLOOKUP は Microsoft 365・Excel 2021 以降(Web 版の Excel を含む)で使えます。Excel 2019 以前では使えないので、古いバージョンの人とファイルを共有するときは VLOOKUP や INDEX+MATCH を使います。

基本の使い方:コードから商品名を取り出す

商品の表(A2:D9)から、コード 103 の商品名を取り出します。G2 に次の式を入れると「ぶどう」になります。探す列(コード)と返す列(商品名)を別々に指定するのがポイントです。

=XLOOKUP(G1,A2:A9,B2:B9)

式の入れ方(1手ずつ)

セル番地を手で打たなくても、クリックとドラッグで式ができます。

【手順1】 答えを出したいセル(G2)を選び、「=XLOOKUP(」と入れる
入れると、引数の順番(検索値, 検索範囲, 戻り範囲…)が出ます。
エクセルで答えを出すセルG2を選んでXLOOKUPと入れると引数の順番が表示された画面
エクセルで答えを出すセルG2を選んでXLOOKUPと入れると引数の順番が表示された画面
【手順2】 探す値のセル(G1)をクリックして「,」を入れる
クリックすると、式に G1 が入ります。
エクセルのXLOOKUPの式を入れる途中で探す値のG1をクリックした画面
エクセルのXLOOKUPの式を入れる途中で探す値のG1をクリックした画面
【手順3】 探す列(A2:A9)をドラッグして「,」を入れる
コードの列です。
エクセルのXLOOKUPの式を入れる途中で探す列A2からA9をドラッグした画面
エクセルのXLOOKUPの式を入れる途中で探す列A2からA9をドラッグした画面
【手順4】 返す列(B2:B9)をドラッグして Enter を押す
商品名の列です。
エクセルのXLOOKUPの式を入れる途中で返す列B2からB9をドラッグした画面
エクセルのXLOOKUPの式を入れる途中で返す列B2からB9をドラッグした画面
【完成】 コード 103 の商品名「ぶどう」が出た
エクセルのXLOOKUPでコード103の商品名ぶどうが表示された画面
エクセルのXLOOKUPでコード103の商品名ぶどうが表示された画面
練習用Excelファイル(無料ダウンロード)
手順の画像と同じ表の練習ファイルです。「基本」シートの G2 の式を消してから、上の手順どおりに入れてみてください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
エクセルのXLOOKUP関数でコードから商品名を取り出した例
エクセルのXLOOKUP関数でコードから商品名を取り出した例

返す列を D2:D9 にすると単価の 450 になります。表に無いコード(999)を探すときは、4つ目に表示を決めておくと、#N/A の代わりに「未登録」と表示されました(見つからない場合の表示)。

=XLOOKUP(G5,A2:A9,B2:B9,"未登録")

まず動かしてみよう|この記事のサンプルをその場で試せます

ブラウザの上で XLOOKUP 関数を試せます。3つのタブは、IDから価格(基本)、点数から評価(一致モード -1)、金額から送料(一致モード 1)です。練習用ファイルの「ツール①〜③」シートと同じ表です。

左の列・複数の列をまとめて返す

検索範囲より左の列も返せます。商品名「トマト」からコードを探すと 105 になりました(XLOOKUPで逆引き検索)。

=XLOOKUP(G1,B2:B9,A2:A9)

戻り範囲を複数の列(B2:D9)にすると、商品名・分類・単価が横に広がって返ります(スピル)。コード 106 は「メロン・果物・800」でした(XLOOKUPで複数列をまとめて取得)。

=XLOOKUP(G4,A2:A9,B2:D9)
エクセルのXLOOKUP関数で左の列と複数の列を返した例
エクセルのXLOOKUP関数で左の列と複数の列を返した例

一致モード:以下の最大・ワイルドカード

一致モードを -1 にすると、ぴったりの値が無いとき「次に小さい値」を使います。点数の区切り(0・60・70・80・90)から、78 点の評価は B になりました。表を並べ替えておく必要はありません(XLOOKUPで「以上・未満」を検索)。

=XLOOKUP(G1,A12:A16,B12:B16,,-1)

一致モードを 2 にすると、* (何文字でも)や ? (1文字)が使えます。”ぶ*” で「ぶ」で始まる最初の商品(ぶどう)の単価 450 が返りました。試したところ、一致モードを省略すると * はただの文字として扱われ、見つかりませんでした(XLOOKUPの部分一致)。

=XLOOKUP(G4,B2:B9,D2:D9,,2)
エクセルのXLOOKUP関数の一致モード-1と2の例
エクセルのXLOOKUP関数の一致モード-1と2の例

検索モード:下から探して最後の値を取り出す

検索モードを -1 にすると、下から探します。同じ担当が何回も出てくる売上の表で、上から探すと最初の日付(10/1)、下から探すと最後の日付(10/5)になりました(XLOOKUPで最後に一致する値を取得)。

=XLOOKUP(F1,B2:B7,A2:A7,,0,-1)
エクセルのXLOOKUP関数で検索モード-1で下から探した例
エクセルのXLOOKUP関数で検索モード-1で下から探した例

横方向に探す(HLOOKUP の代わり)

検索範囲と戻り範囲を行にすると、横方向に探せます。見出しの行(B1:E1)から「6月」を探し、本店の売上 1500 を取り出しました。戻り範囲を2行(B2:E3)にすると、2店分(1500・1010)が縦に返りました(XLOOKUPで横方向に検索)。

=XLOOKUP(B5,B1:E1,B2:E2)

複数の条件で探す

条件を掛け算でつなげると、すべての条件に合う最初の行を探せます。「野菜」で「単価150円以上」の最初の商品はキャベツでした。条件を & でつなげて「野菜|150」のように1つの値にして探す方法もあります(XLOOKUPの複数条件)。

=XLOOKUP(1,(C2:C9=G1)*(D2:D9>=G2),B2:B9,"なし")
エクセルのXLOOKUP関数で複数の条件を掛け算でつなげた例
エクセルのXLOOKUP関数で複数の条件を掛け算でつなげた例

VLOOKUP との違い

エクセルで列を挿入したときVLOOKUPはずれてXLOOKUPはずれない例
エクセルで列を挿入したときVLOOKUPはずれてXLOOKUPはずれない例

表に「産地」の列を挿入して試しました。VLOOKUP は列番号 4 のままなので、単価ではなく分類の「野菜」を返しました。XLOOKUP は返す列を範囲で指定しているので、単価の 180 のままでした。

比べるところXLOOKUPVLOOKUP
返す列の指定範囲で指定(列を挿入してもずれない)列番号で指定(挿入するとずれる)
左の列を返すできるできない
省略したときの探し方完全一致近似一致(FALSE が必要)
見つからないとき4つ目の引数で表示を決められるIFERROR で囲む
下から探す・横方向検索モード・行の指定でできるできない(横は HLOOKUP)
使えるバージョンMicrosoft 365・Excel 2021 以降すべて

古いバージョンでも使うファイルは VLOOKUP、そうでなければ XLOOKUP がおすすめです(VLOOKUPの使い方)。

よくある間違い

エクセルのXLOOKUP関数でよくある間違いの例
エクセルのXLOOKUP関数でよくある間違いの例

実際に試した、よくある間違いの例です。数値の 103 が入った表を、文字の「103」で探すと #N/A になり、– を付けて数値にすると「ぶどう」が返りました。検索範囲(8行)と戻り範囲(7行)の大きさが違うと #VALUE! になりました。

症状考えられる原因対処
#N/A になる表に無い/数値と文字の数字が混ざっている/カタカナとひらがなの違い4つ目で表示を決める。文字の数字は — や VALUE で数値に。試したところ「リンゴ」で「りんご」は見つからなかった。
#VALUE! になる検索範囲と戻り範囲の大きさが違う2つの範囲を同じ行数(列数)にする。
空白のはずが 0 になる返すセルが空白&”” を付けて文字にする(空白が0になるときの対処法)。
#スピル! になる複数の列を返すとき、広がる先に値がある右(下)のセルを空ける(#スピル!の直し方)。
* で探しても見つからない一致モードが 0(省略)一致モードを 2 にする。

英字の大文字と小文字は区別されません。試したところ、”APPLE” で “apple” が見つかりました。

目的別:XLOOKUPの詳しい使い方

やりたいこと記事
「〜を含む」「〜で始まる」で探すXLOOKUPの部分一致・前方一致・後方一致
一致モード・検索モードをくわしく一致モード・検索モード
2つ・3つ以上の条件で探すXLOOKUPの複数条件
別シート・複数シートから探す別シートから検索・複数シートから検索
行と列の見出しが交わる値XLOOKUPの入れ子(交点の検索)
IF と組み合わせて表示を変えるXLOOKUPとIFの組み合わせ
データが増えても範囲を直さないXLOOKUPの範囲を自動拡張
該当するものを全部取り出すXLOOKUPで複数該当をすべて抽出
空白が0になる・見つからないとき空白が0になる・見つからない場合

よくある質問

XLOOKUP が使えない(#NAME? になる)ときは?

XLOOKUP は Microsoft 365・Excel 2021 以降の関数です。それより前の Excel では使えないので、INDEX+MATCH で同じことができます(MATCH関数の使い方・INDEX関数の使い方)。

IFERROR で囲む必要はありますか?

見つからないときの表示は、4つ目の引数で決められるので、IFERROR は要りません。4つ目は「見つからないとき」だけに効き、範囲の大きさが違うといった式の誤りのエラーはそのまま出ます(IFERROR関数)。

練習問題で確かめたいときは?

XLOOKUP関数の練習問題10問で、基本から複数条件・縦横の検索まで練習できます。

XLOOKUP で部分一致の検索をするには?

一致モードを 2 にして、*(何文字でも)や ?(1文字)を使います。=XLOOKUP("ぶ*",B2:B9,D2:D9,,2) で、「ぶ」で始まる最初の商品(ぶどう)の単価 450 が返りました。一致モードを省略すると、* はただの文字として扱われます。

XLOOKUP で近似一致の検索をするには?

一致モードを -1 にすると、ぴったりの値が無いとき「次に小さい値」を使います。=XLOOKUP(G1,A12:A16,B12:B16,,-1) で、78 点の評価は B になりました。表を並べ替えておく必要はありません。

練習用Excelファイル(無料ダウンロード)
この記事の例がすべて入った練習用のファイルです(11シート)。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:XLOOKUP関数の関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次