[[20240717130651]] 『A:3名 B:3名ずつの1か月のシフトについて』(中村) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『A:3名 B:3名ずつの1か月のシフトについて』(中村)

人数は全部で15名
1日あたりのシフトが
Aグループ 3名
Bグループ 3名の割り振りになります

たとえば
7/1 Aグループ 1・4・7  Bグループ 5・10・14
7/2 Aグループ 1・3・8  Bグループ 9・11・15
7/3 Aグループ 5・6・12 Bグループ 2・13・14
7/4 Aグループ 2・9・10 Bグループ 3・4・8 
以下7/31まで毎日

規則性としては、
・AグループとBグループは必ず違うメンバー
・最終的に1〜15までの人たちの1か月のシフトの出席日数が不公平にならな  いこと
・なるべくなら毎回同じメンバー同士にならないこと
・7/1と7/2のように連続で1がシフトに入っていてもOK

このような場合、どんな関数を使えば良いのでしょうか。
よろしくお願いします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


以下、ChatGPTの回答

手順

1.メンバーリストの準備

シートのA1:A15に15名のメンバーの名前または番号を入力します。
シートのB1:B31に7月1日から7月31日までの日付を入力します。

2.ランダムな並び替え

シートのC1:C15に=RAND()を入力し、15名分コピーします。これはメンバーのランダムな順序を生成します。
シートのD1:D15に次の式を入力し、ランダムな順序でメンバーを並べ替えます。
=INDEX($A$1:$A$15, RANK($C1, $C$1:$C$15))

3.シフト表の作成

E1:G31にAグループのシフト、H1:J31にBグループのシフトを入力する場所を確保します。

シフトの割り当て

次に、Excel関数を使用して自動的にシフトを割り当てる手順を説明します。

Aグループのシフト割り当て

E1に次の式を入力し、E1:E31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()-2, 15)+1)

F1に次の式を入力し、F1:F31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()+3, 15)+1)

G1に次の式を入力し、G1:G31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()+8, 15)+1)

Bグループのシフト割り当て

H1に次の式を入力し、H1:H31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()+1, 15)+1)

I1に次の式を入力し、I1:I31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()+6, 15)+1)

J1に次の式を入力し、J1:J31にコピーします。
=INDEX($D$1:$D$15, MOD(ROW()+11, 15)+1)

条件はなんとなくクリアできてるので、あとは目で見て微調整ぐらいですかねー。

(サーブ) 2024/07/17(水) 16:31:54


サーブ様
イケそうな気がします。
ありがとうございました!
助かりました
(中村) 2024/07/17(水) 17:35:46

 >条件はなんとなくクリアできてるので、あとは目で見て微調整ぐらいですかねー。

 ChatGPTの回答は、この条件を完全に無視しているように見えますが、問題なかったですか?
          ↓
 >・なるべくなら毎回同じメンバー同士にならないこと

(半平太) 2024/07/17(水) 17:37:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.