Excel formula Excel Forumula-将工作时间添加到日期和时间

Excel formula Excel Forumula-将工作时间添加到日期和时间,excel-formula,Excel Formula,我目前正在使用forumla将工作时间添加到开始日期和时间: =WORKDAY(A1,INT(B1/8.5)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),1,0),$D$1:$D$21)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,

我目前正在使用forumla将工作时间添加到开始日期和时间:

=WORKDAY(A1,INT(B1/8.5)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),1,0),$D$1:$D$21)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),TIME(9,0,0)+TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)-TIME(17,30,0),TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0))
A1单元是开始日期,B1单元是要添加的小时数,D列是银行假日

到目前为止,这非常有效,但是如果开始日期和时间在9:00到17:30之间,那么它会显示错误的日期和时间

这有什么原因吗?我能做些什么来克服这个问题

例如:

        A               B             C                   D
24/08/2019 10:31:17    16      28/08/2019 09:31       26/08/2019   

列C是forumla所在的位置,在本例中,仅添加9小时。列A的日期记录在工作时间以外的星期六。正确的日期和时间应为2019年8月28日16:30,因为它将在周一的银行假期后开始计算。

我自己使用两组公式解决了这个问题,具体取决于日期和时间是否在工作时间内:

=IF(AND(WEEKDAY(A1,2)<6,HOUR(A1)>9,HOUR(A1)<17.5,COUNTIF(D1:D21,DATE(YEAR(A1),MONTH(A1),DAY(A1)))=0),WORKDAY(A1,INT(B1/8.5)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),1,0),$D$1:$D$21)+IF(TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),TIME(9,0,0)+TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)-TIME(17,30,0),TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)),WORKDAY(WORKDAY(A1,1,D1:D21)+TIME(9,0,0),INT(B1/8.5)+IF(TIME(HOUR(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),MINUTE(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),SECOND(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),1,0),$D$1:$D$21)+IF(TIME(HOUR(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),MINUTE(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),SECOND(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)>TIME(17,30,0),TIME(9,0,0)+TIME(HOUR(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),MINUTE(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),SECOND(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)-TIME(17,30,0),TIME(HOUR(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),MINUTE(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)),SECOND(WORKDAY(A1,1,D1:D21)+TIME(9,0,0)))+TIME(MOD(B1,8.5),MOD(MOD(B1,8.5),1)*60,0)))
(代码)若(及)若(及)若(及)若(及)若(及)若(及)若(及)若(及)若(及)(及)若(及)若(及(及)(及)及(及)周日(1,2(1,2)2)9,1,1,1,1,1,(1,2)9,1,1,1,(1,美元)元元1::$1:$1:::$21:::::::::::::::::::::$21元元元)若(及)若)若(及)若(及)若)若(及(及)(及)(及)(及)若)若(及)(及)(及)(及)若)若(及)(及)若(及)若(及(及)(及)(及)(及)(及)(及)(及)(及)(及)(及)1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(*60,0),工作日(1,1,1:1,1:1:D1:D1:D1:D1:D1:1(1,1,1,1:1:1,1:D1:D21)+时间(9,0,0,1,0,1:1,1:1(1,1,1,1.1,1,1,1,1,1,1,1,1,1,1,1:1,1,1,1:D1,1,1:D1,1,1:D1:D1(1:D1:D21)D21+1+1+1+1+1+1+1+1+1+1(9(9,1,1,9,9,9,9,9,9,9,9(9,9,(9,9,9,9,9,9,9,(9,9,9,9,9(9,1,1,9,1,1,1,9,1,9,9,9,9 D1:D21)+时间(9,0,0))第二,第二(工作日(1,1,1:1,1:1 1:1 1)第二(工作日(1,1,1,1,8.5),MOD(1,8.5,1)10 10,1)*60,0)>时间(17,30,0,1,1,1,1:0,1,1:1,1:1)第二(工作日(1,1,1,1,1,1,1,1:1,1,1:1,1,1,1)1)1)1)1)1)1)1)1,(1)1)(1)1)1)1)1次次(工作日(1(1,1,1,1,1,1(1,1,1,1,1,1,1,1(1,1,1,1,1,1:1,1,1,1,1:1,1,1,1,1:1,1,1,1,1:1)1)1 1)+时间(9,0,0)),分钟(工作日(A1,1,D1:D21)+时间(9,0,0)),秒(工作日(A1,1,D1:D21)+时间(9,0,0))+时间(模(B1,8.5),模(模(B1,8.5),1)*60,0)))
请分享几行示例数据,显示哪里正常,哪里出错,以及预期输出。您好,我用一个示例编辑了我的问题:)即使添加了示例,您的假设仍然不清楚。请您具体说明以下内容:1)如果开始时间在上午9:00之前,您是将其视为从上午9:00开始还是从实际时间开始?2) 如果结束时间在下午5:30之后,您是要计算实际工作时间,还是将其四舍五入到8.5小时,午餐休息/茶点休息如何?3) 如果完成时间在上午9:30到下午5:30之间,您是否打算从额外的小时数中扣除实际工作小时数,并将剩余时间添加到下一个工作日,并假定它从上午9:00开始?