我目前正在尝试制定一个能够跟踪在客户交付上花费了多少时间的功能。员工向我提供他们开始处理交付的日期和时间以及他们完成工作的日期和时间。
我以当前的方式处理这些信息:
现在,我们只在一天中的某些时段工作:我们从7:15开始并在16:45完成工作,从12:00'到12:30还有30分钟的休息时间。 除此之外,我们只在工作日工作,因此不应计算周末任何时间段。
计算休息是否是时间段的一部分很容易处理,我还找到了一种方法来确保如果有一天过去减去14:30,但我无法弄清楚如何制作它以便命令需要多天准备才能计算出来。
一组示例数据(起始 - 结束==>总计(hh:mm))
Mon 23/02/2015 07:45 - Mon 23/02/2015 10:05 ==> 2点20
星期二24/02/2015 11:50 - 星期二24/02/2015 15:35 ==> 03:15(因休息而减去0:30)
Wed 25/02/2015 14:45 - Thu 26/02/2015 07:45 ==> 02:30(由于一天结束时减去14:30)
星期五27/02/2015 16:00 - 星期一02/03/2015 07:45 ==> 01:15(由于周末减去62:30)
Mon 30/03/2015 13:20 - Wed 01/04/2015 12:00 ==> 17:10(扣除29:30:2天1次休息)
前三个案例由我当前的代码处理,但我无法弄清楚如何计算最后两个。
我使用一个额外的列来检查中断是否在两次之间(A3包含= TEXT(A1;“dd / mm / yyyy”)&“12:00”并且要检查的功能是= IF( AND(A2> A3; A3> A1); “0:30”; 0)
第4列包含要检查第二天的数据:A4包含= TEXT(A1 +“24:00”;“dd / mm / yyyy”)&“7:15”,要检查的功能是= IF( A2> A4; “14:30”; 0)
正如您所看到的,当周末过去或需要多天才能完成订单时,这会产生问题。
我真诚地感谢任何花时间研究这个问题的人;我已经绞尽脑汁待了一个星期。
亲切的问候, 丰
答案 0 :(得分:1)
最简单的方法我认为是使用NETWORKDAYS来获取在项目上花费的天数(完成或不完整),然后减去未花费的天数。
我选择将其分解为四个单独的公式。
C2中花费的天数或部分天数(转换为时间)
=NETWORKDAYS(A2,B2)*9/24
从D2的开始日减去的时间
=IF(TIME(HOUR(A2),MINUTE(A2),0)<=TIME(12,0,0),TIME(HOUR(A2),MINUTE(A2),0)-TIME(7,15,0),TIME(HOUR(A2),MINUTE(A2),0)-TIME(7,45,0))
从E2结束日减去的时间
=IF(TIME(HOUR(B2),MINUTE(B2),0)<=TIME(12,0,0),TIME(16,15,0)-TIME(HOUR(B2),MINUTE(B2),0),TIME(16,45,0)-TIME(HOUR(B2),MINUTE(B2),0))
然后结果在F2
=C2-D2-E2
我假设午休时间或非工作时间都不会发生。