Excel統計時間段內工做日間的時間差

遇到同事的一個問題,求某段時間內除雙休日、節假日之外的時間差,格式是[h]:mm(xx小時xx分)。這個要求是用在統計多少個工做日完成的延遲上,或者以此來統計及時率。html

爲此設計了一個表格以下圖,設定了整個第二行2:2,存放國定假日。
A5:A8爲條件區域,可能在某個時間段內會遇到的情況。
依據A列的條件,在B5:C8輸入「起始時間」與「結束時間」 做爲案例。
在D5:D8間人工統計除節假日外的時間差。(節假日包括雙休日與國定假日)

004134692.jpg


而後在E5:E8依據A列條件單獨計算。
004219674.jpg

此處主要利用了NETWORKDAYS函數,計算除節假日外的工做日有多少天。
語法: NETWORKDAYS(start_date, end_date, [holidays])
start_date:起始時間
end_date:結束時間
[holidays]:人工設定的除雙休日外的假日,如每一年的國慶節。若統計的時間段內無相關人爲假日也能夠省略。
須要統計的時間格式是[h]:mm(xx小時xx分),輸入以下公式:
一、假期開始,工做日結束: =NETWORKDAYS(B5,C5, 2:2 )+(C5-INT(C5))-1
(1) NETWORKDAYS(B5,C5, 2:2 ):2:2即第二行爲國定假日區域, 求得兩時間之間工做日天數爲1
(2) (C5-INT(C5)):求得結束時間當天所用時間,得出的時間爲10:00。
(3) -1 :由於前面Networkdays函數求得天數爲1個工做日,但當天僅用了10:00延遲。因此須要-1。
二、假期開始,假期結束: =0
三、工做日開始,工做日結束: =C7-B7+NETWORKDAYS(B7,C7,$2:$2)-2
四、工做日開始,假期結束: =1-(B8-INT(B8))+NETWORKDAYS(B8,C8,$2:$2)-2

單獨的公式完成後,利用IF函數對幾個條件進行嵌套,能夠先直接引用E5到E8單元格,以後再填入這些條件公式。
最終F5中的公式爲:
=IF(NETWORKDAYS(B5,B5,$2:$2)=0,IF(NETWORKDAYS(C5,C5,$2:$2)=0,0,NETWORKDAYS(B5,C5,2:2)+(C5-INT(C5))-1),IF(NETWORKDAYS(C5,C5,$2:$2)=0,1-(B5-INT(B5))+NETWORKDAYS(B5,C5,$2:$2)-2,C5-B5+NETWORKDAYS(B5,C5,$2:$2)-2))
004236250.jpg

拖拽填充公式至F5:F8區域,計算完成。
相關文章
相關標籤/搜索