Board logo

標題: [發問] 帶入對應的日期 [打印本頁]

作者: 52ee24    時間: 2020-5-2 00:14     標題: 帶入對應的日期

各位學長姐好
我想在sheet(WIP)加入交期欄位(圖一)
帶入的規則是
先看預定完成日的日期
越舊的優先出貨
再比對sheet(交期)A欄的料號(圖二)
相同的料號在未滿足交期數量(C欄)前
都帶入B欄的交期
滿足後再帶入下一個日期
例如
(圖一)sheet(WIP)列2
料號0201-ACR-041,數量96。比對sheet(交期)後
sheet(WIP) D2應帶入"2020/5/8"
在還沒滿足sheet(交期)C7 的250數量前
sheet(WIP)裡同為"0201-ACR-041"料號的都帶入"2020/5/8"
以上說明
請各位幫忙了,感恩!!!
作者: hcm19522    時間: 2020-5-2 10:08

{=MIN(IF((交期!$A$2:$A$99=A2)*(SUMIF(A$2:A2,A2,C$2:C2)<=SUMIF(OFFSET(交期!A$2,,,ROW($1:$98)),交期!A$2:A$99,交期!C$2:C$99)),交期!B$2:B$99))
作者: 52ee24    時間: 2020-5-2 12:10

回復 2# hcm19522


感謝hcm19522大
可以帶入了
但沒有出貨交期的料號都會帶入"1900/1/0"
請問怎麼解決??
我想的解決方案是
如果算出是"1900/1/0"的欄位
就帶入sheet(WIP)B欄的日期
這樣要怎麼寫函數??
再麻煩了!!
謝謝
作者: hcm19522    時間: 2020-5-2 14:24

https://blog.xuite.net/hcm19522/twblog/589095734
作者: Andy2483    時間: 2023-6-1 13:22

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

交期表:
[attach]36489[/attach]

WIP表執行前:
[attach]36490[/attach]

WIP表執行結果:
[attach]36491[/attach]


Option Explicit
Sub TEST() '↑
Dim Arr, Brr, Crr, V$, Y, R&, i&, S&, T1$, T3$
Set Y = CreateObject("Scripting.Dictionary")
Brr = Range([交期!C2], [交期!A65536].End(xlUp))
For i = 1 To UBound(Brr): Y(Brr(i, 1)) = Y(Brr(i, 1)) & "/" & i: Next
Crr = Range([WIP!C2], [WIP!A65536].End(xlUp))
ReDim Arr(1 To UBound(Crr), 1 To 1)
For i = 1 To UBound(Crr)
   T1 = Crr(i, 1): T3 = Crr(i, 3)
   If Y(T1) = "" Then Arr(i, 1) = "無訂單": GoTo i01
i00: S = Y(T1 & "|餘量")
   If S <= 0 Then
      V = Mid(Y(T1), InStr(Y(T1), "/") + 1) & "/": R = Val(V)
      If R = 0 Then Arr(i, 1) = "無續單": GoTo i01
      Y(T1) = V: Y(T1 & "|餘量") = Brr(R, 3) + S
      If Y(T1 & "|餘量") <= 0 Then GoTo i00
      Y(T1 & "|交期") = Brr(R, 2)
   End If
   Arr(i, 1) = Y(T1 & "|交期")
   Y(T1 & "|餘量") = Y(T1 & "|餘量") - Crr(i, 3)
i01: Next
[WIP!D2].Resize(UBound(Arr)) = Arr
Set Y = Nothing: Erase Arr, Brr, Crr
End Sub




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