Board logo

標題: [發問] 依需求拆工單生產批量計算 [打印本頁]

作者: landylin    時間: 2014-10-8 19:17     標題: 依需求拆工單生產批量計算

Dear  各位前輩:
            因生管要產品的工單生產經濟批量 ,  以客戶需求來拆工單計劃量 ,與工單入庫日
            且工單需以整批一起入庫考量  ,滿足客戶需求的工單入庫日 ,
             附件為範例的結果 ,
            想破頭 , 不知道要如何設定公式  ,煩請協助 ,謝謝 !
                    
             [attach]19312[/attach]

            [attach]19313[/attach]
作者: hugh0620    時間: 2014-10-9 16:33

本帖最後由 hugh0620 於 2014-10-9 16:37 編輯

回復 1# landylin

     請參考附件,應該可以勉強解決你的問題。
     (因為你的問題沒有很清楚的交代,資料是由出->入還是由入->出,所以採用你入庫為生產入庫,出貨是你要出貨給客人的方式來處理)
     但是這邊有風險唷,就是沒有考量到出貨日與入庫日的部分。
     建議這個問題,用VBA比較好處理一下。

    [attach]19318[/attach]
  [attach]19319[/attach]
作者: landylin    時間: 2014-10-9 20:29

回復 2# hugh0620


   Dear  hugh0620 前輩 :
             謝謝你的協助 ,
             不好意思 ,
             我的需要是參考左邊的客戶需求量與需求日 (出)   ,產生右邊的工單量資料 (入)
             因為有基本工單批量限制 , 所以比較麻煩要算出工單的入庫日期 ,
             不知這樣說明能否看的懂 ...
作者: hugh0620    時間: 2014-10-11 09:38

回復 3# landylin


    我大概了解你要甚麼了~  只不過光靠函數很難達到你要的需求~  (可能我功力低)
    如果是我的處理~ 我會用VBA的方式~ 會來的比較好處理~
    (先在程式碼中處理過(跨列數),再把結果帶出來)

    問題點: (個人的想法)
    1.客戶的需求資料,會是逐筆建立進去,所以,不可能像你提供的是有順序的排列,在用函數這就會增加困難度
       (可以的話拆料項,分開來處理,函數會比較好寫,也比較不會錯誤,在VBA比較沒有這個問題)
    2.依你堤供的作法,雖是批量生產,但最後如果不足批量的話,會是採需求量-INT(需求量/批量)的餘數作為批量
       (是否如此呢??)
作者: landylin    時間: 2014-10-11 14:20

回復 4# hugh0620


Dear  hugh0620 前輩 :
              感謝你的建議 ,
              如你說的用VBA處理較好  ,因我對VBA語法較不熟 ,
              這有點難為了 ,還是謝謝您的幫忙 !
作者: ML089    時間: 2014-10-11 17:31

回復 5# landylin

使用公式是比較複雜
增加依輔助表可以簡化公式

[attach]19322[/attach]
[attach]19323[/attach]

H6 =IF(SUMPRODUCT(($E6=$E$5:$E5)*(0&$H$5:$L5))+SUM($G6:G6)-SUM($G6) >= SUMIF($E$6:$E6,$E6,$F$6),"",MIN(VLOOKUP($E6,$B:$C,2,),SUMIF($E:$E,$E6,$F:$F)-(SUMPRODUCT(($E6=$E$5:$E5)*(0&$H$5:$L5))+SUM($G6:G6)-SUM($G6))))       
先右拉再下拉

公式說明: IF(黃色區>=F欄時, "" , MIN(基本量, 剩餘量))
       

P5 {=IF(ROW(A1)>COUNT($H$6:$L$12),"",INDEX($E:$E,SMALL(IF($H$6:$L$12<>"",ROW($H$6:$L$12)),ROW(A1))))}       

Q6 {=IF(ROW(A1)>COUNT($H$6:$L$12),"",MOD(SMALL(IF($H$6:$L$12<>"",ROW($H$6:$L$12)*10^6+COLUMN($H$6:$L$12)*10^3+$H$6:$L$12),ROW(A1)),10^3))}       

R6 {=IF(ROW(A1)>COUNT($H$6:$L$12),"",INDEX($G:$G,SMALL(IF($H$6:$L$12<>"",ROW($H$6:$L$12)),ROW(A1))))}       


{....} 此為陣列公式,{ }不用輸入,是以CTRL+SHIFT+ENTER參鍵齊按輸入公式所產生的
作者: landylin    時間: 2014-10-11 22:48

回復 6# ML089


    Dear ML089 前輩:
               感謝您的幫助 !




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)