确定时间是在特定时间之前还是之后

时间:2017-05-27 18:27:15

标签: excel datetime

我有一张包含两个日期时间列的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(&#34; 8:00:00&#34;),TIMEVALUE(&#34; 8:00:00 AM&#34;)和TIME(8,00, 00)在我的计算中,但它不起作用,  例如= IF(A1 <= TIMEVALUE(&#34; 8:00:00 AM&#34;),&#34;是&#34;,&#34;否&#34;)返回&#34;否&#34;即使是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)

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分: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

¹除非另有特殊格式,否则数字和日期/时间在单元格中右对齐;文字是左对齐的。