質問: excelのvbaでシフト表を作っていますが、詰んでいます。 条件がこんがらがってしまったので、再投稿です。 自動割り振り機能のあるシフト表を作成しています。 (添付画像はb組のデータです。これを元に作成します) 上司の要求は「急遽休みになった人員を補填出来る機能付きで」とのことで... 例として;10日の日勤予定者3名がコロナで出勤不可となった場合、(10日日勤3名)の補充要員として(夜勤)(5連勤になる人)を除いた3人をランダムに選んで呼び出す機能。です。 【絶対条件】 ・休みは各人10日前後(10日±4日までは可) ・各所最低必要人数を割らない。多すぎない事。 最低必要人数<最高限度人数→(a;夜勤日勤/各2人<4人 b;日勤9人<12人/夜勤6人<8人) ・新人にはフラグを付けられる機能追加。フラグがある人員のみで固めない。 ・基本4勤3休ベース。 ・日勤は日勤、夜勤は夜勤で固定。 ・補充人員の呼び出し回数、個人の1ヶ月の出勤日数が極力均等になること。 【基本情報】 a;日勤4人 夜勤4人 計8人 b;日勤14人 夜勤10人 計24人 の人間がいます。今回、サンプルのシュミレーションデータとして使うだけなので 個人の予定や都合等は考慮せず、条件を抑えた上で、均等さのみを重視で自動割り振りしたいです。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 完全文系で、excel経験は中学で時間割を作った以来です...。 シャッフルシフトのコードをコピーしてきて、ランダムに組むところまでは頑張れたのですが、 条件指定やフラグを付けた人員を固めないように自動割り振りするコードなどは、検索しても見つからなかったり、貼り付けても機能しなかったりで行き詰まっています。 自動割り振り機能を生かすまでに1週間かかり...、今回機能追加の締め切りが水曜で、正直もう間に合わなそうです。 どうかお助け下さい。
回答: no1さんの >マクロを組んでもらって、それを使って仕事をしたら、それに関係したもっと面倒な仕事を押し付けられて、 システム屋の世界ではよくあります。 「ちょっと教えて」と言ってきた話が結局、1300行のvbaになってその後のメンテナンスもすべてやらされました。 私は シフト割り当て をcobolで作りました。 が、結局、職長さんが手修正してましたね。