看板 Office 關於我們 聯絡資訊
※ 引述《fuwa ("為什麼"的迷思)》之銘言: : ※ 引述《JieJuen (David)》之銘言: : 排交期工作上需要的,就有些製程有固定的完成的天數,我輸入開始做的交期, : 即可得到想要的完成日期。 了解~感謝 : 比方說,今天2/16,作業需要2天,跳過假日,完成日期就是2/19,以此類推.. : : 抱歉~ 請問"排交期"是什麼 : : 因為根據以下舉例..無法了解 (排日期?) : : 六 一 三 六 四 五 : : 看不出來是如何跳的 : : (如果是1天是2/18(一)可能好一點理解,左邊加上邊的日數 : : 但上邊不是儲存格....) : : excel應該不知道哪天是假日..要輸入告知才行 : : ^^^^^^^^^沒見過此函數^^" : : 排除週日容易 : : B1 : : =A1+IF(WEEKDAY(A1)=7,2,1) : : 或 : : =A1+1+(WEEKDAY(A1)=7) : : 參考 4404 (AID): #17VuvDbF : : 有個函數叫WORKDAY,不一定比較高明, : : 排除"週末、週日以及假日", : : 當然假日是要輸入的。 : 抱歉,已修改.. : 雖然B1=A1+IF(WEEKDAY(A1)=7,2,1)、C1=B1+IF(WEEKDAY(B1)=7,2,2)、 A1=2/19 B1=2/20 C1=2/22 : D1=C1+IF(WEEDAY(C1)=7,2,4)是可以符合 D1=2/26 的確符合 若D1=C1+IF(WEEDAY(C1)=7,2,3) 則D1=2/25 ^ : 不過E1=D1+IF(WEEKDAY(D1)=7,2,4)就不符合了.. : 就比如我在A1輸入2/19,B1、C1、D1應該要跑出2/20、2/22、2/26、3/1 3/3 ?(經2/28) : 不過,用此設定卻是跑出2/20、2/22、2/25、2/29.. 依上面公式→ (26)(3/1) 猜測只是筆誤,不過已經了解 (而且我本來不知為此意,故公式非為此而寫,不用管它了) : 希望大大再解答,謝謝! 自定義的工作日(週六工作,與EXCEL預設不同)本就是一麻煩的問題 網路上可找到寫好的VBA如 (未測試) http://www.pcmag.com.cn/solution/oa/story/200610/51001121.shtml 可加入假日與非假日,所以將所有週六都加入非假日就可用該函數(...) 或修改該VBA,把排除週六、週日的部分改為週日。 也有考慮春節的公式 http://cn.tech.yahoo.com/060302/548/27tur.html 暫時沒有找到直接符合的方法。 檔案 http://i.am.ntu.googlepages.com/WorkdaySat.xls 結果 A B C D E F G H 1 1 2 3 4 5 6 7 2 2/19 2/20 2/22 2/26 3/4 3/10 3/17 3/25 3 週二 週三 週五 週二 週二 週一 週一 週二 4 5 假日 6 2月28日 7 2月29日 說明 B2 {=SMALL(IF((WEEKDAY(區間)<>1)*ISNA(MATCH(區間,假日,0)),區間),B1+1)} B2處 "區間"之定義 =A2-1+ROW(OFFSET($1:$1,,,INT(B1*7/5+COUNT(假日)+7))) ^^^^^^^^^^^^^^^^^^^^^^^^^^ 此處為開始計算時用的天數 比實際日期長即可,故也可用65535之類的大數字 +1 -1 是為了讓0天可以成立 "假日"定義 =Sheet1!$A$6:$A$7 為檢驗假日處理是否正確,假設2/29亦為假日 第三列純粹看第二列為星期幾 適用性 天數不能為負數,可為0、正數 感想 有誤請指正^^ 這題不好寫...頗有集大成之感 XD 用ROW展開日期陣列,用MATCH檢查假日,最後用SMALL(IF())挑第幾天之日期 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.48.133 ※ 編輯: JieJuen 來自: 218.164.48.133 (02/16 05:42) 註:更改B2式使巢狀少一層 ※ 編輯: JieJuen 來自: 122.123.36.62 (02/16 16:32) ※ 編輯: JieJuen 來自: 59.115.161.2 (11/21 21:47)
JieJuen:更新檔案連結.後續見系列 #1Eocn1bU [算表] 排交期的問題 11/21 23:33