跳到主內容

Excel 排程為什麼一定會失控

Yeee

上一篇談到,排程的價值在於「狀況變了能多快重排」。而今天多數工廠做這件事的工具,是 Excel。

先說清楚:Excel 是好工具。問題不在 Excel 爛,在於它被拿去做一件它結構上做不到的事——用一個記錄工具,做決策工作

Excel 是記錄工具,不是決策工具

Excel 能忠實地存下一張排程表:哪張單、哪台機、幾號做。但它不會排程——它不知道你的機台產能、不知道換線(換模、setup)同一台機從做 A 產品切換到做 B 產品的準備工作:換模具、換料、調機、首件確認。換線期間機台不產出,所以排程會盡量把同類工單排在一起。要多久、不知道料到了沒。它只顯示你手填進去的那個版本,不會告訴你那個版本好不好。

排程需要的是「算」,Excel 給的是「存」。這個落差,就是後面所有失控的根源。

失控原因一:一改全亂

排程最常見的動作是「把一張單往後挪」。在現實裡,這一挪會連帶影響後面所有共用機台的工單、可能讓某台機超載、可能讓某張交期變得來不及。

Excel 沒有「限制」的概念。你把儲存格往後拉,它不會跳出任何警告。連帶影響全靠人腦重算——而人腦一次只能追幾張單,追不動十幾張。於是每次重排,都是一次容易出錯的手動重算。

失控原因二:知識鎖在一個人腦裡

Excel 表上看得到「結果」,看不到「為什麼」。哪些單適合併著做、哪台機換線快、哪個客戶不能得罪——這些排程邏輯在老師傅腦袋裡,Excel 只是他輸出的一張快照。

結果是:他請假,排程就停擺;他離職,知識就跟著走。工廠的排程能力,等於押在一個人身上。

失控原因三:算不動組合

排程本質是組合問題。就算整間工廠只有 20 張工單要決定先後,可能的排法就有第一張單有 20 種選擇,第二張剩 19 種,一路乘到 1。這串連乘寫成 20!,唸「20 階乘」,算出來約 10 的 18 次方。——用一台每秒能試一百萬種的電腦跑,要跑拿 10 的 18 次方種排法除以「每秒試一百萬種」,得 77,147 年。金字塔蓋好到現在以 4,500 年計,只走完其中 5.8%。。從蓋金字塔那年開機,跑到今天連 6% 都跑不完。

這時你可能會想:現在的電腦快多了。沒錯,換一台夠快的機器,這 20 張單確實試得完。但問題從來不是這個數字有多大,是它長得有多快

20 張單多接一張,排法變成 多接一張單,等於把它插進每一種舊排法的每個位置——20 張單有 21 個位置可插,所以排法變 21 倍。後面的倍數是同一個算法,兩個階乘相除:多兩張 462 倍、多五張 640 萬倍、多十張約 10 的 14 次方倍(30! ÷ 20!)。。再多一張,462 倍。多五張,約 640 萬倍——就算電腦每兩年就快一倍,也要 要快到 640 萬倍,得翻倍 22.6 次;每次兩年,就是 45 年。「每兩年快一倍」是給電腦的優待——近年硬體變快的速度已經放緩,放緩只會讓它追得更慢。,才追得上你多接的那五張單。

這跟密碼設得越長越難破解是同一種成長:每多一位,要試的次數就乘上幾十倍,電腦再快都補不回來。工單多接一張,數字是同樣的長法。

所以關鍵不在電腦夠不夠快,在它快不過訂單長大的速度。從 20 張加到 30 張,排法多了約 10 的 14 次方倍;而全世界最快的超級電腦,也只比那台每秒一百萬種的機器快約 最快的超級電腦每秒約 10 的 18 次方次運算,拿它比每秒一百萬次,得 10 的 12 次方倍。而且判斷一種排法好不好,實際上不只花一次運算——這個比法已經偏袒電腦,真實差距只會更大。你多接十張單多出來的排法,比人類目前造得出的最快電腦能多試的還多一百倍。

而這還只是「排順序」。真實工廠還要決定每道工序一張工單從投料到完成要經過的加工步驟,例如裁切、焊接、測試、包裝。每道工序通常不只一台機台做得了,選哪台是排程要決定的事。上哪一台機,數字會再往上翻好幾個數量級。填入你自己工廠的數字看看——特別看最後一行:你們業務多接一張單,排法會變成幾倍。

算算看你工廠的排程組合數

填入你自己的數字,看看要從多少種排法裡挑出最好的那一種。

一次排程要處理幾張

從投料到完工幾道

平均有幾台機可以做

一張工單要備幾種料

總工序數
光是決定工單先後順序
再加上每道工序要上哪台機
合計要考慮的排法
每次重排要檢查的物料齊套條件
業務多接一張單,排法變成

算法:工單排序 N!,機台指派 kN×P 次方,兩者相乘; 多一張單的倍數為 (N+1) 乘上 kP 次方。 這算的是「存在多少種排法」,不是「系統要試幾次」——交期、換線與到料限制不會讓這些 排法消失,只會讓其中絕大多數變成不可行,排程系統正是靠它們成片排除、不逐一試完。 物料種類不計入排列,另計為每次重排要檢查的條件數。

作為對照:SARA 上有客戶一次排程要處理超過 500 張工單、每張 5 到 11 道工序、300 多台機台。要從這個規模裡挑出換線最少、又守得住交期的那一種,靠手填試不出來。

Excel 不會幫你好的組合,它只忠實顯示你的那一個。於是大家排的不是「最好的排程」,是「想得到、填得完的排程」——兩者的差距,就是被白白吃掉的產能。

失控原因四:跟不上變動頻率

現實每天都在變,但人工在 Excel 上重排一次往往要半天。頻率對不上的結果是:大家乾脆不重排,將就用一張已經過期的表,誤差一天天累積,直到交期前一週才爆出來。

排程的價值在「重排得快」,而 Excel 的重排成本,高到讓人不想重排。

一份徵兆清單

如果你的工廠出現這些現象,代表 Excel 已經到極限了:

  • 排程要等某一個特定的人,他不在就排不出來
  • 一張急單進來,往往演變成全廠加班
  • 交期常常是前一週才發現「來不及」
  • 稼動率(產能利用率)機台實際在生產的時間,佔它可用時間的比例。待料、換線、故障停機都會吃掉這個數字。要等月底結算才知道掉了

小結

Excel 排程的失控不是用得不夠認真,是拿記錄工具做決策工作——一改全亂、知識鎖在一人、算不動組合、跟不上變動,這四件事再努力都解不掉。

那 ERP 呢?很多工廠 Excel 撐不住的下一步,是想靠 ERP 接手排程。下一篇就談:為什麼 ERP 給你的派工單,其實也不是排程。

常見問題

我們用 Excel 排程也用了很多年,沒出大問題啊?

沒出大問題,常常是因為「將就用過期的表 + 現場用加班和在製品庫存把誤差吸收掉」。代價沒有消失,只是從交期延遲,轉移成加班費和半成品堆積,比較難被看見。

把 Excel 做得更複雜(加公式、巨集)能解決嗎?

能延後失控,不能避免。巨集仍然不懂「限制衝突」與「重排」,而且會讓排程知識更深地鎖在寫巨集的那個人身上。

相關文章