ExcelのXLOOKUP関数の使い方|別表から商品名や単価を自動入力する方法

はじめに

商品コードから商品名を出したい、社員番号から部署名を出したい。
このような「別表から値を持ってくる」作業は、Excelでは非常によくあります。

そのときに便利なのが XLOOKUP関数 です。
この記事では、初めて使う人でもそのまま試せるように、一番よく使う形だけに絞って解説します。

この記事でわかること

  • XLOOKUPの基本形
  • 商品コードから商品名や単価を返す方法
  • VLOOKUPより使いやすいポイント

対象となる人

  • 別表から値を自動入力したい方
  • VLOOKUPは見たことがあるが苦手意識がある方
  • Excelの検索関数を実務で使いたい方

結論

XLOOKUPは、検索する列返したい列 を分けて指定できるので、初心者でも意味を理解しやすい関数です。
まずは 検索値, 検索範囲, 戻り範囲, 見つからないときの表示 の4つだけ覚えれば十分です。

XLOOKUP関数の基本形

基本形は次のとおりです。

=XLOOKUP(検索値, 検索範囲, 戻り範囲, "見つからない時の表示")

たとえば、A2に商品コードがあり、別シートのマスタから商品名を返したいなら、検索値はA2、検索範囲は商品コード列、戻り範囲は商品名列になります。

手順1 商品マスタをテーブルにする

マスタ表は、普通のセル範囲よりテーブル化しておく方が保守しやすいです。
理由は次の3つです。

  • 列名で式が読める
  • 行追加に強い
  • 参照範囲のズレが起きにくい

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

  • 商品コード
  • 商品名
  • 単価

手順2 商品コードから商品名を返す

商品コードがA2にある前提なら、式は次のようになります。

=XLOOKUP(A2, 商品マスタ[商品コード], 商品マスタ[商品名], "未登録")

この式の意味はシンプルです。

  • A2 を探す
  • 商品マスタ[商品コード] で探す
  • 一致した行の 商品マスタ[商品名] を返す
  • 見つからなければ 未登録 と表示する

手順3 単価も同じ考え方で返す

単価を返したい場合は、戻り範囲だけ変えます。

=XLOOKUP(A2, 商品マスタ[商品コード], 商品マスタ[単価], "")

商品名と単価で検索値は同じなので、考え方は変わりません。
返したい列を差し替えるだけです。

手順4 社員番号や取引先コードにもそのまま使う

XLOOKUPは商品マスタ以外でも同じように使えます。

  • 社員番号 → 部署名
  • 取引先コード → 取引先名
  • 店舗コード → 店舗名

実務では「コードを入力したら必要情報を引く」場面が多いので、覚えておくと再利用しやすい関数です。

XLOOKUPがうまくいかないときの確認ポイント

うまく返らないときは、次の順で確認してください。

  • 検索値に余分な空白がないか
  • 検索範囲と戻り範囲の行数が一致しているか
  • コードが文字列と数値で混在していないか
  • 参照している列名を間違えていないか

見つからないときの表示を入れておくと、空白より原因が把握しやすくなります。

コピペ用関数

=XLOOKUP(A2, 商品マスタ[商品コード], 商品マスタ[商品名], "未登録")
=XLOOKUP(A2, 商品マスタ[商品コード], 商品マスタ[単価], "")
=XLOOKUP(A2, 社員マスタ[社員番号], 社員マスタ[部署名], "未登録")

つまずきポイント

  • 検索範囲と戻り範囲を逆にしてしまう
  • 商品コードの型が揃っていない
  • 古いファイルの構造をそのまま使って列を間違える

注意点

  • まずは4引数までで使うと混乱しにくいです。
  • マスタ表はテーブル化しておくと管理しやすくなります。
  • 既存ファイルにVLOOKUPが入っていても、今から新規で作るならXLOOKUPの方が理解しやすい場面が多いです。

まとめ

XLOOKUPは、別表参照を読みやすく書ける関数です。
まずは商品コード→商品名、社員番号→部署名のような基本パターンで慣れてください。
一度使えるようになると、日々の入力作業がかなり速くなります。