2017-05-27 155 views
-2

我有一個Excel工作表有兩個日期時間列:開始日期和結束日期。我需要通過確定在08:00和16:30之後工作多少小時和分鐘來計算加班時間。確定是否時間之前或之後特定時間

實例:

COLUMN A    COLUMN B 
1 2017/01/04 16:00  2017/01/04 18:00 
2 2017/01/05 18:00  2017/01/05 21:00 
3 2017/01/08 08:00  2017/01/08 17:00 
4 2017/01/09 07:00  2017/01/09 09:00 

我知道(TEXT(B1-A1,= 「H:MM」))的時間之間的持續時間的計算,但我掙扎,以確定是否一個日期時間是08:00之前或16:30之後。

我在計算中玩過TIMEVALUE(「8:00:00」),TIMEVALUE(「8:00:00 AM」)和TIME(8,00,00),但它沒有工作, 例如= IF(A1 < = TIMEVALUE(「8:00:00 AM」),「是」,「否」)即使對於A4也返回「否」(2017/01/09 07:00)

我是在這個計算和邏輯上掙扎。到目前爲止,我使用,

=IF(MOD(F2,1)<8/24,8/24-MOD(F2,1),0)+IF(MOD(G2,1)>16.5/24,MO‌​D(G2,1)-16.5/24,0) 
+0

到目前爲止我使用= IF(MOD(F2,1)<8/24,8/24-MOD(F2,1),0)+ IF(MOD(G2,1)> 16.5/24 ,MOD(G2,1)-16.5/24,0),但它並沒有解決100%的問題。如果一個事件是06:00 - 07:00,它會返回2:00,但它實際上只應該是1:00(它目前正在檢查開始時間(06:00)和開始工作日(08: 00),並沒有考慮到事件在07:00結束。) – mhorn30

回答

0

棒與處理時間爲時間;只有在數據不正確的情況下(文本是壞數據的時間)纔將時間當作文本來處理,然後只能將時間視爲時間。

要得到的小時和分鐘數前08:00 AM,

=MAX(0, TIME(8, 0, 0)-TIMEVALUE(TEXT(A2, "hh:mm;0;@"))) 

後16:30 AM得到的小時和分鐘數,

=MAX(0, TIMEVALUE(TEXT(B2, "hh:mm;0;@"))-TIME(16, 30, 0)) 

在下面的圖片你可以看到我已經離開了一個組作爲真正的時間,並迫使下面的組成爲文本¹。都返回正確的結果。

enter image description here


¹除非特別格式化否則,數字和日期/時間是右對齊在細胞;文本是左對齊的。

1

試試這個:

=IF(TIMEVALUE(A1)<=TIMEVALUE("8:00:00 AM"),"Yes","No")

+0

哪個Excel版本? – pnuts

+0

任何自2007年以來:https://support.office.com/en-us/article/TIMEVALUE-function-0b615c12-33d8-4431-bf3d-f3eb6d186645。 –

+0

似乎不是我的Excel 2013版本:(。 – pnuts

相關問題