看板 Office 關於我們 聯絡資訊
軟體: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://www.ptt.cc/bbs/Office/M.1552908517.A.B32.html
Tokaku: 空集合,因為6*30=180班,強者2*2*20=80,4*20=80,你還 03/18 23:08
Tokaku: 欠20班 03/18 23:08
Tokaku: 沒事我看錯了,這題可能要用vba暴力破解。 03/18 23:12
soyoso: 個人覺得可以用vba來協助,但不要回什麼"暴力破解"之類的 03/18 23:23
soyoso: ,不然我請問什麼是"暴力破解"?巨集不就是方法、手段嗎? 03/18 23:23
先感謝你們的回覆 但是我不懂VBA,請問我該怎麼做比較好? 謝謝你們
soyoso: 以原文的說明來看,我會以迴圈,接著判斷if抓出這八位內誰 03/19 00:09
soyoso: 是當天可排進去的(這方面要以條件1~4來看),再來抓出後就 03/19 00:09
soyoso: 是隨機rnd或工作表函數randbetween抓出某一位,當然也有可 03/19 00:09
soyoso: 能在排班下會遇到條件1~4都無法滿足的情況,那就要重新執 03/19 00:09
soyoso: 行上述步驟。 03/19 00:09
soyoso: 判斷上誰可以安排上因為條件一的關係,有可能於每個班別隨 03/19 00:18
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
soyoso: 如來看原文條件的話, 03/19 08:32
soyoso: 條件1,三個班別,一天人最少的情況下,可排4人就足夠,那 03/19 08:32
soyoso: 怎麼排?是指任意班別排二位?如果當天5~8位員工都沒有休 03/19 08:32
soyoso: 假的情況呢? 03/19 08:32
soyoso: 條件2,每人各有10天假期,但檔案內除ash和johnny外,任6 03/19 08:32
soyoso: 人並無寫到休假日期,這無法模擬,應該會有規則每天只能有 03/19 08:32
soyoso: 多少人休假之類的。 03/19 08:32
soyoso: 條件4,表格上需要有某些資料,於b欄前增加6欄,以4月份來 03/19 08:32
soyoso: 看的話,就是3/26~3/31人員的班別,這樣才能於4/1時判斷: 03/19 08:32
soyoso: A)前六天的連續出勤情況,B)3/31是否大夜班,這是條件三所 03/19 08:32
soyoso: 寫的不能上完大夜班接早班。 03/19 08:32
soyoso: 以上是個人覺得要先確定的,其他先進要協助的話,也會比較 03/19 08:32
soyoso: 清楚 03/19 08:32
ahwii: 試看看線性規劃 03/19 13:24
ahwii: https://goo.gl/agvPX2 03/19 15:45
ahwii: 限制式的設定有些問題,你比較清楚,自己設看看 03/19 15:46
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