返回列表 上一主題 發帖

[發問] 自動分配交期

[發問] 自動分配交期

請教各位先進高手,小弟有一個訂單的樞紐分析
日期欄位從H欄開始,截止日期及欄位數量不一定,最後面會有一個加總,有訂單的才會出現日期,非故定間隔

Excel問題-20221001.rar (15.64 KB)
因為希望能夠現性生產,想要將訂單往前平均攤平,往前平均不跨月 (如下~),請問各位是否有比較好的方法,謝謝!




Adam

回復 1# adam2010


    謝謝前輩發表此主題與範例
後學學習過程中練習過排程看板,前輩的需求跟排程看板類似!
當月提前分配,用什麼規則做分配?
1.與上班工時有關嗎?例如:24小時生產!全年無休?或0800~1200 & 1300~1700生產例假日休息?
2.每個成品生產週期有關嗎?例如:每個成品生產週期10分鐘?或生產過程有待料時間?
3.跟成品良率有關嗎?例如:統計數據10個成品約8個是良品?

TOP

本帖最後由 adam2010 於 2022-10-3 20:12 編輯

回復 2# Andy2483
您好~
當月提前分配,用什麼規則做分配?
→ 後續會再針對各料號分佈的站點狀況分配交期,所以如果沒有先將交期作一個攤平動作,有可能出現多批次同日交期,難以區分優先順序,無法達成線性生產的目標,而訂單的放置各客戶有當月最終交貨日的問題,無法根據生管的需求攤平放置,所以才需要此後製
1.與上班工時有關嗎?例如:24小時生產!全年無休?或0800~1200 & 1300~1700生產例假日休息?
→目前公司除了歲修以外基本上是24H生產型態,故不需考慮延時加班的問題
2.每個成品生產週期有關嗎?例如:每個成品生產週期10分鐘?或生產過程有待料時間?
3.跟成品良率有關嗎?例如:統計數據10個成品約8個是良品?
→生產週期是後續排程要考量各料號途程與各站點標準工時、良率等問題分配給各生產批次;各站點生產順序基本上用類似CR值 (critical ratio,計算方法=交期減去目前日期之差額,再除以工期,數值越小表示緊急程度越高,排程優先級高 ) 的方式換算程順序讓產線知道要先產哪些批次
不知道有沒有回答到您的問題?
Adam

TOP

回復 3# adam2010


    謝謝前輩回覆
請前輩先試看看
1.轉置方式是否適合
2.攤平方式是否適用

今天習得 資料轉置,攤平天數
練習陣列
  1. Option Explicit
  2. Sub 資料轉置()
  3. Dim Brr, Crr, c&, i&, j&, x&, xR, R, T, v, Y, Z, xA, Sc&, Sr&
  4. Dim B#, K%, P$, Q, Ra, Rs, Rn, n&, Avgd&, Avgv
  5. Set xA = ActiveSheet.Cells
  6. Set Y = CreateObject("Scripting.Dictionary")
  7. For Each Ra In xA.SpecialCells(2)
  8.    R = Ra.Address
  9.    Rn = IIf(Ra = "總計" And Rn = "" And Rs <> "", Ra.Address, Rn)
  10.    Rs = IIf(Ra = "總計" And Rs = "", Ra.Address, Rs)
  11. Next
  12. Brr = xA.Range(Rs, Rn)
  13. Rs = Brr(1, 8)
  14. Rn = Brr(1, UBound(Brr, 2) - 1)
  15. Sc = Rn - Rs + 1 '天數
  16. Sr = UBound(Brr) - 2 '品號數
  17. ReDim Crr(1 To Sc * Sr, 1 To 13)
  18. For j = 2 To Sr + 1
  19.    For i = 1 To Sc
  20.       n = n + 1
  21.       Crr((j - 2) * Sc + i, 1) = n
  22.       Crr((j - 2) * Sc + i, 2) = Rs + (i - 1)
  23.       Crr((j - 2) * Sc + i, 13) = Brr(j, UBound(Brr, 2))
  24.       For x = 1 To 7
  25.          Crr(n, x + 2) = Brr(j, x)
  26.       Next
  27.       
  28.       For x = 8 To UBound(Brr, 2) - 1
  29.          If Brr(1, x) = Rs + (i - 1) Then
  30.             Crr((j - 2) * Sc + i, 12) = Brr(j, x)
  31.          End If
  32.       Next
  33.    Next
  34. Next
  35. For j = n To 1 Step -1
  36.    If Crr(j, 12) > 0 Then
  37.       For i = j - 1 To 1 Step -1
  38.          If Crr(i, 12) > 0 Or Crr(i, 3) <> Crr(j, 3) Or i = 1 Then
  39.             Avgd = j - i
  40.             If Avgd > 0 Then
  41.                Avgv = Crr(j, 12) / Avgd
  42.             End If
  43.             If Crr(1, 12) = "" And i = 1 Then
  44.                Avgd = j - i + 1
  45.                If Avgd > 0 Then
  46.                   Avgv = Crr(j, 12) / Avgd
  47.                End If
  48.             End If
  49.             Exit For
  50.          End If
  51.       Next
  52.    End If
  53.    Crr(j, 10) = Avgd
  54.    Crr(j, 11) = Avgv
  55.    If j > 1 Then
  56.       Avgd = IIf(Crr(j, 3) = Crr(j - 1, 3), Avgd, 0)
  57.       Avgv = IIf(Crr(j, 3) = Crr(j - 1, 3), Avgv, 0)
  58.    End If
  59. Next
  60. If Crr(1, 12) <> "" Then
  61.    Crr(1, 10) = 1
  62.    Crr(1, 11) = Crr(1, 12)
  63. End If
  64. Workbooks.Add
  65. [A1].Resize(1, 13) = Split("NO/日期/料號/吋/摻/可用庫存/1300/" _
  66. & "在制量/Var/攤平天數/攤平數量/訂單數量/總計", "/")
  67. [A2].Resize(UBound(Crr), UBound(Crr, 2)) = Crr
  68. Cells.Columns.AutoFit
  69. Cells.Rows.AutoFit
  70. Cells.Columns.AutoFit
  71. [2:2].Select
  72. ActiveWindow.FreezePanes = True
  73. [1:1].AutoFilter
  74. [A1].Select
  75. Cells.Borders.LineStyle = xlContinuous
  76. End Sub
複製代碼

TOP

本帖最後由 adam2010 於 2022-10-4 21:00 編輯

回復 4# Andy2483
感謝Andy2483大大鼎力相助,已經有攤平的效果,不過因為後續接續公司排程系統,上傳需要原來的樞紐格式
Sorry~之前沒有說清楚,不過還是很感謝您的協助~
原始資料~

執行後~
1.A~G欄不變
2.將起訖日期中間的日期填滿(黃底部分)
2.將訂單平均往前攤平(四捨五入取整數)但不可跨月
如下~

Excel問題-20221004-2.jpg (16.19 KB)

Excel問題-20221004-2.jpg

Excel問題-20221004.rar (12.02 KB)

Adam

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

回復 5# adam2010


    謝謝前輩回覆
請前輩試看看
今天習得亂數帶入輔助檢測
練習陣列與字典
Excel參考-20221007.zip (43.85 KB)

攤平前:


顯示攤平總後誤差量:


往前攤平結果:

TOP

回復 5# adam2010


    輔助檢測正確性說明如下:
另設一按鈕,輔助檢測程式碼執行結果的正確性:


亂數帶入表格,檢測100次的結果:


呈現最後一筆亂數帶入表格,檢測的結果

TOP

回復 6# hcm19522


    感謝hcm19522大提供的公式,前幾天進不了站線在才看到,謝謝~
Adam

TOP

回復 7# Andy2483

感謝Andy2483大提供的巨集,前幾天進不來現在才看到,實在太感謝您了
其實因為後續生產出來的數量會因為良率預估與實際良率的落差而會跟訂單量有些許落差,
所以四捨五入的少許誤差是可以忽略的,看各產業的OTD計算方式,有的一定要交足有的容許一定的誤差量就算達成
自製銷售與代工也會有所不同
Adam

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題