注文表や納品書に、商品名と単価を毎回手で打ち込んでいませんか。件数が増えるほど時間がかかり、単価の打ち間違いはそのまま請求ミスにつながります。
商品マスタさえ用意しておけば、この転記は VLOOKUP 関数 で自動化できます。注文表に商品コードを入れるだけで、商品名・単価が自動で埋まり、金額まで計算されます。実際の画面を見ながら進めましょう。
完成イメージ
A列に商品コードを入力すると、B列の商品名とC列の単価が商品マスタから自動で転記されます。あとは数量を入れれば、E列の金額(単価×数量)まで自動で出ます。
数式の意味
B2 セル(商品名)に入れているのは、次の数式です。
=VLOOKUP(A2, 商品マスタ!$A:$C, 2, FALSE)
VLOOKUP は「表の左端列からコードを探し、その行の指定した列を取り出す」関数で、4つの引数をこの順番で指定します。
- 検索値(A2)… 探したい値。ここでは入力した「商品コード」
- 範囲(商品マスタ!$A:$C)… 探しにいくマスタ表。左端のA列がコード列になっている必要があります
- 列番号(2)… 範囲の左から何列目を取り出すか。商品名はマスタの2列目なので 2
- 検索方法(FALSE)… 完全一致で探す指定。コードの転記では必ず FALSE
単価(C2)は、同じ数式の列番号だけを 3 に変えれば取り出せます(マスタの3列目が単価のため)。
=VLOOKUP(A2, 商品マスタ!$A:$C, 3, FALSE)
つまずきやすいポイント①:範囲は絶対参照の「$」で固定する
マスタの範囲 $A:$C に付いている $ は 絶対参照です。これがないと、数式を下の行にコピーしたときに参照するマスタ範囲がズレてしまい、2行目以降が正しく引けません。検索値(A2)は行ごとに変わるので固定せず、マスタ範囲だけを $ で固定します。F4 キーで素早く付けられます。
つまずきやすいポイント②:最後は必ず「FALSE」
4つ目の引数を省略したり TRUE にすると、近似一致になって見当違いの単価を返すことがあります。商品コードや社員番号など「ぴったり一致してほしい」転記では、必ず FALSE(完全一致)を指定してください。
よくあるエラーと対処
- #N/A が出る … 検索値がマスタに見つからないサインです。コードの表記ゆれ(全角半角・末尾の空白)か、範囲の左端列がコード列になっていないかを確認します。空欄のときに #N/A を出したくない場合は
=IFERROR(VLOOKUP(...), "")で空欄に逃がすと表が崩れません。 - 商品名は出るが単価がおかしい … 列番号の数え間違いです。列番号は「シート全体の列」ではなく「範囲の左端から数えた列」である点に注意します。
- マスタを増やしたら引けなくなった … 範囲を
$A$2:$C$50のように行番号で区切っていると、増えた行が範囲外になります。列全体($A:$C)かテーブル参照にしておくと、追加に強くなります。
まとめ
商品マスタと VLOOKUP を一度組んでおけば、注文・納品・在庫の表は「コードを入れるだけ」で商品名・単価が埋まり、金額まで自動で出ます。私たちが実際にお手伝いしたケースでは、毎回20分かけていた単価転記が数分で終わり、単価ミスもほぼゼロになった例があります。
「マスタの作り方から相談したい」「VLOOKUPより一歩進めて、複数シートの転記をマクロで丸ごと自動化したい」という場合は、ExcelMate のチャット相談でそのまま聞いていただけます。

