Claude for ExcelでMRPの所要量計算を組み発注日を逆算する手順
BOMを展開して部品の総所要と正味所要を出し、リードタイムと休業日から発注日を逆算するExcelを、Claude for Excelに組ませる手順です。手計算での検算つき。
親品目の需要から部品の発注日を逆算する所要量計算(MRP)は、BOM(部品表)・在庫・リードタイムの3表があれば、Excelの標準関数だけで組めます。Claude for Excelには、その式の組み立てと、結果の見直しを任せられます。ただし、員数・リードタイム・休業日は人が決める入力値です。Claudeに推測させると、発注日が気づかないうちにずれます。
この記事では、2階層のBOMを例に、総所要、正味所要、発注量、発注日を順に出し、最後に手計算で照合するところまでを示します。
所要量計算は4つの数字の流れでできている
所要量計算は、次の順に数字を作ります。
所要量計算の流れ
- 1
総所要を出す
親品目の発注量に、BOMの員数を掛けます。親が完成品なら、需要そのものです。
- 2
正味所要を出す
総所要から、使える在庫(手持在庫と入荷予定)を引きます。マイナスなら0です。
- 3
発注量を決める
正味所要を、ロット(発注単位)の倍数に切り上げます。
- 4
発注日を逆算する
必要日からリードタイムの営業日数をさかのぼります。休業日は数えません。
部品に子がある場合、その部品の発注日が、子の必要日になります。親から子へ、同じ計算を繰り返すだけです。
在庫が一定量まで減ったら発注する発注点方式とは考え方が違います。所要量方式は、将来の需要から「いつ何個要るか」を逆算するので、受注生産や、需要が日付で決まっている品目に向きます。発注点方式の組み方は安全在庫と発注点をClaudeにExcelで計算させ検算する手順にあります。
前提 — 使える環境とブックの用意
Claude for Excelは、Pro・Max・Team・Enterpriseの各プランで使えます。動作するのは、Excel on the web、Microsoft 365版のExcel on Windows(ビルド16.0.13127.20296以降)、Excel on Mac(バージョン16.46以降、ビルド21011600以降)です。Excel 2016・2019の永続ライセンス版、iPad、Androidでは動きません。
ブックは次の5シートで組みます。
| シート | 中身 |
|---|---|
| BOM | 中身親品目、子品目、員数(親1個あたり) |
| 品目 | 中身品目コード、区分、使える在庫、ロット、リードタイム(営業日) |
| 需要 | 中身完成品の必要日と数量 |
| 休日 | 中身休業日の一覧 |
| 所要量 | 中身計算本体(品目×必要日の行) |
作業の前に、ブックを複製して作業用のコピーを作ります。BOMや在庫は、社内システムから出した自社のデータに限ります。取引先から届いたファイルに、隠れた指示文が仕込まれている場合があるためです。
例題 — 製品AのBOMと在庫
この記事で使う数字を先に置きます。製品Aは部品BとCでできていて、BはさらにDでできています。
A(製造)= B × 2 + C × 1
B(購入)= D × 3| 品目 | 使える在庫 | ロット | リードタイム |
|---|---|---|---|
| A | 使える在庫20 | ロット1 | リードタイム5営業日 |
| B | 使える在庫50 | ロット1 | リードタイム10営業日 |
| C | 使える在庫50(手持30+入荷予定20) | ロット50の倍数 | リードタイム7営業日 |
| D | 使える在庫100 | ロット1 | リードタイム14営業日 |
Aの需要は、2027年1月18日に100個、2月1日に150個です。休業日は、12月29日から1月3日の年末年始と、1月11日とします。入荷予定の20個は、最初の必要日より前に着く前提です。
ステップ1: BOMと品目マスタを整える
BOMシートは1行を「親・子・員数」にそろえます。多階層でも、親子の対を1行ずつ書くだけで足ります。
| 親 | 子 | 員数 |
|---|---|---|
| A | 子B | 員数2 |
| A | 子C | 員数1 |
| B | 子D | 員数3 |
Claudeへは、ブックの読み取りから頼みます。
BOMシートのA列が親、B列が子、C列が員数です。
次を確認して、結果を一覧にしてください。
・親子が循環している行(AがBを、BがAを含むなど)
・員数が0、空欄、負の行
・BOMに出てくるが、品目シートに無い品目コード
修正はせず、該当行だけ挙げてください。修正せずに挙げさせるのは、員数を勝手に直されると、以降の計算がすべてずれるためです。回答にはセル単位の根拠が付くので、該当セルへ移動して実物と照らせます。
ステップ2: 総所要と正味所要の式を組む
所要量シートは、品目ごとに必要日の順で行を並べます。列は次のとおりです。
| 列 | 内容 |
|---|---|
| A | 内容品目 |
| B | 内容必要日 |
| C | 内容総所要 |
| D | 内容期首在庫(前の行の期末在庫) |
| E | 内容正味所要 |
| F | 内容発注量 |
| G | 内容期末在庫 |
| H | 内容リードタイム(営業日) |
| I | 内容発注日 |
| J | 内容親品目 |
完成品Aの行は、C列に需要シートの数量を入れます。部品の行は、親の発注量に員数を掛けます。
C(部品の総所要) =SUMIFS(BOM!$C:$C,BOM!$A:$A,J4,BOM!$B:$B,A4)*F2
D(期首在庫) =IF(A4<>A3,SUMIFS(品目!$C:$C,品目!$A:$A,A4),G3)
E(正味所要) =MAX(0,C4-D4)
F(発注量) =IF(E4=0,0,CEILING(E4,SUMIFS(品目!$D:$D,品目!$A:$A,A4)))
G(期末在庫) =D4+F4-C4C列の末尾のF2は、親の行(この例ではAの1行目)の発注量です。親の行を指す番号は、行ごとに手で確認します。
D列は、品目が変わる行では品目シートの在庫を、同じ品目が続く行では前の行の期末在庫を取ります。ロットで切り上げた余りが、次の必要日に繰り越される仕組みです。繰り越しを入れないと、Cのようにロットが大きい品目で、余りがあるのに追加発注する表になります。
Claudeへの依頼は、列の意味と、触ってはいけない点まで書きます。
所要量シートのA〜J列の見出しは1行目にあります。
2〜3行目が製品A、4〜5行目が部品B、6〜7行目が部品C、8〜9行目が部品Dです。
上の列構成で、C〜G列の式を入れてください。
・ロット、在庫、員数は品目シートとBOMシートから引く
・式の中に数値を直書きしない
・完成品AのC列と、品目シートの値は変更しない
入れた式の、各参照セルが何を指すかを一覧にしてください。返ってくる式は、上のような形になります(例示であり、Claudeの出力そのものではありません)。式の中に員数やロットの数値が直書きされていたら、マスタを直しても計算に反映されないので、直させます。
ステップ3: 発注日を営業日でさかのぼる
発注日は、必要日からリードタイムの営業日数を引いた日です。WORKDAY関数が、土日と指定した休日を除いて日付を前後させます。
H(リードタイム) =SUMIFS(品目!$E:$E,品目!$A:$A,A4)
I(発注日) =IF(F4=0,"",WORKDAY(B4,-H4,休日!$A$2:$A$30))
B(部品の必要日) =親の行のI列(例: B4 =I2)WORKDAYの第2引数は、正の値で未来、負の値で過去の日付を返します。第3引数に休日の範囲を渡すと、その日も数えません。小数は切り捨てられます。
注意点は2つあります。日付が文字列で入っていると問題が起きるので、日付セルはDATE関数か、他の式の結果にします。開始日や休日に日付として扱えない値があると、#VALUE!になります。
発注量が0の行は、I列が空文字になります。この行を子の必要日として参照すると、WORKDAYが#VALUE!を返します。親の発注量が0なら、子の行は作らないか、数量0の行として別に扱います。
ステップ4: 手計算で検算する
計算結果は、次のようになるはずです。
| 品目 | 必要日 | 総所要 | 正味所要 / 発注量 | 発注日 |
|---|---|---|---|---|
| A | 必要日1/18 | 総所要100 | 正味所要 / 発注量80 / 80 | 発注日1/8 |
| A | 必要日2/1 | 総所要150 | 正味所要 / 発注量150 / 150 | 発注日1/25 |
| B | 必要日1/8 | 総所要160 | 正味所要 / 発注量110 / 110 | 発注日12/21 |
| B | 必要日1/25 | 総所要300 | 正味所要 / 発注量300 / 300 | 発注日1/8 |
| C | 必要日1/8 | 総所要80 | 正味所要 / 発注量30 / 50 | 発注日12/24 |
| C | 必要日1/25 | 総所要150 | 正味所要 / 発注量130 / 150 | 発注日1/14 |
| D | 必要日12/21 | 総所要330 | 正味所要 / 発注量230 / 230 | 発注日12/1 |
| D | 必要日1/8 | 総所要900 | 正味所要 / 発注量900 / 900 | 発注日12/15 |
Aの1行目から、手で追います。
正味所要 = 100 − 20(在庫) = 80
発注日 = 1/18から5営業日さかのぼる
1/15, 1/14, 1/13, 1/12, (1/11は休業) 1/8 → 1/8
Bの総所要 = 2 × 80 = 160
Bの正味 = 160 − 50(在庫) = 110
Bの発注日 = 1/8から10営業日さかのぼる
1/7, 1/6, 1/5, 1/4, (12/29〜1/3は休業)
12/28, 12/25, 12/24, 12/23, 12/22, 12/21 → 12/21次に、日付に左右されない総量で、全品目を一度に照合します。
Aの正味所要の合計 = 80 + 150 = 230
Bの総所要の合計 = 2 × 230 = 460
Bの正味所要の合計 = 460 − 50 = 410 (110 + 300)
Dの総所要の合計 = 3 × 410 = 1,230 (330 + 900)
Dの正味所要の合計 = 1,230 − 100 = 1,130 (230 + 900)Cはロットがあるので、発注量の合計から確かめます。総所要の合計は80+150=230、在庫は50、発注量の合計は50+150=200です。50+200−230=20が、最終行のG列(期末在庫)と一致します。
行ごとの手計算で式の構造を、総量の照合で参照のずれや集計漏れを見ます。どちらかが合わなければ、Claudeに「C列の式の参照を一覧にして」と頼み、親の行を指す番号がずれていないかを調べます。数式の精度を人が確かめる理由は、Claude数式・計算の精度と検算が必要な理由にまとめています。
休業日を渡さないと発注日はどれだけずれるか
休日の範囲を渡さないと、WORKDAYは土日だけを除いて数えます。この例では、Aの1行目の発注日が1/8ではなく休業日の1/11になり、それを必要日とするBの1行目も12/21ではなく12/28にずれます。休業日の1/11に発注する計画が立ってしまうのです。
発注日の列がそれらしく埋まっていても、休日の入力漏れは見た目で分かりません。確かめ方は、発注日の列を並べ替え、休業日と重なっていないかを見ることです。
所要量シートのI列(発注日)のうち、休日シートの日付と一致する行、
および土日の行があれば、行番号を挙げてください。つまずきやすい点
- 行の並びが必要日順でない: D列が前の行の期末在庫を引き継ぐため、同じ品目の行は必要日の早い順に並べます
- 複数の親に使われる部品: 同じ必要日の総所要は合算してから正味所要を出します。親ごとの行のまま在庫を引くと、同じ在庫を二重に使います
- ロットの切り上げを子へ伝え忘れる: 子の総所要は、親の正味所要でなく、切り上げ後の発注量に員数を掛けます
- 入荷予定の日付: 使える在庫に入荷予定を足す表は、その入荷が最初の必要日より前に着くことが前提です。着荷が遅い分は、必要日を見て別の行にします
- 親子の循環: BOMに循環があると、展開が終わりません。ステップ1の確認で先に拾います
安全在庫は所要量計算のどこに入れるか
需要が日付で決まっていても、入荷の遅れや不良で足りなくなることはあります。その備えは、品目シートの「使える在庫」から安全在庫を差し引いた値を入れる形で、所要量計算に取り込めます。たとえば部品Bの在庫が50個で安全在庫が10個なら、D列の期首在庫は40個から始まります。安全在庫の数量そのものは、安全在庫と発注点の記事の手順で出し、所要量シートには結果だけを渡します。
毎回同じ条件で頼むためのInstructions
アドインのSettingsにあるInstructionsに前提を書くと、すべての会話に反映されます。この設定はExcelだけに効き、PowerPointやWordとは別です。
- 日付は DATE関数か式の結果で持ち、文字列にしない
- 発注日は WORKDAY関数と休日シートで求め、土日だけで数えない
- ロット・リードタイム・員数は式に直書きせず、マスタを参照する
- 品目マスタ、BOM、需要シートの値は、頼まれない限り変更しない
- 式を追加したら、参照セルの意味を一覧で示す使えない機能と、扱いの注意
Claude for Excelは、データテーブルとマクロ・VBAの操作に対応していません。需要が変わったときの発注日への影響を、データテーブルで一覧にしている職場では、その部分は手作業のままです。マクロはClaude CodeでExcel VBAマクロを書く方法の流れで別に扱います。
公式の制限事項には、監査が重要な計算を検証なしで使うこと、人のレビューなしで最終成果物にすることが、推奨されない用途として挙がっています。発注日は仕入先への発注に直結します。表を発注業務に回す前に、ステップ4の照合を済ませます。
Claudeは既存のデータを上書きする前に警告を出します。警告が出たときは、どのセルを何で置き換えるかを読んでから承認します。
需要の見込みそのものは、この計算の入力です。出荷実績から予測値を作る方法は出荷実績から需要予測を作りMAPEで比べる手順で扱っています。計算した発注量が工程の能力に収まるかは、生産計画の負荷山積みをClaude for Excelで作り能力超過を検算するで突き合わせられます。
まとめ
所要量計算は、員数・在庫・ロット・リードタイム・休業日という入力値が正しければ、式の構造は単純です。入力値は人がマスタに書き、Claudeには、そのマスタを参照する式を組ませます。行ごとの手計算と、品目ごとの総量の照合の両方が合えば、発注日の表を業務に回せます。