発注点を勘で決めていると、切らすか、置きすぎるかのどちらかになる。出庫の実績があれば式で出せる。
必要なのは2つの足し算だ。発注してから届くまでに使う量と、そのぶれに備える安全在庫。この記事の計算表に品番と調達期間と出庫の実績を入れると、発注点と発注量が出る。

以下の計算は、2026年9月21日にMicrosoft 365のExcel(バージョン16)で行った。在庫を回したシミュレーションは手元のPythonで実行した。品目のデータは式を確かめるために作った架空のものだ。
発注点は2つの足し算
発注点 = 平均出庫 × 調達期間 + 安全在庫
平均出庫は1日あたりに出ていく数、調達期間は発注してから届くまでの日数だ。この掛け算が「待っている間に使う量」になる。
1日12個使って5日で届くなら60個。届くまでに60個減るので、在庫が60個を切ったら発注しないと間に合わない。
これだけだと、出庫が平均どおりの日しか間に合わない。多く出た日があれば切らす。その差を埋めるのが安全在庫になる。
安全在庫は、ばらつきと調達期間で決まる
安全在庫 = 安全係数 × 出庫の標準偏差 × √調達期間
標準偏差は出庫のばらつきだ。毎日ほぼ同じ数が出る品目は小さく、日によって0個だったり50個だったりする品目は大きくなる。
調達期間に平方根が付くのは、待つ日数が増えるほどばらつきが積み上がるが、日ごとのぶれが打ち消し合うからだ。5日待つなら2.24倍、10日なら3.16倍になる。倍にはならない。
Excelでは2本で出る。出庫の実績を1品目1行で横に並べておく。
平均出庫: =ROUND(AVERAGE(出庫実績!$B2:$BI2),2)
標準偏差: =ROUND(STDEV(出庫実績!$B2:$BI2),2)
安全在庫: =ROUNDUP(安全係数*標準偏差*SQRT(調達期間),0)
発注点: =ROUNDUP(平均出庫*調達期間+安全在庫,0)
STDEV.SではなくSTDEVを使っている。古いExcelとスプレッドシートの両方で動く。
配布している計算表では、5品目のサンプルが入っている。1日12個使って5日で届く品目なら、標準偏差3.03で安全在庫12個、発注点73個と出る。
安全係数を上げると、欠品は減るが在庫が増える
安全係数は、欠品をどこまで許すかで決める。正規分布を前提にした値で、1.29が10%、1.65が5%、2.33が1%にあたる。
この数字を上げれば欠品は減る。代わりに在庫が増える。どれくらい増えるのかを測った。
20品目を180日ぶん回すシミュレーションを書いた。日々の出庫は品目ごとの平均と標準偏差から乱数で作り、在庫が発注点を切ったら発注して、調達期間のあとに届く形にした。
安全在庫を置かないと、のべ3,600日のうち103日で欠品した。数にして1,861個だ。
安全係数1.65にすると欠品は9日、82個まで減る。在庫金額は1.32倍になった。
2.33にすると欠品1日、4個。在庫は1.44倍。3.00まで上げると欠品はゼロになるが、在庫は1.58倍だ。
読み方はこうなる。欠品を103日から9日に減らすのに在庫を32%増やす。そこから0日にするのに、さらに26%増やす。最初の32%は効くが、あとの26%は4個の欠品を消すためだけに払っている。
どこで止めるかは、切らしたときに何が起きるかで決まる。ラインが止まる部品なら3.00でも安い。代わりがある消耗品なら1.29で足りる。
発注量は、発注の間隔で決まる
発注点は「いつ頼むか」で、発注量は「何個頼むか」だ。別の計算になる。
発注量 = CEILING(平均出庫 × 発注の間隔, 発注ロット)
発注の間隔は、1回の発注で何日分を持つかだ。2週間に1回まとめて頼むなら14を入れる。CEILINGでロット単位に切り上げる。
1日12個使う品目を14日分なら168個、ロット10なら170個になる。
間隔を長くすると発注の回数は減るが、置く量が増える。短くすると在庫は減るが、発注と検収の手間が増える。手間を金額に換算していないなら、まず今のやり方の間隔をそのまま入れて、在庫金額を見る。
標準偏差が平均より大きい品目は、計算が当たらない
計算表には、標準偏差が平均を超えた行を赤くする条件付き書式を入れてある。
この状態は、出庫が偶然に近いという意味だ。ほとんどの日が0で、たまに大量に出る品目がこうなる。正規分布を前提にした安全係数が当てはまらないので、計算どおりに置いても切らす。
こういう品目は3つに分ける。受注生産にして在庫を持たない、まとめ買いして期限まで置く、取引先に在庫を持ってもらう。どれも計算ではなく取り決めの話になる。
赤い行が全体の2割を超えるなら、出庫の記録の取り方そのものを疑う。日ごとではなく週ごとにまとめて記録していると、0の日と大量の日が交互に並ぶ形になる。集計の粒度を合わせる方法は在庫のSUMIFSの記事に書いた。
計算表の使い方
3枚のシートでできている。入力するのは黄色の列だけだ。
「品目」に品番、品名、調達期間、発注ロット、仕入単価を入れる。調達期間は日数、ロットは1回に頼む単位。1個から買えるなら1を入れる。
「出庫実績」の同じ行に、日ごとの出庫数を右へ入れる。1行目が品目シートの1行目と同じ品番になるように並べる。60日分の列があるが、入れた日数だけで計算する。
「設定」で安全係数と発注の間隔を決める。係数は同じシートの表から選ぶ。この2つは全品目に効くので、品目ごとに変えたいときは表を分ける。
入力が済むと、品目シートの右側に平均出庫、標準偏差、安全在庫、発注点、発注量、発注点の在庫金額が出る。いちばん下に在庫金額の合計がある。
係数を1.65から2.33に変えて、合計金額がいくら増えるかを見る。その差が、欠品を減らすために払う金額になる。上のシミュレーションでいえば9日を1日にするのに12%だった。自分の品目で同じことをすれば、判断できる数字が出る。
実績は何日分いるか
30日分もないうちは、係数を上げても当たらない。標準偏差が安定しないからだ。
配布している計算表は60日分の列を用意してある。入れた日数だけで計算するので、20日分しかなくても動く。ただし、その数字を信じて在庫を増やすのは早い。
新しい品目は、最初の1か月は多めに置いて記録を取り、2か月目から計算に切り替える。季節で動く品目は、去年の同じ時期の実績を使う。
調達期間も実績で取る。発注書の日付と検収の日付の差を1年ぶん並べれば平均が出る。取引先が言っている納期ではなく、実際に届いた日で数える。
踏んだ失敗
安全在庫を「だいたい1週間分」で決めていた。ばらつきの大きい品目も小さい品目も同じ考え方で置いていたので、安定している品目は置きすぎ、ばらつく品目は切らす状態が続いた。標準偏差の列を作ってから、置く量の差がはっきりした。
調達期間を取引先の言う納期で入れていたこともある。カタログには5日と書いてあったが、実際に届くまでの平均は8日だった。発注点が3日分少なく出て、月に1回は切らしていた。
安全係数を全品目3.00にしたこともある。欠品はなくなったが在庫金額が1.58倍になり、棚が足りなくなった。切らして困る品目とそうでない品目を分けていなかった。
出庫の記録を月次でしか取っていなかった年もある。日ごとのばらつきが分からないので、標準偏差が計算できない。棚卸のときだけ数える運用では、この計算は始められない。棚卸そのものの決め方は棚卸の手順の記事に書いた。
確認していないこと
この記事で扱ったのは定量発注、つまり「在庫が発注点を切ったら決まった量を頼む」やり方だ。決まった日に頼む定期発注では、安全在庫の式に発注の間隔が入る。そちらは確かめていない。
安全係数と欠品率の対応は正規分布を前提にした値を使っている。出庫が正規分布に従わない品目では、この対応がずれる。上の赤い行の判定はその粗い目印にすぎない。
シミュレーションの数字は、私が作った20品目の条件で出たものだ。品目の構成が違えば比率も変わる。自分の品目で測り直してほしい。
調達期間そのものがばらつく場合も扱っていない。届くまでの日数が3日だったり12日だったりする取引先では、その分も安全在庫に見込む必要がある。
在庫の動きを1行ずつ記録する表は在庫管理表のテンプレートに用意してある。発注点の列に、この記事で出した数字を入れて使う形になる。



