倉庫レイアウトの違いによる保管効率をシミュレーションする方法【サンプル付き】

2021年7月29日

倉庫では先入れ先出しが基本です。

特に食品など賞味期限のある商品では必須です。

そのために、パレットラックで保管してあると便利です。

すべてのパレットにフォークリフトでアクセスできるからです。

しかし、パレットを床に置いて保管してある場合、下図のようにすべてのパレットにアクセスできる通路を設けるのは、場所の制約上難しいことがあります。

 

そのため下図のように、パレットへのアクセスを制限する代わりに、パレットを詰めて置く運用がなされることがあります。

 

この時、同じ列のパレット5枚分は、同一ロット(同じ入庫日)の商品しか置けません。

例えば、手前の3パレット分のスペースが空いているとしても、奥に古い日付の商品が置いてあると、そこには新しいロットの商品を置けません。

先入れ先出しができなくなってしまうからです。

 

従って、このように詰めて置いても保管効率が悪くなり、結局各列に通路を設ける方がいいケースも考えられます。

感覚的には、同一ロットを保管する列の長さ、入出荷数量、入荷ロットの大きさにより、どちらの置き方にするのが良いかが左右されそうです。

 

ところが、これを解析的に求めることはできません。

出荷量が確率的に変動するため、式で解くことはできないのです。

 

ではどうするか?

こういう場合に役に立つのが、モンテカルロシミュレーションです。

 

今回は、モンテカルロシミュレーションを行う前段階として、まず前回自作した在庫シミュレーションソフトに新しい機能を追加します。

追加する機能は、入荷ロットごとの在庫数を求める機能と、保管ロケーション数を求める機能です。

 

ページの最後でサンプルファイルを無料でダウンロードできます。

 

在庫を入荷ロットで分ける

前回作成した在庫シミュレーションソフトでは、毎日の倉庫内在庫数は算出しますが、それを入荷ロットごとには分けていませんでした。

【参考】

【エクセルマクロ】季節変動を考慮した在庫シミュレーションの作り方

 

まずは、これを入荷ロット別の在庫に分けます。

 

倉庫内在庫は次式のように計算されています。

倉庫内在庫=前日の倉庫内在庫-売上+入荷量

4,855=3,819-1,264+2,300

 

(このシミュレーションでは、リードタイムが3日となっているため、2/18に発注した2,300個は2/21に入荷しています)

しかし、この4,855個はすべて同じ入荷ロットではありません。

先入れ先出しがされているとすれば、3,819-1,264=2,555個は古いロット、2,300個が新しいロットです。

 

このような在庫のロット分けをエクセル上でするには、次のように行います。

  1. 入荷ごとに倉庫内在庫を分ける(ロット1在庫、ロット2在庫、、、)
  2. 一番古いロットの在庫から出荷数を差し引く
  3. 一番古いロットの在庫がゼロになったら、次に古い在庫から差し引く

 

言葉ではイメージが湧きにくいので、図で説明します。

 

上図では、初期在庫の814個で2/24までの出荷は賄えていますが、2/25の出荷201個は賄えません。

そのため、次に古い在庫(ロット2在庫)の150個からも賄います。

しかし、それでも足りません。

そのため、ロット3在庫からも賄うことによって、やっと出荷数量を充足することができました。

一方、ロット4在庫は手つかずのままです。

 

以上のような計算はエクセル上でやると、どうしても手作業が必要になってしまいますが、マクロを使うと自動化できます。

詳細は割愛しますが、主な追加ロジックは次の通りです。

  1. 初期ロットの在庫数を入荷量の隣の列に書き込む
  2. 新しい在庫が入荷する度に、新しく隣の列に入荷量を書き込む。その時、カウンターで入荷回数を数えることにより、何列目に書き入れるかを制御する
  3. 古いロット在庫から出荷量を差し引いていき、ゼロになったら、次に古いロット在庫から差し引く。この場合もカウンターで、どのロット在庫まで消費したかを数えることにより、差し引くロット在庫を制御する

 

以上のロジックで、倉庫内在庫を入荷ロットごとに分けることが可能になります。

 

パレットロケーション数を計算する

次に、パレットロケーション(保管ロケーション)の数を計算するロジックを追加します。

これは2つのケースを考えます。

  1. すべてのパレットにアクセスできる通路を設けるケース
  2. パレット間のスペースなしで押し込み、列の先頭からのみパレットを出し入れするケース

 

まず、1パレットに載る個数Aと、ケース2で1列当たりのパレット数Bを変数として入力できるようにしておきます。

 

すると、ケース1では、ロット在庫ごとに在庫数量をAで割り、それを切り上げ、最後にすべてのロット在庫について足し合わせれば求まります。

例)

ロット1在庫:173個

ロット2在庫:300個

ロット3在庫:100個

1パレット当たりの個数:50個

の場合、

ロット1在庫のパレット数:4パレット

ロット2在庫のパレット数:6パレット

ロット3在庫のパレット数:2パレット

合計:12パレット

 

ケース2では、ロット在庫ごとに在庫数量をA×Bで割り、それを切り上げ、最後にすべてのロット在庫について足し合わせ、それをB倍すれば求まります。

例)

ロット1在庫:173個

ロット2在庫:300個

ロット3在庫:100個

1パレット当たりの個数A:50個

1列当たりのパレット数B:5パレット

の場合、

ロット1在庫のパレット数:1列=5パレット

ロット2在庫のパレット数:2列=10パレット

ロット3在庫のパレット数:1列=5パレット

合計:20パレット

 

例えば、ケース2のパレット数は下図のようにエクセルマクロで計算できます。

 

保管効率をシミュレーションする

それでは機能追加したエクセルマクロのプログラムを使って、実際にシミュレーションをしてみましょう。

まずは、下記のデータでシミュレーションしてみます。

日々の出荷数の平均が110個、標準偏差が69個です。

詰めて置くケース2の場合の、1列当たりのパレット数は5です。

 

シミュレーションの結果は下図の通りです。

 

ケース1(すべてのパレットにアクセス可能な通路を設ける)の方が、パレットロケーション数が少なくなっているのが分かります。

平均を計算すると65%になります。

これは、ケース2の場合に歯抜けになっている列が多いことを意味します。

列の手前側が空いているが、入荷ロットが違うために、その列に置けないのです。

この傾向は、日々の入出荷ボリュームに対して、1列当たりのパレットロケーションが多い場合に顕著になることが予想できます。

 

試しに、1列当たりのパレットロケーション数を5から3に変えてシミュレーションしてみると、下図のようになります。

 

だいぶ差が縮まりました。

比率を計算してみると、ケース1のパレットロケーション数は、ケース2に比べて80%になりました。

 

次に、最低発注ロットを50個から200個に変えてシミュレーションしてみましょう。

結果はこうなります。

 

再び差が大きくなりました。

比率を計算してみると72%になります。

最低発注ロットが1列に収まる数量より大きくなることによって、ケース2の保管効率が下がったことが分かります。

 

このように、入出庫の数量、1列当たりのパレットロケーション数、最低発注ロットによって、ケース2の保管効率は大きく影響を受けることが分かります。

繰り返しになりますが、これを数式から解析的に計算することはできません。

シミュレーションにより、帰納的にしか求められません。

在庫シミュレーションは、このようなケースにも役立つのです。

 

まとめ

いかがでしたでしょうか?

今回のファイルも無料でダウンロードできますので、ご自由にお使い下さい。

 

以上、在庫シミュレーションによって、ケース2の場合の保管効率を求めましたが、これが絶対的な結果というわけではありません。

あくまでも、過去のある時点の実績データでシミュレーションしたにすぎないからです。

未来の出荷数は過去データとは当然変わりますので、また違う結果になる可能性が高いのです。

 

では、このシミュレーションは無駄なのかと言うと、そうとも言えません。

未来の出荷傾向は、過去実績と近いものになると考えるのが自然です。

 

例えば、今回のシミュレーションで使った出荷データの平均は110標準偏差は69でした。

未来の出荷データも、日々の出荷数量はいろいろ変動するとしても、平均と標準偏差は似たようなものになる可能性が高いでしょう。

すると、平均110、標準偏差69となるような乱数データを何回も発生させて、そのデータで何十回、何百回とシミュレーションを行ってはどうかというアイデアが出てきます。

そして、その何回もおこなったシミュレーション結果の平均を求めれば、不確定な未来を予測することができるのではないかと考えるのです。

これを行うのがモンテカルロシミュレーションです。

>> 【無料サンプル付き】最小発注数量が保管効率に与える影響をシミュレーション