前陣子李家同教授說,「畫流程圖其實是寫程式的第一步,如果你不會畫流程圖,就表示你不知道程式是如何寫出來的,也表示你根本不會設計程式。」 李教授的發言引起很多討論,不過流程圖實際上還滿好用的。
先前因為客訴折讓計算太複雜,計算完每個部門都要再三確認。因此規劃用Excel整理出一個方便的計算的檔案。畫完流程圖去做,果然大家都沒意見。 其實折讓計算的結果,客戶自己也會double check。客戶還曾打電話來問,數字的計算是怎麼進位的? 果然一談到錢,大家都很仔細。
折讓計算,大致步驟如下:
1. 先用批退良率檢查原始批良率,是否需要全批退貨。
2. 如果不需要全批退貨,再以片退良率檢查是否有單片需要退貨。
2.1 如果有需要,扣掉要退的片號,重新再算一次平均良率。
2.2 再回到流程1. ,看是否需要全批退貨。
2.3 確認後再進行下一步驟。
3.進行折讓計算。
畫成流程圖如下:

聲明一下,圖表中之數值資料為示意用,與實際產品無關。
1. 先用批退良率檢查原始批良率,是否需要全批退貨。

使用IF函數進行判斷,當原始批良率小於批退良率時,需全批退貨,H欄中為YES,不需要為NO。
函數如下:
H2=IF($C2>$G2,"YES","NO")
H2: 原始批需批退? , C2 :批退良率 , G2:原始批良率
2. 如果不需要全批退貨,再以片退良率檢查是否有單片需要退貨。

2.1單片良率小於片退良率,需單片退貨。這裡使用IF函數 與COUNTIF函數進行。
前面條件1.全批退貨的情形發生時,退片數量會等於全批數量。
IF函數中當H2(原始批需批退?)=YES時,K2(退片數)= F2(全批片數) 。
當H2(原始批需批退?)=NO時,K2(退片數)= 單片良率小於片退良率的數量。用COUNTIF函數來計算,單片良率小於片退良率有幾片。
函數如下:
K2=IF($H2="YES",$F2,COUNTIF($M2:$AJ2,""&$D2)/COUNTIF($M2:$AJ2,">"&$D2)))
I2:退片刪除後批良率, M2~AJ2 每片產品的良率
H2: 原始批需批退?, F2:片數
D2:片退良率
2.2 再回到流程1. ,看是否需要全批退貨。

再回到流程1.看是否需要全批退貨
IF函數中當全批退貨情形發生時,當H2(原始批需批退?)=YES時,這一步驟就不用進行,
所以用”“表示。
函數如下:
J2=IF($H2="YES","-",(IF($I2>$D2,"NO","YES")))
J2:退片刪除後需批退?, I2:退片刪除後批良率
D2:片退良率
3.進行折讓計算

當J2 (退片刪除後需批退?)=YES時,這一步驟就不用進行,所以用”“表示。
當I2 (退片刪除後需批退?)> B2(折讓良率)時,這一步驟就不用進行,所以用”“表示。折讓計算則適用比例計算。
函數如下:
L2=IF($J2="YES","-",(IF($I2>$B2,"-",(($B2-$I2)*($F2-$K2)/$B2))))
L2:折讓, J2:退片刪除後需批退?
I2:退片刪除後批良率 , B2: 折讓良率
F2:片數, K2:退片
這樣就完成了。