2016-01-23 35 views
-3

我需要減去兩個日期(包括小時和分鐘),但我只需要考慮工作時間。也就是說,我需要在工作日(從莫到Fr)中省略午餐時間(從13到14小時),在18小時之後和第二天的9小時之前的週末和小時。有什麼想法嗎? 我不介意它是Excel公式還是vba代碼。 我有這個公式,但它不會忽略午餐時間:考慮只工作時間vba或Excel減去兩個日期(包括小時和分鐘)

9*(NETWORKDAYS(initial_time;ending_time)-1)-24*((MOD(initial_time;1)-MOD(ending_‌​time;1))) 
+0

你必須嘗試的東西,你不能誰曾經問這個問題的唯一一個。顯示你的努力並解釋什麼不適合你。 – Davesexcel

+0

我有這個公式,但它不會省略午餐時間:9 *(NETWORKDAYS(initial_time; ending_time)-1)-24 *((MOD(initial_time; 1)-MOD(ending_time; 1))) –

回答

1

這裏是一個可能的解決方案。除了開始和結束日期之外,它假定所有人都有8小時工作日。此外,開始日期/時間爲9:00或之後,結束日期/時間爲18:00或更早,並且這兩個都是在工作日。

=(NETWORKDAYS(A2,B2)-2)*8+IF(MOD(A2,1)>0.58333,(TIME(18,0,0)-MOD(A2,1))*24,(TIME(18,0,0)-MOD(A2,1))*24-1)+IF(MOD(B2,1)>0.58333,(MOD(B2,1)-TIME(9,0,0))*24-1,(MOD(B2,1)-TIME(9,0,0))*24) 

.58333相當於14:00。下式: 乘以NETWORKDAYS * 8 +從開始日期/時間小時,直至18:00減去1小時如果開始時間是前從9:00 14:00 +小時,直到結束日期/時間減去1小時如果結束時間爲14:00之後

當然這不會考慮任何假期。

enter image description here

+0

這樣做沒有完美的工作。如果其中一個日期超出範圍9-13或14-18小時,則公式將失敗。例如,如果開始日期是9:00:00,並且結束日期是同一天的13:10:00,則公式將拋出4,17,當它只有4時。我該如何解決這個問題? @ClaytonMorris –

+0

是的。正如我所說的,它假定開始/結束時間在「工作日」內,並假定日期不同,我需要一些樣本數據來進一步瞭解它。 –