Harry&

業種

卸売業の商品マスタをエクセルで管理する限界 型番・価格改定の実務設計

佐々木晴哉

卸売業の商品マスタをエクセルで管理する限界 型番・価格改定の実務設計

商品マスタのエクセル管理は型番・JAN・掛率の列設計さえ決めれば運用できます。ただし価格改定の一括反映と履歴管理は自作の限界が早く来ます。

無料相談無料相談受付中

いきなり作らない。AIで何がどう変わるかを、先に見極める。

  • ノーコードの卒業先、AIネイティブ受託。事業の文脈で要件から実装まで伴走
  • 45分・Web。検討段階のご相談・資料だけでも歓迎。しつこい追客はしません

卸売業の商品マスタをエクセルで管理する限界 型番・価格改定の実務設計

商品マスタのエクセル管理は型番・JAN・掛率の列設計さえ決めれば運用できます。ただし価格改定の一括反映と履歴管理は自作の限界が早く来ます。

卸売業の商品マスタ管理の全体像(型番・JAN・掛率・取引先別価格・改定履歴の関係を示す図) 図: 商品マスタをエクセルで組み立てる際の5つの構成要素(型番・JAN・掛率・取引先別価格・改定履歴)

商品マスタをエクセルで管理する基本構成

卸売業の商品マスタは「商品情報」「仕入原価・掛率」「取引先別販売価格」「改定履歴」の4ブロックに分けて設計すると、SKU数が増えても崩れにくくなります。

商品情報ブロックには商品コード・型番・JANコード・商品名・単位・仕入先を配置します。ここで最も事故が起きやすいのが型番の扱いです。私が支援先の卸売業で見た運用では、自社の商品コードとメーカー型番を同じ列に混在させていたため、メーカー側で型番のマイナーチェンジ(末尾の記号変更など)が起きるたびにVLOOKUPのキーが一致しなくなり、受注入力のたびに「該当なし」エラーが出ていました。型番は「メーカー型番」と「自社商品コード」を別列で持ち、自社商品コードをキーにする設計にしておくと、型番側の変更に振り回されずに済みます。仕入原価・掛率ブロックは、仕入単価に掛率を掛けて販売単価を導く数式(例: =仕入単価*掛率)を基本とし、取引先別販売価格ブロックでは、取引先ごとに異なる掛率を横列で持つのではなく、商品コード×取引先コードの組み合わせを縦に並べる「縦持ち」構成にすることで、取引先数が増えても列が破綻しません。

商品マスタの4ブロック構成(商品情報・仕入原価掛率・取引先別価格・改定履歴の並び) 図: 商品マスタエクセルの基本レイアウト(商品情報/仕入原価・掛率/取引先別価格/改定履歴)

型番・JAN・掛率をVLOOKUPで連携する仕組み

型番と自社商品コードを分けて管理する設計は、受注入力シートとの連携が前提にあってはじめて意味を持ちます。

具体的には、商品マスタシートに「自社商品コード・型番・JANコード・仕入単価・掛率」の一覧を作り、受注入力シートの商品コード列をキーに次のような数式で単価を引きます。

=IF(B2="","",VLOOKUP(B2,商品マスタ!$A:$F,5,FALSE)*VLOOKUP(B2,商品マスタ!$A:$F,6,FALSE))

B2(自社商品コード列)が空欄なら空白を返し、入力済みなら商品マスタから仕入単価と掛率をそれぞれ引いて掛け合わせ、販売単価を自動算出する数式です。型番やJANコードから逆引きしたい場合は、自社商品コードとは別にJANコード列専用のVLOOKUP、あるいはXLOOKUPを組んでおくと、バーコードリーダーでJANを読み取ってからの検索にも対応できます。掛率は取引先ごとに異なることが大半なので、この数式の掛率部分を「取引先別価格シート」への参照に差し替えることで、同じ商品でも取引先が変わると自動的に単価が変わる構成になります。

型番・JAN・自社商品コードからVLOOKUPで仕入単価と掛率を引き出す参照の流れ 図: VLOOKUP関数によるセル参照の流れ(型番・JANコード→商品マスタ→仕入単価・掛率の自動反映)

価格改定の一括反映と履歴管理の設計

商品マスタの単価列を直接書き換える運用は、改定作業そのものは早く終わりますが、改定前の単価が跡形もなく消えるという致命的な弱点を持ちます。

これを避けるには、単価列を直接上書きせず「改定履歴シート」を別に用意し、商品コード・改定前単価・改定後単価・適用日・改定理由を1行ずつ追記する形にします。受注入力シート側では、当日の単価を次のような数式で改定履歴から自動判定させます。

=INDEX(改定履歴!$D:$D,MATCH(1,(改定履歴!$A:$A=B2)*(改定履歴!$E:$E=MAXIFS(改定履歴!$E:$E,改定履歴!$A:$A,B2,改定履歴!$E:$E,"<="&TODAY())),0))

この数式はまずMAXIFSで「その商品コードにおいて、適用日が今日以前の中で最も新しい適用日」を特定し、その日付と商品コードの両方が一致する行の改定後単価をMATCHで拾い出す仕組みです(Excel 365ならスピル対応で通常入力、旧バージョンでは配列数式としてCtrl+Shift+Enterで確定する必要があります)。単純に「商品コード一致・適用日が今日以前」の2条件だけでMATCHすると、条件を満たす行が複数ある場合にシート上で先に出てきた行(=古い改定である可能性がある行)を拾ってしまうため、MAXIFSで対象日を一意に絞り込む一手間が欠かせません。私が相談を受けた卸売業では、単価列を直接上書きする運用を続けていたため、ある取引先から「3か月前の請求単価が違う」と指摘された際、いつ・誰が・なぜ単価を変更したのかを追跡する手段が一切残っておらず、当時の担当者の記憶だけを頼りに調査せざるを得ませんでした。改定履歴を残す設計にしておけば、この種の照会には数式一つで即答できます。

項目単価列を直接上書き改定履歴シートで管理
改定前単価の確認不可(上書きで消失)履歴シートから即座に照会可能
改定漏れの検知目視のみ・気づきにくい適用日の重複・空白をチェック可能
値上げ交渉の根拠提示記憶に依存改定理由列から即座に説明可能
一括反映の作業対象行を都度選択して手作業適用日を書き込むだけで自動切替

改定履歴シートによる価格改定の一括反映イメージ(改定前単価・改定後単価・適用日の管理) 図: 単価列の直接上書きと改定履歴シート管理の違い(改定前単価の追跡可否)

版の乱立と改定漏れが起きるメカニズム

価格改定の仕組みを数式で整えても、ファイル単位で商品マスタを管理している限り、版の乱立という別の問題が構造的に発生します。

エクセルの商品マスタは1つのファイルとして存在するため、営業担当者ごとに「手元で使いたい」という理由でコピーを作ると、そこから改定が反映されないコピーが生まれます。実際に支援先の卸売業で見た例では、本社の商品マスタが月次で改定されているにもかかわらず、営業所ごとにローカル保存された半年前のコピーが現役で使われ続けており、ある営業担当が古い掛率のまま見積もりを出してしまい、受注後に「聞いていた価格と違う」というクレームに発展したことがありました。この事故の原因は数式の誤りではなく、「どのファイルが正本か」という運用ルールが存在しなかったことにあります。版の乱立を防ぐには、共有フォルダ上の1ファイルだけを正本と決め、ローカルへのダウンロード保存を禁止し、改定履歴シートへの追記を本社の担当者1名に限定するルール運用が必須になります。ファイル単位で情報を持つ限り、この種の乱立はルールを敷いても完全には防ぎきれません。

営業所ごとに商品マスタのコピーが乱立し古い価格が使われ続けている様子(顔なし・書類とPC画面中心) 図: ファイル単位管理で商品マスタの版が乱立し、旧価格のまま見積もりが出てしまう典型例

受発注システムとの二重管理という落とし穴

商品マスタの版乱立を社内ルールで抑え込めたとしても、卸売業の多くはすでに受発注システムや会計システムを併用しており、そちら側にも単価テーブルが存在します。

この場合、エクセルの商品マスタを改定しても、受発注システム側への反映は別作業として残ります。担当者が異なる、更新のタイミングがずれる、そもそも反映作業自体が引き継がれていない、といった要因が重なると、エクセル側だけ改定されてシステム側は旧単価のまま、あるいはその逆という状態が生まれます。私が見た卸売業の事故では、エクセルの商品マスタで掛率を改定したものの受発注システムへの反映を担当者が失念しており、1か月分の受注が旧掛率のまま自動処理されて、月末にまとめて差額を精算する事態になりました。二重管理そのものを解消するには、エクセルと受発注システムのどちらか一方を「正のデータソース」と決め、もう一方は参照専用(入力・改定を行わない)にする設計判断が必要です。自社にとってどちらを正データソースにすべきか、また商品マスタと受発注システムをどう連携させるかで迷う場合は、初月無料の経営AI診断(通常30万円相当)で現状の商品マスタ運用を棚卸しし、改善提案までご一緒することもできます。

商品マスタをシステム化する判断基準・移行ステップ

商品マスタのエクセル運用を続けていいかどうかは、SKU数と取引先数、そして価格改定の頻度で判断するのが実務的な目安です。

SKU数が数百件まで、取引先数が10社前後まで、価格改定が四半期に1回程度であれば、本記事で紹介した縦持ち構成と改定履歴シートだけでも十分に運用できます。逆に、SKU数が数千件を超える、取引先ごとの掛率パターンが複雑化している、価格改定が月次以上の頻度で発生する、といった条件が重なってきたら、ファイル単位の管理には限界が来ているサインです。移行を検討する場合は、次の3ステップで進めると混乱が少なくなります。

  1. 正データソースの確定: 商品マスタと受発注システムのどちらを正とするかを先に決め、もう一方を参照専用に切り替える。
  2. 改定履歴の移行: エクセルの改定履歴シートのデータを、システム側の履歴管理機能またはデータベースにそのまま移し替える(このとき列構成を揃えておくと移行作業が単純化する)。
  3. 並行運用期間の設定: 1〜2か月はエクセルとシステムを並行稼働させ、両者の単価が一致しているかを突き合わせてから、エクセル側の入力・改定を完全に停止する。

自社が今どちらの段階にいるのか、また移行するとしてどこまでを自社の運用に残しどこからシステム化するのが費用対効果に合うのかを判断したい場合は、初月無料の経営AI診断(通常30万円相当)で業務の現状を可視化し、改善提案までお手伝いします。

Excel商品マスタ運用とシステム移行後の比較インフォグラフィック(改定反映速度・二重管理工数の違いを数値で表示) 図: Excel商品マスタ運用とシステム移行後の比較(改定反映速度・二重管理工数の違い)

まとめ

商品マスタのエクセル化は、商品情報・仕入原価掛率・取引先別価格・改定履歴の4ブロック設計とVLOOKUPによる型番連携さえ押さえれば、今日から実務レベルで組めます。一方で、価格改定の履歴管理・版の乱立防止・受発注システムとの二重管理解消はファイル単位の運用では構造的に限界があり、SKU数や取引先数、改定頻度が増えてきた段階でシステム化を検討する価値が出てきます。まずは自社の商品マスタを改定履歴シート方式に組み替え、正データソースをどちらにするかを整理してみてください。

自社の商品マスタ運用がどの段階にあるか、価格改定の一括反映や二重管理をどう解消すればよいか迷ったら、初月無料の経営AI診断(通常30万円相当)で業務の現状を可視化し、改善提案までお手伝いします。

よくある質問

商品マスタのエクセルは何列で設計すればいいですか?

最低限「商品コード・型番・JANコード・商品名・仕入単価・掛率・取引先別販売単価・改定日」の8列は分けて管理してください。型番と自社商品コードを同一列に混在させると、メーカー型番変更時にVLOOKUPのキーが崩れます。取引先別価格は列を横に増やすより、商品コード×取引先コードの縦持ちシートに分けた方が、取引先が増えても列崩壊が起きません。

価格改定をエクセルで一括反映するにはどうすればいいですか?

商品マスタシートの単価列を直接書き換えるのではなく、改定前単価・改定後単価・適用日を別列に持つ「改定履歴シート」を用意し、当日単価はIF関数で適用日を判定して自動切替する構成にしてください。単価列を直接上書きする運用だと、改定前にさかのぼって単価を確認する手段が失われ、値上げ交渉の経緯や誤請求の検証ができなくなります。

受発注システムと商品マスタが二重管理になるのはなぜですか?

受発注システム側にも商品マスタ相当の単価テーブルが存在するため、エクセルの商品マスタを改定しても受発注システム側への反映が別作業として残るからです。担当者が違う、更新のタイミングがずれる、といった要因が重なると、片方だけ改定されて受注時に旧価格が適用される事故が起きます。二重管理を解消するには、どちらか一方を正のデータソースと決め、もう一方は参照専用にする設計判断が必要です。

商品マスタの版が乱立してしまう場合の対処法は?

ファイル名に「_最新」「_確定版」を付ける運用をやめ、改定履歴シートに版数と改定理由を1行ずつ追記する「単一ファイル・追記型」に切り替えてください。複数の営業担当がそれぞれ手元にコピーを持つ運用そのものが版の乱立を生むため、共有フォルダの1ファイルを唯一の正本と決め、ローカル保存を禁止するルール運用も併せて必要になります。

関連記事

「まず費用感だけ知りたい」という方へ。
1分で概算費用がわかるシミュレーターをご用意しています。

1分で見積りを試す →

よくある質問

Q. 商品マスタのエクセルは何列で設計すればいいですか?
A. 最低限「商品コード・型番・JANコード・商品名・仕入単価・掛率・取引先別販売単価・改定日」の8列は分けて管理してください。型番と自社商品コードを同一列に混在させると、メーカー型番変更時にVLOOKUPのキーが崩れます。取引先別価格は列を横に増やすより、商品コード×取引先コードの縦持ちシートに分けた方が、取引先が増えても列崩壊が起きません。
Q. 価格改定をエクセルで一括反映するにはどうすればいいですか?
A. 商品マスタシートの単価列を直接書き換えるのではなく、改定前単価・改定後単価・適用日を別列に持つ「改定履歴シート」を用意し、当日単価はIF関数で適用日を判定して自動切替する構成にしてください。単価列を直接上書きする運用だと、改定前にさかのぼって単価を確認する手段が失われ、値上げ交渉の経緯や誤請求の検証ができなくなります。
Q. 受発注システムと商品マスタが二重管理になるのはなぜですか?
A. 受発注システム側にも商品マスタ相当の単価テーブルが存在するため、エクセルの商品マスタを改定しても受発注システム側への反映が別作業として残るからです。担当者が違う、更新のタイミングがずれる、といった要因が重なると、片方だけ改定されて受注時に旧価格が適用される事故が起きます。二重管理を解消するには、どちらか一方を正のデータソースと決め、もう一方は参照専用にする設計判断が必要です。
Q. 商品マスタの版が乱立してしまう場合の対処法は?
A. ファイル名に「_最新」「_確定版」を付ける運用をやめ、改定履歴シートに版数と改定理由を1行ずつ追記する「単一ファイル・追記型」に切り替えてください。複数の営業担当がそれぞれ手元にコピーを持つ運用そのものが版の乱立を生むため、共有フォルダの1ファイルを唯一の正本と決め、ローカル保存を禁止するルール運用も併せて必要になります。

あわせて読みたい

この記事をシェア

Next Step

「とりあえず相談」が、
一番の近道です。

いきなり作りません。投資対効果を見極めてから進めるので、ムダな開発を防げます。
検討段階のご相談・資料だけでも歓迎。しつこい追客はしません。

※ まだ検討段階でも大丈夫です。無料相談では課題の整理からご一緒します。

Harry&がわかる3点セット — サービス概要・導入事例・料金体系

無料資料

Harry&がわかる3点セット

サービス概要・導入事例・料金体系をまとめた資料を無料でお届けします。

資料をダウンロード
無料相談 — 45分・Web。検討段階のご相談も歓迎

無料相談

いきなり作らない。
先に見極めてから進める。

45分・Web。検討段階のご相談・資料だけでも歓迎。しつこい追客はしません。

無料で相談する
1分で見積り — かんたんな質問に答えるだけで費用の目安がわかる

無料シミュレーター

1分で費用の目安を確認

かんたんな質問に答えるだけ。まず費用感だけ知りたい方にどうぞ。

1分で見積りを試す →