XLOOKUP関数の使い方!VLOOKUPとの違いとは?

XLOOKUP使い方解説 スプレッドシート

はじめに

スプレッドシートで表データを扱うとき、「この値に対応する情報を別の表から取り出したい」という場面はよくあります。

そんなときに使う代表的な関数といえば VLOOKUP ですが、最近ではより柔軟で使いやすい XLOOKUP(エックスルックアップ) 関数が登場し、注目を集めています。

この記事では、Googleスプレッドシートでも使える XLOOKUP 関数について、基本から応用、VLOOKUPとの違いまでをわかりやすく解説します。

1. XLOOKUP関数とは?

XLOOKUP は、指定した値を検索し、対応する値を返す関数です。

VLOOKUPやHLOOKUPの進化版といえる関数で、より柔軟でミスの少ない検索が可能になります。

2.XLOOKUPの特徴と使い方

=XLOOKUP(検索キー, 検索範囲, 戻り値の範囲, [見つからない場合の値], [一致モード], [検索モード])
引数説明
検索キー探したい値(例:「A001」など)
検索範囲どこから検索するか(例: 商品コードの列)
戻り値の範囲対応する値を返す列
見つからない場合の値(省略可)該当がない場合に返す値(例:「該当なし」)
一致モード(省略可)完全一致や近似一致の指定(通常は0=完全一致)
検索モード(省略可)上から検索・下から検索など

3.XLOOKUPの使用例

たとえば、以下のような商品マスタがあるとします。

XLOOKUP参照元データ

表にcodeが入力されていて、それに対応する作品名を取得したい場合、次のように書きます:

=XLOOKUP(D2,A:A,B:B,"未登録")

この関数は、D2列に入力されたcodeをもとに、A列でcodeを検索し、B列から該当する作品名を返します。

XLOOKUP基本操作1

もし該当がなければ「未登録」と表示されます。

XLOOKUP基本操作2

4.VLOOKUPとの違いは?使い分けは必要?

特徴VLOOKUPXLOOKUP
検索方向左から右左でも右でもOK
挿入や削除の影響列番号で指定 → 影響大範囲で指定 → 安定
デフォルト一致近似一致(注意!)完全一致
見つからない時エラー(#N/A)任意の値を指定可能

注目ポイント!

・左検索ができる!

VLOOKUPでは、検索対象が「検索列より左にある」と使えませんが、

XLOOKUPでは左でも右でも自由に取得できます!

XLOOKUP注目ポイント1

・列追加による柔軟性が高い!

VLOOKUPでは「2列目」と指定しますが、列を追加するとずれる問題があります。

XLOOKUP注目ポイント2

XLOOKUPでは範囲を直接指定するため、構造変更に強くなります。

XLOOKUP注目ポイント3

5.応用例:社員IDから部署名を取得

以下のような社員マスタがあるとします。

XLOOKUP応用編1

社員IDをもとに部署名を取得したいときは:

=XLOOKUP(E2,$A$2:$A$16,$C$2:$C$16,"未登録")

F2セルに社員IDが入っていて、それに対応する部署名を返す関数です。

XLOOKUP応用編2

6.エラー処理にも便利!

従来は IFERROR(VLOOKUP(…)) のようにネストして書く必要がありました。

XLOOKUP応用編3

XLOOKUPでは第4引数で簡単にエラー処理ができます。

=XLOOKUP(A2, A列, B列, "データなし")
XLOOKUP応用編4

これだけで、該当しない場合の表示が制御できるのはとてもスマートです。


7.検索モードと一致モードの活用(上級)

XLOOKUPには高度なオプションもあります。

一致モード(第5引数)

0:完全一致(デフォルト)

使い方例
「スコア80に完全一致するランクを取得したい」

=XLOOKUP(A2, G2:G5, H2:H5, “該当なし”, 0)

XLOOKUP完全一致

-1:以下の最も近い値(降順に並んでいる必要あり)

使い方例
「各社員がどのランクに近いか(以下の最も近い値)を知りたい」

=XLOOKUP(B2, $E$2:$E$5, $F$2:$F$5, "該当なし", -1)
XLOOKUP以下の最も近い値

1:以上の最も近い値(昇順に並んでいる必要あり)

使い方例
「スコア○○以上のランクを知りたい(以上の最も近い値)」

=XLOOKUP(B2, $E$2:$E$5, $F$2:$F$5, "該当なし", 1)
XLOOKUP以上の最も近い値

検索モード(第6引数)

1:上から下に検索(デフォルト)

使い方例
「重複があった際に最初に一致するスコアを取得したい」

最初に見つかった「91」の社員IDを探したい

=XLOOKUP(91, B2:B16, A2:A16, "該当なし", 0, 1)
XLOOKUP上から下に検索

-1:下から上に検索(最後の一致を取得したい時に便利)

使い方例
「重複があった際に最後に一致するスコアを取得したい」

最後に見つかった「91」の社員IDを探したい

=XLOOKUP(91, B2:B16, A2:A16, "該当なし", 0, -1)
XLOOKUP下から上に検索
モード説明並び順代表的な用途
0完全一致不問値がそのままあるとき
-1以下の最も近い値降順評価・ランクなどの下限判定
1以上の最も近い値昇順評価・ランクなどの上限判定
検索1上から下不問最初の一致を取得
検索-1下から上不問最後の一致を取得

8.まとめ

XLOOKUP は、従来の VLOOKUP の欠点を補った次世代の検索関数です。

改めて今回解説したXLOOKUP関数の概要をまとめると

・左右どちらにも対応可能
・範囲指定で列挿入に強い
・エラー処理がシンプル
・柔軟な検索モードが選べる

スプレッドシートでのデータ検索が多い方には、間違いなく覚えておきたい関数です!

ご質問や「こんな場面で使える?」など気になることがあれば、お気軽にコメントやメッセージくださいね!

当サイトではGoogleスプレッドシート、Excel、AIと表計算の組み合わせ等の便利な情報を発信しています!
当サイトをブックマークしていつでも遊んできてくださいね

それじゃまた他の記事でお会いしましょう

コメント

タイトルとURLをコピーしました