Board logo

標題: [發問] 完工日期計算 [打印本頁]

作者: ikosnahc    時間: 2011-4-21 17:41     標題: 完工日期計算

各位大大,又想問一個關於日期計算的問題‥

我有一個完工的日子,(例:2011年10月1日),有一個生產天數(如45日),當中要扣減星期六日及假期,請問要怎才可做到? 我知道networkdays 有大約功能但它是計算一星期工作6天的‥而且跟我想要的好像逆向了..??
作者: handmuch    時間: 2011-4-21 18:51

不是很懂你的意思, 用用看workday
作者: Hsieh    時間: 2011-4-21 22:05

回復 1# ikosnahc

不知道你是不是要算完工日期的前45工作天的日期,如果這樣用樓上的建議即可

在此說明一下,NETWORKDAYS或WORKDAY函數都會將星期六、日排除,也就是周休二日
作者: ikosnahc    時間: 2011-4-27 12:14

我是要算完工日期的前45天的日期‥但用workday的話是算周休二日,我只想一星期休息一天 ...
作者: Hsieh    時間: 2011-4-27 20:05

本帖最後由 Hsieh 於 2011-4-27 20:09 編輯

回復 4# ikosnahc


   這問題如果是2010版就可輕易解決
不過你是2002版本沒有WORKDAY.INTL函數
寫個自定義函數來解決[attach]5886[/attach]
  1. Function MyWorkday(star_day, days, weekend, Optional holiday As Range)
  2. '參數說明
  3. 'star_day=開始日期
  4. 'days工作天數
  5. 'weekend',,周末有幾天如周休一日就用1,周休二日就用2
  6. 'holiday假日(儲存格範圍)

  7. Application.Volatile
  8. Set d = CreateObject("Scripting.Dictionary")
  9. If Not IsEmpty(holiday) Then
  10. For Each a In holiday
  11.    d(a.Value) = d.Count
  12. Next
  13. End If
  14. p = Sgn(days)
  15. Do Until s = days
  16. MyWorkday = star_day + i
  17. If Weekday(MyWorkday, 2) <= 7 - weekend Then
  18. n = d.exists(MyWorkday)
  19.    If d.exists(MyWorkday) = False Then s = s + 1 * p
  20. End If
  21. i = i + 1 * p
  22. Loop
  23. End Function
複製代碼





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