アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっています。
今回の質問は難しいと思うのですが、是非、ご協力を頂ければと存じます。

では、本題ですが、あるお店にAからEまでの5人の人が働いているとします。
その5人で1ヶ月間(31日として)、一日3人で仕事を行うためにボタン一つでランダムにシフトが組めるような表を作りたいのです。
加えて、Aさんは火曜日が仕事が出来ない、Bさんは5日以上の連続勤務は無理等といった条件付きで…。

如何でしょうか?
別に例えるなら、ボタン一つで野球チームの打順が決まるような感じです。

こんな問題、到底、私のような素人には無理な事とは承知しています。
だからこそ、皆様のお力添えを頂ければと思っています。どうぞ、宜しくお願い致します。

A 回答 (3件)

> Aさんは火曜日が仕事が出来ない、


> Bさんは5日以上の連続勤務は無理

この辺の条件を数式化するのが難しいですね。
加えて、条件によっては絶対に割り振りできない場合も考えられます。
手作業の場合は「Aさんに1日だけなんとか火曜日に出てもらう」事で解決できるような場合も、コンピュータは延々と存在しない答えを探しつづけるような事もありえます。

・初期状態として完全にランダムでシフト表を作成
・手動でのシフト表の変更に応じて、各条件をチェック

などで、勤務表の作成を補助するという程度のものならば、可能かも知れません。

--
または、以下のカテゴリからシフト勤務を扱うソフトを探す方が良いかも。

Windows95/98/Me>ビジネス>人事・給与
http://www.vector.co.jp/vpack/filearea/win95/bus …

しふと組む蔵君for24H
http://www.vector.co.jp/soft/win95/business/se23 …
出番でござる for Access 97
http://www.vector.co.jp/soft/win95/business/se10 …
    • good
    • 0

組み合わせ問題は、人数が増えると、とたんに場合の数が増えます。

そこで質問のケースですが、どれほど実際のケースを反映しているのか判りません。
(1)本当にワーカーは全部で5人?。本当に勤務は3人。?
(2)曜日を避けて欲しい人はAさんだけ?
(3)連続勤務が出来ないのはBさんだけ?
多分違うでしょう。
また5人はある程度1月スパンに同じ労働日数にならないと文句が出るでしょう(この条件は書いてないが相当重い問題では?)。
そう言うことで、このタイプの問題は、エクセルの関数式は勿論、手続き型の言語では処理しがたい問題だと思います。5人のうち3人が本当なら、ABCDEより3つとる組み合わせを全て数え上げて組みを作り、乱数によってその組み合わせを、実際の日に当てはめて、Aさんが火曜日(VBAのWEEKDAY関数利用)になれば、その組み合わせを捨てて次をとるを行い、さらに過去5日Bさんが連続してないかチェックし、連続していれば捨てて次の組み合わせを取る。
ただし、こう言うタイプの問題は、数学的な理論の裏付けのあるロジックでやらないとダメだと思うので、数学のカテゴリで訓練を積んだ方に聞いて見るのが良いのではないでしょうか。5人の中から3人選び、月中約22日(土日休みなら22組み、毎日営業なら約30組)の5人の出現回数がほぼ揃うのはどう考えたらよいかと言う問題に言いかえられるでしょう。
    • good
    • 0

なるほど手ごわいですね。



ExcelもVBAというVisualBasicとよくにた機能を持つ言語を利用できます。
ですからやり方によっては可能ですが、それが出来上がるまでお付き合い
することは難しいですね。

こちらのサイトをご紹介しますので、まずご覧ください。
本屋にも入門書がたくさんありますから1冊くらいは手許においた方が
いいかと思います。がんばってください。
http://www.geocities.jp/ktaji99/excel/VBAlearnin …
http://www.sanynet.ne.jp/~awa/excelvba/kouza.html

参考URL:http://www.geocities.jp/ktaji99/excel/VBAlearning.html,http://www.sanynet.ne.jp/~awa/excelvba/kouza.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!