プロが教えるわが家の防犯対策術!

Excelで自動の当番表で

月曜だけ3人
火曜2人
水曜2人
木曜2人
金曜2人

を9人で回す当番表を作りたいです。
分かりにくい説明で申し訳ないです。

A 回答 (4件)

こういうものを作る場合、自動で、、というときに大事なのは「どういうルールでやるのか?」を決めることです。



なので、先にそれを考え出す必要があります。
アルゴリズムと言います。

機械的に言えば、それぞれを枠で考えてみます。
月1/月2/月3/火1/火2/.../金2 という11枠(座席という概念でもいい)で、それに対して9人が順番通り座っていくということです。
仮に座席をAからのアルファベットとします。
人は1~9までの番号とします。

そうすると、1週目は
12345678912
2週目は
34567891234
3週目は
56789123456
..

となり、週目(で全員がすべての席に座ったことになります。

10週目は1週目のパターンに戻るループということです。

これを絶対的なものとして運用する、、例えば休業日の場合も無視、当番が当日休んだ場合は欠員状態でやる、、というなら、自動化せずとも簡単に9週分の表が手作業でもちょっとの時間でできます。
10週目以降は週の欄だけ書き換えればいいのですし。

規則性があるので、日付を入れれば当日の当番の名前を返すような関数もできます。

それにかかる時間を考えた場合、果たして自動化するために割く時間と比較してどうでしょうか? 考えさえあれば、ワープロでも手書きでもほぼ差異がない程度の物です。

最初に書いたルールで9週間表を手書きでもなんでもいいので作って、運用されてみてください。必ずイレギュラーがありますし、それに対してどういう規則性を持って対応するかを考えることが出てくると思います。

その時その時で行き当たりばったりでなんとなくなルールを作っていってもいいのですが、そうした場合には今度はどのような問題が出てくるのかを想像するようにしてみてください。そうすることで具体化できると思います。

「自動化で」といってもその部分は自動化してくれません。
誰かがそれを考え、実装しなければなりません。

具体的なことを具現化するにあたって、質問すると精度の高い答えが返ってくると思います。
    • good
    • 0

こんにちは



基本的にはNo1様と同じ考えですが、なんでも良いから作りたいというのであれば・・

どこかに9人の名簿(リスト)があるものとします。
・添付図では、仮にG2:G10を名簿としてあります。
・A列に日付(=シリアル値)を入れておきます。
・B2セルに =WEEKDAY(A2,2) の式を入れ、下方にフィルコピー
 (B列は作業列なので、非表示にするか別の列にしても良いです。)
 (添付図では説明上、表示してあります)
・C2セルに
=IFS($B2>5,"",($B2>1)*(COLUMN(A1)>2),"",1,INDEX($G$2:$G$10,MOD(COUNTIF($B$1:$B1,"<6")*2+COUNTIF($B$1:$B1,1)+COLUMN(A1)-1,9)+1))
の式を入力し、E2までフィルコピー。
・さらに、C2:E2を下方にフィルコピー

以上で、とりあえずできるものと思います。
ご希望に合わせた変更や編集はご自由にどうぞ。
「月曜だけ3人火水木金は2人の当番を9人で」の回答画像3
    • good
    • 0

[No.1]へのコメント、


同感ですッ!(^_^)
    • good
    • 0

回答ではありません。


>9人で回す当番表を作りたいです。
作りたいのなら、どうぞお作りなさいな、としか言いようがありません。

当番表を作ってほしいのでしょうね。
しかし作ったところで、実はこんな条件があるのですと、
条件など後出しされるようで・・・。
    • good
    • 4

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