XLOOKUP関数の使い方としくみ|草野球成績管理表で選手マスタ参照をシンプルにする例で解説

関数の使い方

比較的新しい検索関数であるXLOOKUP関数について、使い方と内部のしくみを解説します。草野球の成績管理表で、選手マスタから背番号を参照する場面を例に、初心者向けに丁寧に説明します。

XLOOKUP関数とは

📝 XLOOKUP関数の役割(一言でいうと)

検索値をもとに、指定した範囲の中から対応する値を探して返す関数です。VLOOKUPの新しいバージョンにあたる関数で、「検索する範囲」と「返す範囲」を別々に指定できるのが最大の特徴です。

基本の書式はこうです。

=XLOOKUP(検索値, 検索範囲, 返す範囲)

VLOOKUPが「範囲・列番号」という指定方法だったのに対し、XLOOKUPは「検索する列」と「返したい列」をそのまま範囲として指定します。

成績管理表での実例:選手マスタ参照をシンプルな式に置き換える

大阪グーニーズの管理表には「選手マスタ」というシートがあり、選手名・背番号・守備位置をまとめて管理しているとします。A列に選手名、B列に背番号、C列に守備位置が入っている想定です。

選手名 背番号 守備位置
SUZUKI 7 中堅手
NAKATA 3 一塁手
YAMAMOTO 5 左翼手

「個人成績」シートのA2セルに選手名が入っているとき、対応する背番号をB2セルに表示したい場合、式はこうなります。

✅ 選手名から背番号を取得する式
=XLOOKUP(A2, 選手マスタ!A:A, 選手マスタ!B:B)

「A2の選手名を、選手マスタのA列から探し、見つかった行のB列の値を返す」という指定がそのまま式になっています。列番号を数える必要がない分、VLOOKUPより直感的に読める式になります。

STEP 1
背番号を表示したいセルを選択する

個人成績シートの背番号欄(例:B2セル)をクリックして選択します。

STEP 2
「=XLOOKUP(」と入力し、検索値を指定する

検索値には、選手名が入っているセル(A2)をクリックして指定します。

STEP 3
カンマで区切り、検索範囲と返す範囲を指定する

2つ目の引数に「選手マスタ!A:A」(選手名の列)、3つ目の引数に「選手マスタ!B:B」(背番号の列)を指定します。

STEP 4
「)」で閉じてEnterキーで確定する

式を確定すると、選手名に対応する背番号がすぐに表示されます。

しくみを理解する:XLOOKUPは何をしているのか

📝 VLOOKUPの弱点をどう解消しているか

VLOOKUPは「検索範囲の左端列を探し、そこから右方向に指定した列数だけずらした値を返す」という仕組みでした。そのため、返したい値が検索する列より左側にある場合は使えず、前回(INDEX+MATCH)のように2つの関数を組み合わせて回避する必要がありました。

  • 検索範囲と返す範囲を別々に指定できるため、返したい列が検索列の左右どちらにあっても関係なく使える
  • 既定の一致方法が「完全一致」になっている(VLOOKUPは既定が近似一致で、第4引数にFALSEを指定し忘れると事故が起きやすかった)
  • 見つからない場合に返す代替値を、第4引数にそのまま指定できる仕組みがある

よくあるミス

⚠️ 検索範囲と返す範囲の行数がズレている

「選手マスタ!A2:A50」と「選手マスタ!B2:B100」のように、2つの範囲の高さ(行数)が一致していないとエラーになります。範囲はA:A、B:Bのように列全体で指定するか、開始・終了行をきちんと揃えるようにしましょう。

⚠️ 古いバージョンの環境では使えないことがある

XLOOKUPは比較的新しい関数のため、更新が反映されていない古いスプレッドシートのコピー元や、対応していないバージョンのExcelでは使えない場合があります。共有ファイルを他の人が編集する予定がある場合は、事前に対応状況を確認しておくと安心です。

✅ この記事のまとめ
  • XLOOKUPは「検索値をもとに、指定範囲から対応する値を返す」関数
  • 検索範囲と返す範囲を別々に指定できるため、VLOOKUPの「左端列限定」という制約がない
  • 既定が完全一致で、見つからない場合の代替値も第4引数で直接指定できるため、安全に書きやすい

次回予告

次回のテーマは「検索関数のエラー対策まとめ」です。VLOOKUPやXLOOKUPなどの検索関数で#N/Aエラーが出る典型パターンと、IFERROR・IFNAとの組み合わせ方を解説していきます。

▶︎ 次回:検索関数のエラー対策まとめ

コメント

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