倉庫作業者のシフトスケジューリングを簡単に行うためには、1から手作業で作成するのではなく、これまでの経験則を元に自働化してしまうことです。最も良いのは、ITベンダーのスケジューリングシステムを導入することになりますが、最低でも導入費用として数百万円かかってしまいあまり現実的ではありません。そこで、皆様がよく使われているExcelをフル活用し、比較的簡単に行う方法について書いていきます。
また、具体的な作成方法は少々細かい内容になりますので、本ブログではサンプルファイルをダウンロードして頂き、ぜひ体感して頂きたいと思います。サンプルファイルでは、条件設定とボタン操作のみで最初の案ベースまで作成することができます。以下からサンプルファイルをダウンロードして下さい。
【ダウンロードページ】
https://bot.logitan.jp/bot01/logitantool/SchedulingProblem_sample_NRIC.xlsm
※Excel2007以上で動作することが前提となります。ご注意ください。
事前知識
普段、Excelの便利な機能として使っているのは「関数」がほとんどだと思いますが、この仕組みで使うのは「ソルバー(※)」「マクロ」の2つの機能です。特にマクロはプログラムを書かなければいけないため警戒されがちですが、スケジューリング以外にもあらゆる場面で活躍します。具体的には定型の帳票作成や集計の際に、ボタン操作のみで行えるようになります。ぜひこの機会にチャレンジしてみてください。※ソルバーとは、最適な解を自動で求めるための機能で、例えば当日の混載便で10件配送先がある中で、顧客条件を満たしながら効率的に配送できる(=移動距離を最小化した)巡回ルートを求めてくれます。
まずは体感してみよう!
サンプルファイルをダウンロードして頂けましたでしょうか。ダウンロードしましたら、ファイルを開きます。ファイルを開くとマクロの有効化が確認されますので、「有効」にします。
図表1:マクロの有効化
次に、ソルバーはアドイン機能になりますので以下のURLを参考にしてアドインしましょう。1分程度で完了します。
・ソルバーアドイン:http://www.hello-pc.net/howto-excel/solver/
ソルバーがアドインされましたら本題になります。以下の流れに沿って操作しスケジュール案を完成させます。
図表2:シフトスケジュール案作成の流れ
(1)スケジューリングを行うためのパラメータ設定をしよう!
はじめに、パラメータの設定を行います。すでにサンプル用として入力しておりますので、変更して頂く必要はありませんが変更することも可能です。実用的なものを作成するためには、かなりの条件を取り入れる必要がありますが、ここでは必要最低限の条件のみを考慮していますので予めご了承ください。
【前提条件】
・10名の倉庫におけるシフトスケジューリング(2週間)を行うこと
・出勤/欠勤のみをスケジューリングするものとする(勤務時間は条件に含めない)
・各スタッフには、出勤可能な曜日が決まっている(T~Z列、出勤可能:=1、出勤不可:=0)
・各スタッフには、1週間の間で出勤可能な日数上限がある(AA列)
・スケジューリングを行う2週間で、各スタッフの出勤希望日数がある(AB列、AA列の2倍)
・倉庫として、各曜日で必要なスタッフ数の上限と下限がある(30~31行)
上記の前提条件を本ツールでは取り扱っています。ゆえに、各条件に対してパラメータ設定(=数値定義)を行います。具体的には青枠の部分の数値を変更します。変更する際は、実行可能なパラメータに設定する必要がありますのでご注意ください。例えば、スタッフ全員が特定曜日に出勤できないと設定すると、当然ですがスケジューリングできません。
図表3:パラメータ設定
(2)シフトスケジューリング案を作成しよう!
パラメータ設定が完了しましたら、あとはマクロを実行するだけです。VBA(Visual Basic Application)を用いてボタンに処理を埋め込んでいますが細かい内容は本ブログでは割愛します。右上の「シフト案作成」ボタンを押し、処理を開始します。その後、Excelが計算処理を行いますのでしばらく待ちます(長くて3分程度)。
図表4:シフトスケジューリング案作成
処理が終わり結果出力されると、以下の画面が表示されますのでOKボタンを押します。実行可能な解が得られない場合はエラーになりますので、再度パラメータの設定を行ってください(条件が厳しいとエラーになりやすいです)。
図表5:ソルバー実行後の画面(OKを押す)
結果は画面左の「シフトスケジューリング案」に表示されます。赤く「出」と出ている箇所が出勤と判定されたものです。設定したパラメータはすべて満たした状態でシフトスケジューリングを機械的に導出しています。再度パラメータを設定する場合は、右上の「初期化」ボタンを押して初期化してから行います。
図表6:実行結果画面
但し、あくまでも作成されたのは【案】であり、このまま活用することはなかなか困難になります。使い方としては、この案を元に各スタッフの出欠情報を入れ替えし、最終的に完成させます。結果として、倉庫管理者のシフト作成にかかる工数を削減することが可能になります。欠点としては、大規模なスケジュールはExcelの性能上困難になりますので、例えば50名で1ヶ月のシフト組みをおこなう場合は「マクロ」を十分に活用し、小規模な問題に分割して処理します。
まとめ
以上のように、普段使い慣れているExcelの特徴的な機能(ソルバーとマクロ)を使い、倉庫作業スタッフのシフトスケジューリング案を作成できることがお分かりになったかと思います。実際の現場で活用するためには、入出荷予測物量を元に作成する機能や各スタッフの勤務時間帯を考慮してスケジューリングする機能など、様々な条件を検討する必要がありますが、マクロさえ組んでしまえば解決することが出来ます(但し高度な開発スキルが必要)。ゆえに厳密なスケジューリングというよりも、ベースとなるスケジュールを検討するための機能として扱うことにメリットがあると考えます。また、最も重要な作業はパラメータ設定になります。倉庫の必要人時は生産性を正確に取得して良ければいけません。また、精度の高い物量予測が出来る環境であることが必須要件となります。弾力性の高い倉庫運営を行うための指標として、データ取得~活用までの運用を徹底しましょう。
この他にもExcelを使う操作であれば、あらゆる場面で自働化(全部または一部)することができ、最終的に事務作業時間(=コスト)の削減につながります。なかなかプログラムと聞くと牽制しがちですが、まずは触れてみるところから始めてみてはいかがでしょうか。