[算表] 客服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