作者garyyeng2 (狗棉被)
看板Office
标题[算表] 客服8人轮三班 班表
时间Mon Mar 18 19:28:35 2019
软体: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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.230.109.244
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1552908517.A.B32.html
1F:→ Tokaku: 空集合,因为6*30=180班,强者2*2*20=80,4*20=80,你还 03/18 23:08
2F:→ Tokaku: 欠20班 03/18 23:08
3F:→ Tokaku: 没事我看错了,这题可能要用vba暴力破解。 03/18 23:12
4F:→ soyoso: 个人觉得可以用vba来协助,但不要回什麽"暴力破解"之类的 03/18 23:23
5F:→ soyoso: ,不然我请问什麽是"暴力破解"?巨集不就是方法、手段吗? 03/18 23:23
先感谢你们的回覆
但是我不懂VBA,请问我该怎麽做比较好? 谢谢你们
6F:→ soyoso: 以原文的说明来看,我会以回圈,接着判断if抓出这八位内谁 03/19 00:09
7F:→ soyoso: 是当天可排进去的(这方面要以条件1~4来看),再来抓出後就 03/19 00:09
8F:→ soyoso: 是随机rnd或工作表函数randbetween抓出某一位,当然也有可 03/19 00:09
9F:→ soyoso: 能在排班下会遇到条件1~4都无法满足的情况,那就要重新执 03/19 00:09
10F:→ soyoso: 行上述步骤。 03/19 00:09
11F:→ soyoso: 判断上谁可以安排上因为条件一的关系,有可能於每个班别随 03/19 00:18
12F:→ soyoso: 机抓出後又要排除该同部门的同仁 03/19 00:18
不知道so大愿不愿意示范呢? 因为真的无法的情况下条件4也可以舍弃,再跟公司报加班
附上我原本的班表档案,愿意附上P币以示诚意!
https://drive.google.com/file/d/1tquh7O9ESvs_aHmfis5sZstRrBvwKtUr/view
※ 编辑: garyyeng2 (36.230.109.244), 03/19/2019 01:04:29
13F:→ soyoso: 如来看原文条件的话, 03/19 08:32
14F:→ soyoso: 条件1,三个班别,一天人最少的情况下,可排4人就足够,那 03/19 08:32
15F:→ soyoso: 怎麽排?是指任意班别排二位?如果当天5~8位员工都没有休 03/19 08:32
16F:→ soyoso: 假的情况呢? 03/19 08:32
17F:→ soyoso: 条件2,每人各有10天假期,但档案内除ash和johnny外,任6 03/19 08:32
18F:→ soyoso: 人并无写到休假日期,这无法模拟,应该会有规则每天只能有 03/19 08:32
19F:→ soyoso: 多少人休假之类的。 03/19 08:32
20F:→ soyoso: 条件4,表格上需要有某些资料,於b栏前增加6栏,以4月份来 03/19 08:32
21F:→ soyoso: 看的话,就是3/26~3/31人员的班别,这样才能於4/1时判断: 03/19 08:32
22F:→ soyoso: A)前六天的连续出勤情况,B)3/31是否大夜班,这是条件三所 03/19 08:32
23F:→ soyoso: 写的不能上完大夜班接早班。 03/19 08:32
24F:→ soyoso: 以上是个人觉得要先确定的,其他先进要协助的话,也会比较 03/19 08:32
25F:→ soyoso: 清楚 03/19 08:32
26F:推 ahwii: 试看看线性规划 03/19 13:24
28F:→ ahwii: 限制式的设定有些问题,你比较清楚,自己设看看 03/19 15:46
29F:→ ahwii: 外挂程式下载SOLVER 03/19 15:47
感谢各位大大 尤其是so大
结果我太没慧根,真是对不起各位,楼上ah大的线性规划我也不会使用(有打开来看过了)
只好一天一天慢慢看慢慢核对,把班表排完了,到时候五月的部分可能要慢慢研究了.....
https://i.imgur.com/vJ2Uzjr.jpg
附上最後排完的班表,真的好丑呀.....
有些同事上到三种班,大家几乎都加班一天,我真的排不出来了....
※ 编辑: garyyeng2 (1.160.112.86), 03/20/2019 00:13:38