我有一张包含两个日期时间列的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,MOD(G2,1)-16.5/24,0)
答案 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))
在下图中,您可以看到我已将一个组保留为真实时间,并强制将以下组作为文本¹时间。两者都返回正确的结果。
¹除非另有特殊格式,否则数字和日期/时间在单元格中右对齐;文字是左对齐的。