dポイントプレゼントキャンペーン実施中!

エクセルでの組み合わせについての質問です。
画像のような24人の17日間の献立当番を決めるマトリクスがあり、
日々の数値が最も均等になるような配置を教えて頂ければ幸甚です。以下、いくつか条件があります。

①休みの数は1日目~17日目までで『必ず』合計6日にする。
②17日目の最終日は必ず休みに固定。
③1日目か2日目か3日目までに休みを置く必要がない。
④一人の朝ご飯と夜ご飯の回数は6日:5日か5日:6日と均等にする。
⑤朝ご飯と夜ご飯が4日間続くと休みを二日『必ず』置く(朝1日、夜3日など分かれていても)。
⑥17日間の間に必ず一回は休みを二日連続で置く。
⑦休みは3日続いてはいけない。
⑧休みが2日間で置かれるケースは2回以上あってもよい。
⑨最終日の休みの前は休み以外(早・遅)の4日連続はおけない。
⑩夜ご飯の一日後ろに朝ご飯はおけない。
⑪休みを一日はさんでも夜ご飯の後ろに朝ご飯はおけない。
⑫休みを二日はさめば夜ご飯のあとに朝ご飯をおける。
⑬1日目と2日目、16日目と17日目の休みは連続できる。


以上の条件がある中で、
1日目から16日目までの休みが均等かつ、
一日の朝ご飯と夜ご飯の数も均等になる置き方がありますでしょうか?
但し、全て均等になる必要はなく多少の差や山谷が出ても問題ありません。

また③の条件に関しまして、
・1日目が必ず休みになる場合 ・1日目か2日目が必ず休みになる場合 ・1日目か2日目か3日目が必ず休みになる場合
と異なる条件になった場合も考えて頂けますでしょうか。(欲しい回答が4つある)


何卒、よろしくお願い致します。


こちらはあくまでも17日間の周期ではなく、17日間が終わればいったん終了となります。

「献立当番のスケジュール」の質問画像

質問者からの補足コメント

  • yambejp様

    早速のレスポンス誠にありがとうございます!!
    補足です。

    一日目休み固定のパターン
      1日目、 2日目、 3日目、 ⇒ 16日目、 17日目 休数 朝数 夜数
    1人目、 休み、 夜ご飯、 夜ご飯、 ⇒ 夜ご飯、 休み 5 6 5
    2人目、 休み、 夜ご飯、 夜ご飯、 ⇒ 夜ご飯、 休み 5 6 5
    3人目、 休み、 夜ご飯、 夜ご飯、 ⇒ 夜ご飯、 休み 5 6 5

    23人目、夜ご飯、 休み、 休み、 ⇒ 夜ご飯、 休み 5 5 6
    24人目、夜ご飯、 休み、 休み、 ⇒ 夜ご飯、 休み 5 5 6

    休数 24 8 8 ⇒8 8 24
    朝数 0 8 8 ⇒8 8 0
    夜数 0 8 8 ⇒8 8 0

    質問の意図は何かで表を作ることです。
    ロジックは分かれば嬉しいですが結果だけでも問題ございません。
    どうぞよろしくお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/03/24 05:51
  • yambejp様

    有難うございます!!
    ぴったり、これは本当に凄いですね。。。

    あと本文に書いております残りの3パターンも平準化可能でしょうか?
    (一日目に必ず休みを置く場合、二日目までに必ず休みを一日置く場合、三日目までに必ず休みを
    一日置く場合)

    回答2でおっしゃいていた、
    どこかで誰も休みをとらない日は上の条件を満たす場合に必ず発生してしまう
    のは致し方ないですが、できれば
    休み・朝・夜が7人や9人になる方(6人や10人もOK)を優先して頂ければ幸いです。
    休みの人数が減った場合は朝と夜の差が最少になればなお良しです。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/03/24 22:19

A 回答 (4件)

正直今回の回答はお礼がつく内容でなく


本来プログラムで処理しなければこのカテゴリの回答としては未解決です
力不足ですみません

いまのところパズル的なアプローチしか今のところ見いだせないので
別の方の革新的なアイディアによる回答を期待してください。
    • good
    • 0
この回答へのお礼

yambejp様

とんでもございません。
親身にご相談に乗っていただきまして本当に有難うございます。

お礼日時:2015/03/25 11:33

なんとプログラムでできないか試してみましたがうまくいかないので


ざっくり以下の要領で埋めてみました

→24人を全員バラバラは煩雑すぎるので、6ブロック4人ずつにまとめた
 (実際には4ブロック6人ずつでやったらできなかったので)
→とりあえず休みをざっとうめてみた
→連休の前は晩、連休後は朝で一度うめてみて、矛盾が出る箇所を修正した
→あとはナンクロ的な仮定して矛盾したらとりけしの繰り返し

そうじてこんな感じ
晩|休|休|朝|朝|晩|休|晩|晩|晩|晩|休|休|朝|朝|朝|休
晩|晩|晩|休|休|朝|朝|朝|休|晩|晩|晩|休|休|朝|朝|休
晩|晩|晩|晩|休|休|朝|朝|朝|休|朝|朝|朝|休|休|晩|休
朝|朝|休|朝|晩|晩|休|休|朝|朝|朝|休|晩|晩|休|晩|休
朝|朝|朝|休|朝|朝|晩|休|休|朝|休|晩|晩|晩|晩|休|休
朝|休|朝|晩|晩|休|晩|晩|晩|休|休|朝|朝|朝|晩|休|休

1行ごとに4名ずつわりあてればOK
この回答への補足あり
    • good
    • 0

ざっと計算してみましたが条件が足りなくないかも


(計算ちがったらすみません)

仮にマトリクス上に単純計算すると、24名中、朝=8,晩=8,休=8で振る場合
休みの合計は17日×8=136人日ですが
個人別に6日休み×24名ですと144人日となります。

したがって、どこかでだれも休みをとらない日が最低8日あるか
7日(もしくはそれ以上)休む人が8人いないと計算があわないです
ある日は朝or夜が=9人でもOKとか何らかの条件提示が必要では?
    • good
    • 0

あいにくこの掲示板の画像は質が粗いのでいまいち最終形がわかりません。


ざっとカンマ区切りテキストかなにかで補足でデータを貼りつけてもらった方が
良いと思います。

また質問の意図としてはVBAか何かで集計表自体をつくる
(およびそのロジックを提示する)ということでよろしいですね?
この回答への補足あり
    • good
    • 0

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