商品コードから単価を自動入力する XLOOKUP 関数の使い方
見積書や受注表を作るたびに、商品名・単価表を見ながら金額を転記していませんか。商品コードを入力するだけで商品名と単価を表示できれば、入力時間と転記ミスを減らせます。ここでは、商品マスタを別の表に用意し、XLOOKUP関数で単価を呼び出す方法を、架空の商品データで説明します。
商品マスタの作り方/XLOOKUPの入力方法/見つからないときの確認/対応するExcelのバージョン
まずは「商品マスタ」を一つにまとめる
商品、サービス、部品、仕入先など、何度も使う情報は、入力用の表とは別に一覧として持ちます。これをここでは商品マスタと呼びます。A列に商品コード、B列に商品名、C列に標準単価を並べ、1件を1行で入力してください。
例として、A2に「A-101」、B2に「業務用ノートPC」、C2に「98000」と入力します。単価は「98,000円」ではなく数字だけで登録し、表示形式で円表示にすると、後の計算で困りません。
見積明細に商品コードを入力する
見積明細には、A列に商品コード、B列に商品名、C列に単価、D列に数量、E列に金額を置きます。A2に商品コードを入力したら、B2とC2を数式で自動表示にします。E2は単価×数量で計算します。
商品名を表示する数式
見積明細のB2に次の数式を入れます。
=XLOOKUP(A2,商品マスタ!A:A,商品マスタ!B:B,"")最初のA2は、見積明細で入力した商品コードです。次の「商品マスタ!A:A」は探す場所、最後の「商品マスタ!B:B」は見つかったときに返したい商品名の列です。最後の空文字指定は、コードが見つからないときに空白を表示するためのものです。
単価を表示し、金額を計算する
見積明細のC2には、返す列だけをC列に変えた式を入れます。
=XLOOKUP(A2,商品マスタ!A:A,商品マスタ!C:C,"")D2に数量を入力し、E2には次の式を入力します。
=C2*D2商品コードを変えると商品名・単価・金額が連動します。数式を下の行へコピーしておけば、明細を追加しても同じ形で使えます。
入力後に確認する3つのこと
商品コードは重複させない。同じコードが2件あると、最初に見つかった値が返ります。コードは重複しない管理番号として使いましょう。
標準単価と値引きを分ける。得意先ごとの特別価格のためにマスタの標準単価を書き換えると、別の見積にも影響します。最初は標準単価を呼び出し、必要な場合だけ見積明細側に値引額または調整単価の列を追加します。
完成済み見積は確定値として残す。マスタの単価を更新すると、数式で参照している既存見積も変わります。見積を確定した時点で値として保存するなど、運用ルールを決めてください。
「A-101」と「A-101」は別の文字として扱われます。半角・全角、空白、ハイフンの種類を統一してください。慣れてきたら、入力規則で候補から選ぶ方式にするとミスを減らせます。
使う前に確認したいExcelのバージョン
XLOOKUPはMicrosoft 365、Excel 2021以降などで使える関数です。Excel 2016・2019では利用できないため、その場合はVLOOKUPやINDEX/MATCHを使う必要があります。共有先のPCで開く場合も、相手のExcelで数式が使えるかを確認してください。
Microsoft公式でも、XLOOKUPは指定範囲で値を検索し、対応する値を返す関数として案内されています。公式のXLOOKUP関数説明
この仕組みは、顧客コードから会社名を表示する、担当者コードから部署名を表示する、仕入先コードから支払条件を確認する場面にも応用できます。