Excelでプロセスをシミュレーションする——できることと限界
Excelでは、各ステップの稼働率、待ち時間のKingman近似、乱数を使ったMonte Carlo抽出までは再現できます。再現できない点が三つあります。何日もかけてたまっては解消する待ち行列、ステップの連鎖(あるステップは決して前段で最も遅いステップが通す以上の処理を見ない)、シフトやまとめ実行を含むカレンダーです。行政プロセスの結果を決めるのはまさにこの三点です。概算なら表計算で十分ですが、Business Caseにするなら本格的なイベントシミュレーションを備えたツールが必要です。
Inhaltsverzeichnis
Excelで実際に機能すること
かなりのことが可能です。次の3つの計算を作れば、多くのプロセスプロジェクトより先に進めます。
1. 各ステップの稼働率
ρ = (1日あたりの量 × 処理時間) ÷ (人数 × 実働時間 × 60)
ステップごとに列を作り、降順に並べます。最も高い値がボトルネックです。85%を超えると警告値です。これはプロジェクト全体で最も重要な数値で、計算にかかる時間は10分程度です。
2. 待ち時間の近似
Kingmanの式はセルとして書けます:
Wq ≈ (ρ / (1 − ρ)) × ((ca² + cs²) / 2) × te
ここで ca と cs は変動係数(標準偏差 ÷ 平均)、te は平均処理時間です。安定した入力を持つ単一ステップでは、概算として妥当な大きさを与え、なぜ85%の稼働率が高コストになるかを即座に示します。
3. 手作業のMonte Carlo
シミュレーションした各案件を1行にし、継続時間を ZUFALLSZAHL() で分布から引き、千行作成して QUANTIL() でP10、P50、P90を出します。これにより平均値の代わりに分布が得られます。通常の一点推定に対する大きな前進です。
補助ツール(@RISK、Crystal Ball、ModelRisk)を使えば快適になりますが、原則は変わりません。
三つの壁
壁1:時間に対する待ち行列
Kingmanは定常状態を計算します。表に出ないのは、月初に滞留ができ、それを解消するのに2週間かかるようなケースです。解消には容量そのものではなく、能力と到着の差しか使えないためです。
具体例:年間平均で71%の稼働率、ピーク週で148%のプロセスは、閑散期に9日、ピーク後に46日のリードタイムになります。表は71%を計算して「健全」と言います。
壁2:連鎖
「あるステップは、その前段で最も遅いステップが通す量以上の案件を決して見ません。」
検査が114%にある間は、後続の承認は余裕があるように見えます。承認には制限された量しか届きません。検査を改善すると、承認はフルの量を受けて自らがボトルネックになります。表は各ステップを個別に計算するため、この動きを検出しません。
これが、表に基づくビジネスケースが運用で実現しない最も一般的な理由です:約束した節減は解消したボトルネックで計算される一方、効果は次の箇所に残ります。
壁3:カレンダー
週2回の取りまとめ、承認が平日のみ、代替なしの休暇、シフト引継ぎ。それぞれが待ち時間を生みます。これらは稼働率から生じるものではなく時間のずれから生じるため、式では表せません。
テスト:Excel以上が必要か?
5つの質問。1つでも「はい」なら必要です。
- いずれかのステップで稼働率が80%を超えていますか?
- 入力量は月末、季節性、キャンペーンなどで大きく変動しますか?
- ボトルネックを解消する変更を評価したいですか?
- 取りまとめ、シフト、承認が特定の時間だけに発生しますか?
- 数値に署名する人がいて、確認を求められますか?
5回とも「いいえ」なら、表は適切なツールであり、他は労力に見合わない作業です。
ケース別の代替案
| あなたのケース | 適切な代替 |
|---|---|
| 分散だけ改善すればよく、待ち行列モデルは不要 | Excel向けMonte-Carlo追加(@RISK、Crystal Ball) |
| チームがPythonを書く | SimPy、Salabim、Ciw:オープンソースで完全な事象シミュレーション |
| 設備を設計している | シミュレーションラボ:Arena、Simul8、FlexSim、Simio、Plant Simulation |
| そもそもBPMNでモデル化している | Bizagi Modeler、Signavio、ARIS:エディションごとのシミュレーション機能を確認してください |
| 行政プロセスで、結果を金額で出す必要がある | FlowVisualのような簡潔な意思決定ツール |
実務的な移行
表から持ち出せるものは、見た目より多いです:
- ステップリスト:通常5〜10行で、ちょうどよいサイズです。
- 数量と能力:すでに管理している列です。
- 処理時間:平均ではなく幅として扱ってください。関与者3名に個別に聞き、その回答の幅を取ります。
新たに必要になるのは、入力のピーク係数、カレンダー、中断率です。移行には20分程度見てください。
最後の検証として、Excelでもシミュレータでも共通の手順があります:在庫を数え、1日当たりの処理量で割る(Little's Law)、計算上のリードタイムと比較します。実測値が大きく上回る場合、モデルに待ち行列が欠けています。
Excelに残すべきもの
すべてを移す必要はありません。原価計算(全額原価、数量構成、年換算)は表で管理するのが適切で、コントローラが検証できます。典型的な誤りはProzesskosten in Excelに記載しています。
表に入れるべきでないのは、リードタイムです。リードタイムは待ち行列から生じ、待ち行列こそ表が扱えないものです。
よくある質問
Excelでプロセスをシミュレーションできますか?
ある程度までは可能です。各ステップの稼働率、待ち時間に対するKingman近似、乱数によるMonte Carlo抽出は再現できます。しかし、時間を通じた待ち行列、ステップ間の連鎖、まとめ処理のあるカレンダーは表現できません。まさにこの三つが、事務・管理系プロセスの結果を決定します。
@RISKやCrystal Ballはシミュレーションツールの代替になりますか?
一部の問題は解決します。点の値を分布に変え、P10–P90を出すことができます。しかし、計算の構造は変わりません。追加ツールを使っても、表は処理時間を足し合わせるだけで、占有されたステップの手前で案件が待つことを表現しません。不確実性を伴うコスト計算には適していますが、リードタイムには不十分です。
自分のExcelでの計算が楽観的すぎることに、どのように気づけますか?
Little's Lawで分かります。現在待っている案件数を数え、日次スループットで割ってください。そこで得られるリードタイムが計算結果よりかなり大きければ、表に待ち時間が欠けています。これは実務上、いずれかのステップが80%を超える稼働率で動いているとほぼ必ず起きます。
シミュレーションツールとの最も重要な違いは何ですか?
ステップの連鎖です。表は各ステップを個別に計算しますが、シミュレータは案件を全ステップにわたって流します。したがって表は、ボトルネックの背後のステップが抑制されているため一時的に余裕があるように見えることや、ボトルネック解消後にそのステップ自身がボトルネックになることを認識しません。
単一のプロジェクトに移行する価値はありますか?
意思決定が無視できない金額にかかっている場合は、はい。作業は半日程度で済み、スプレッドシートは体系的に楽観的に算出するからです。概算で、結果に誰も署名する必要がない場合は、いいえ。その場合、スプレッドシートの方が正直です。モデルであるかのように振る舞わないからです。
ご自身のプロセスで計算してみてください。
FlowVisualはこの記事の数値を、お客様の処理量、お客様の処理能力、お客様の利益幅を用いて実行されるモデルにします。
Guide: seven steps to the number- 比較
Simul8の代替:三つのグループとそれぞれがいつ適切か
Simul8の代替を探す人はたいてい三つのうち一つを求めています:コスト削減、学習負担の軽減、あるいは製造向けではなく管理プロセスに合うツール。これらの理由それぞれに別の答えがあります。ある理由については、切り替えは誤った解です。
読書 - 比較
デジタルツインかシミュレーションか?違いは接続です
デジタルツインはデータ接続を伴うシミュレーションモデルです。この接続こそが違いのすべてです。それによって、午後の作業が運用を伴うプロジェクトに変わります。
読書 - 比較
Process MiningかSimulationか? 過去対未来
両者はどちらも「プロセス分析」と呼ばれるため混同されます。これらは反対の問いに答えます。間違った方を選ぶと答えが出た時にしか気づきません。
読書