[算表] 客服8人轮三班 班表

楼主: garyyeng2 (狗棉被)   2019-03-18 19:28:35
软件:Excel
版本:2007
https://i.imgur.com/PYuOGUN.png
更新附上班表档案
https://drive.google.com/file/d/1tquh7O9ESvs_aHmfis5sZstRrBvwKtUr/view
过完年四个人离职,现在剩下八人,班表变得超难排
想了几个小时都排不出来
共有早班、晚班、夜班 三种
蓝色部门4人+红色部门4人 共8人
班别    代称    上班时间
早班    早    07:00~15:00
小夜班   晚    15:00~23:00
大夜班   夜  隔日23:00~07:00(例:4/15夜班,需在4/14的23:00上班)
条件一:每天早班、晚班、夜班,蓝色部门跟红色部门至少要各有一人上班
但有两个人例外:
Ash上班时,同时段红色部门的同仁可不用上班
(例:Ash 4/1上早班,红色部门4/1早班就不用排人)
Johnny上班时,同时段蓝色部门的同仁可不用上班
(例:Johnny 4/1上晚班,蓝色部门4/1晚班就不用排人)
也就是当一天人最少的情况下,可排4人就足够,只有Ash跟Johnny可以这样。
条件二:Jack 4/1-4/7的休假不能调整,每人4月各有10天假期随意安排。
条件三:同一人不能上完大夜班接早班,其他条件都可以。
条件四:最多连续上六天,不能连上七天班。
Edward、Allen 3月底已经连上四天、Mark 3月底已经连上五天,Jack月初又连休.......
实在排不出来...,请问是否有什么方法或函数可以写得出来?
如果这题无解,可以先从条件四删除,那应该就可以了吧?
谢谢大家
另外我在对岸论坛找到的自动排班Excel档案无法使用,
会显示 阵列索引超出范围,我在想是不是因为对岸是简体字开发的关系,
可否有人能将它改成可使用的状态,这样也许会造福许多人。
https://drive.google.com/file/d/1S6EEe4GJfkNTtGwxeaTveLWsGrbn0D_r/view
作者: Tokaku (慵懒猫的下午)   2019-03-18 23:08:00
空集合,因为6*30=180班,强者2*2*20=80,4*20=80,你还欠20班没事我看错了,这题可能要用vba暴力破解。
作者: soyoso (我是耀宗)   2019-03-18 23:23:00
个人觉得可以用vba来协助,但不要回什么"暴力破解"之类的,不然我请问什么是"暴力破解"?宏不就是方法、手段吗?以原文的说明来看,我会以循环,接着判断if抓出这八位内谁是当天可排进去的(这方面要以条件1~4来看),再来抓出后就是随机rnd或工作表函数randbetween抓出某一位,当然也有可能在排班下会遇到条件1~4都无法满足的情况,那就要重新执行上述步骤。判断上谁可以安排上因为条件一的关系,有可能于每个班别随机抓出后又要排除该同部门的同仁如来看原文条件的话,条件1,三个班别,一天人最少的情况下,可排4人就足够,那怎么排?是指任意班别排二位?如果当天5~8位员工都没有休假的情况呢?条件2,每人各有10天假期,但档案内除ash和johnny外,任6人并无写到休假日期,这无法模拟,应该会有规则每天只能有多少人休假之类的。条件4,表格上需要有某些资料,于b栏前增加6栏,以4月份来看的话,就是3/26~3/31人员的班别,这样才能于4/1时判断:A)前六天的连续出勤情况,B)3/31是否大夜班,这是条件三所写的不能上完大夜班接早班。以上是个人觉得要先确定的,其他先进要协助的话,也会比较清楚
作者: ahwii (ahwii)   2019-03-19 13:24:00
试看看线性规划https://goo.gl/agvPX2限制式的设定有些问题,你比较清楚,自己设看看外挂程式下载SOLVER

Links booklink

Contact Us: admin [ a t ] ucptt.com