我在这里的订单很高,
我正在尝试为3个团队在今年剩余时间内制定轮换卫生清单。
我希望工作表根据工作的一周中的几天自动分配团队成员的工作区域(房间; B,C,D列)。
第1团队的成员只能分配到周一至周五的任何会议室 第4小组的成员只能被分配任何房间星期六,并且是星期日的首选小组 只能为第5小组的成员分配任何周三的房间,并且是星期六的首选小组。
A列中的每一天在每个区域(房间)将有3个(B-D列)不同的员工ID。
我希望工作表能使每个人都均匀分布,并让每个人都能工作所有3套房间。
作为一个附加的挑战,我希望能够在每个团队之间添加或删除员工ID,并可以自动调整工作表。
B列中有一个公式,该公式可以显示我要执行的操作,但这是来自其他人的工作,因此我无法适应它。基本上,B,C和D列都需要公式。
这是单元格B3中的公式,我只是将其复制下来
=IF(OR(WEEKDAY($A2)=1,WEEKDAY($A2)=7),IFERROR(INDEX(Team1,MOD(MATCH(OFFSET(B2,IF(WEEKDAY($A2)=5,-5,-5),0),Team1,0),$U$2)+1),$G$2),IFERROR(INDEX(Team1,MOD(MATCH(OFFSET(B2,IF(WEEKDAY($A2)=2,-3,-1),0),Team1,0),$U$2)+1),$G$1))
使用命名范围将团队分为3个单独的列。我不确定如何键入上述公式以包括所有三个团队,以及如何仅在周六至周二使用团队4,仅在周三至周六使用团队5和仅在周一至周五使用团队1。
我真的希望我可以上传此表,以供大家查看。
感谢我能提供的任何帮助!
答案 0 :(得分:0)
从另一个论坛获得答案,并且工作完美。.不需要VBA
此提案对团队的安排进行了一些更改 表。该提案还添加了一个可以移动的帮助列(E) 和/或出于美学目的而隐藏,并使用以下内容填充:
=IF(WEEKDAY(A2,16)=1,IF(COUNTIFS(E$1:E1,4)< COUNTIFS(E$1:E1,5),4,5),IF(WEEKDAY(A2,16)=2,IF(COUNTIFS(E$1:E1,5)< COUNTIFS(E$1:E1,4),5,4),IF(WEEKDAY(A2,16)<=4,IF(COUNTIFS(E$1:E1,4)< COUNTIFS(E$1:E1,1),4,1),IF(COUNTIFS(E$1:E1,5)< COUNTIFS(E$1:E1,1),5,1))))
使用以下命令填充“房间4”列:
=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,COUNTIFS(I$5:M$22,E2),MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))),IF(E2=1,1,IF(E2=4,3,5)))
“ 5&6房间”列的填充方式为:
=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,0,MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2)))+1,IF(E2=1,1,IF(E2=4,3,5)))
使用以下命令填充“房间7&8”列:
=INDEX(H$5:L$22,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=COUNTIFS(I$5:M$22,E2)-1,1,IF(MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2))=0,0,MOD(COUNTIFS(E$2:E2,E2)+2*(COUNTIFS(E$2:E2,E2)-1),COUNTIFS(I$5:M$22,E2)))+2),IF(E2=1,1,IF(E2=4,3,5)))