ピアのパソコン学習ガイドパソコン・Excel・AI・事務スキルの学び方と、教室の選び方
Excel関数

XLOOKUP関数の使い方|VLOOKUPとの違い・左の列を返す・見つからないとき【図解・サンプル付き】

ピアのパソコン学習ガイド 編集部2026年11月7日 更新

書き方はこれだけ

=XLOOKUP(探す値, 探す列, 返す列, [見つからないとき])

VLOOKUPの新しい版です。「探す列」と「返す列」を別々に選ぶので、何列目かを数えなくてよく、左側の列も返せて、列を挿入してもずれません。使えるのは Microsoft 365・Excel 2021以降・Web版です(2019以前は不可)。

XLOOKUPで商品コードから単価を引く図 B2 fx =XLOOKUP(A2,$A$8:$A$12,$C$8:$C$12) A B C 1 2 3 4 5 6 7 8 9 10 11 12 商品コード 単価 B-202 180 【商品一覧】 商品コード 商品名 単価 A-101 ボールペン(黒) 110 A-102 ボールペン(赤) 110 B-201 クリアファイル 30 B-202 付箋(75mm) 180 C-301 ホッチキス 680 探す値 探す列 返す列
A2のB-202を商品コードの列(A8:A12)で探し、同じ行の単価の列(C8:C12)の値を返します。VLOOKUPのように「何列目」を数える必要がありません。

この図の表をExcelファイルでダウンロード(問題と答えのシートつき)

引数の意味

引数入れるもの図の例
探す値探したいコードや番号のセルA2
探す列探す相手の列(1列だけ)。$で固定する$A$8:$A$12
返す列持ってきたい値の列。探す列と同じ行数にする$C$8:$C$12
見つからないとき(省略可)見つからなかったときに出す文字。省略すると #N/A"未登録"
一致モード(省略可)0=完全一致(省略時)/-1=次に小さい値/1=次に大きい値/2=ワイルドカード-1
検索モード(省略可)1=上から(省略時)/-1=下から(最新の行を取りたいとき)-1

ふだん使うのは最初の3つ、多くても4つ目までです。VLOOKUPと違って、省略すると完全一致なので、FALSEの付け忘れのような事故が起きません。

VLOOKUPではできないこと①:左側の列を返す

XLOOKUPなら右の列で探して左の列を返せる B2 fx =XLOOKUP(A2,$B$8:$B$12,$A$8:$A$12) A B C 1 2 3 4 5 6 7 8 9 10 11 12 商品名 商品コード ホッチキス C-301 【商品一覧】 商品コード 商品名 単価 A-101 ボールペン(黒) 110 A-102 ボールペン(赤) 110 B-201 クリアファイル 30 B-202 付箋(75mm) 180 C-301 ホッチキス 680 右の列で探して 左の列を返す
商品名の列(B列)で探して、その左にある商品コード(A列)を返しています。VLOOKUPは探す列が左端と決まっているので、これはできません。

VLOOKUPではできないこと②:見つからないときの表示を直接書く

見つからないときの表示を4つ目に書く B3 fx =XLOOKUP(A3,$A$8:$A$12,$C$8:$C$12,"未登録") A B C 1 2 3 商品コード 単価 B-202 180 D-999 未登録
4つ目に "未登録" と書くだけで、見つからないときの表示になります。VLOOKUPならIFERRORで包む必要がありました。空白にしたいなら "" です。

VLOOKUPではできないこと③:複数の列を一度に返す

返す範囲を2列にすると商品名と単価が一度に出る B2 fx =XLOOKUP(A2,$A$8:$A$12,$B$8:$C$12) A B C 1 2 3 商品コード 商品名 単価 B-202 付箋(75mm) 180 隣まで自動で出る
返す列をB8:C12(商品名と単価の2列)にすると、B2に式を入れるだけで、C2まで自動で値が出ます(スピル)。右のセルに何か入っていると #SPILL! になります。

送料表・手当表のような区分けに使う

一致モード-1で送料表から引く B2 fx =XLOOKUP(A2,$A$6:$A$9,$B$6:$B$9,,-1) A B C 1 2 3 4 5 6 7 8 9 購入金額 送料 4,200 500 【送料表】 この金額から 送料 0 800 3,000 500 5,000 300 10,000 0 4,200以下で最大→3,000
5つ目の一致モードを -1 にすると、「4,200以下でいちばん近い値」の行を返します。VLOOKUPのTRUEと違い、表が昇順に並んでいなくても正しく動きます。

エラーが出るとき

こうなったら原因と直し方
#NAME?XLOOKUPが使えないExcel(2019以前)で開いている。相手もこのファイルを使うなら、VLOOKUPで作り直す
#N/A探す値が見つからない。数字と文字・全角半角・空白のちがいはVLOOKUPの#N/Aの直し方と同じ。4つ目に表示を書けば消せる
#VALUE!探す列と返す列の行数がちがう(A8:A12とC8:C11など)。同じ行からの同じ行数にそろえる
#SPILL!複数の列を返すとき、右や下のセルに何か入っている。出したいセルを空ける
違う行の値が出る探す列と返す列の始まりの行がずれている(A8から と C9から など)

VLOOKUPとどちらを使う?

こんなとき使う関数理由
自分のPC(Microsoft 365)だけで使うXLOOKUP何列目を数えない・左も返せる・列を足してもずれない
取引先や社内の古いExcelでも開くVLOOKUPXLOOKUPは2019以前で #NAME? になる
Googleスプレッドシートで使うどちらでもスプレッドシートはXLOOKUPにも対応している

くわしい比べ方はVLOOKUPのページにもまとめています。

サンプルファイルで試す

「問題」のシートの黄色いセルにXLOOKUPを入れて、「答え」のシートと比べてください。※XLOOKUPが使えるExcel(Microsoft 365・2021以降)かGoogleスプレッドシートで開いてください。

xlookup.xlsx をダウンロード(無料・登録なし)

よくある質問

XLOOKUPが候補に出てきません。

お使いのExcelがXLOOKUPに対応していません(Excel 2019以前)。Microsoft 365か2021以降のExcel、またはWeb版・Googleスプレッドシートで使えます。

探す列と返す列は、離れた列でもいいですか?

はい。別のシートの列でもかまいません。行数と始まりの行がそろっていれば大丈夫です。

同じ値が2つあるときはどちらが返りますか?

上から探して最初の行です。6つ目の検索モードを -1 にすると、下から探して最後の行を返します。最新の記録を取りたいときに使います。

XLOOKUPで作ったファイルを古いExcelの人に送るとどうなりますか?

開くことはできますが、式のセルは #NAME? になり、再計算しないと前の値が残ることもあります。送る相手のExcelが分からないなら、VLOOKUPにしておくのが安全です。

条件が2つあるときは?

探す値と探す列を「&」でつなげます。例:=XLOOKUP(E2&F2, A:A&B:B, C:C)。補助列を作らなくても書けます。

一緒に覚えたい関数・操作

このページについて

操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報