工作时间上午 8 点 - 下午 6 点=(NETWORKDAYS(B2,C2)-1)*("18:00:00"-"8:00:00")+IF(NETWORKDAYS(C2,C2),MEDIAN(MOD( C2,1),"18:00:00","8:00:00"),"18:00:00")-MEDIAN(NETWORKDAYS(B2,B2)*MOD(B2,1),"18: 00:00","8:00:00")
我们的工作时间为工作日上午 8 点至下午 6 点,周末不工作。任务可以随时到达系统中,我们只在工作时间之间拿起它并进行处理。上面是我用来提取完成任务的工作时间(上午 8 点 - 下午 6 点)的公式。我的问题是,我一天只工作 10 个小时吗?当自定义为 [h]:mm:ss 时,这个公式正确地给出了小时:分钟:秒。如果我自定义格式 d :hh:mm:ss,我会得到 1 天 23 小时 54 分 43 秒。我的要求是4天7小时54分47秒。我正在努力找出公式。请问我可以请求你帮我解决这个问题吗?谢谢你
“花费时间”列包括总时间,包括周末。它的原始数据
我同意您可以对公式结果进行一些算术转换以获得天数+小时的评论。
另一种方法是直接分解公式:
公式
=NETWORKDAYS(B2,C2)-1
的第一部分计算工作日,而第二部分=IF(NETWORKDAYS(C2,C2),MEDIAN(MOD(C2,1),upper,lower),upper)-MEDIAN(NETWORKDAYS(B2,B2)*MOD(B2,1),upper,lower)
则处理开始日期和结束日期(如果不是假期)的工作时间。
所以基本上,您可以使用第一部分来计算天数,然后使用第二部分来计算剩余工作时间。
第二部分,
=IF(NETWORKDAYS(C2,C2),MEDIAN(MOD(C2,1),upper,lower),upper)-MEDIAN(NETWORKDAYS(B2,B2)*MOD(B2,1),upper,lower)
将始终产生位于[-10 Hours, 10 Hours]
(lower boundary = lower-upper
,upper boundary =upper-lower
)范围内的数字。当这部分为负数时,需要进行一些调整。
在下表中,D 列使用
=NETWORKDAYS(B2,C2)-1
,E 列使用 =IF(NETWORKDAYS(C2,C2),MEDIAN(MOD(C2,1),upper,lower),upper)-MEDIAN(NETWORKDAYS(B2,B2)*MOD(B2,1),upper,lower)
在第4行中,您可以看到E列为负数,这意味着您需要从D列中减去一天以获得“完整工作日”,并在E列中添加10小时以获得剩余工作时间。
第二个表显示我使用的公式。
任务ID | 到达日期 | 出发日期 | 工作日 | 十进制格式的存根小时数 | 完整工作日 | 存根时间 |
---|---|---|---|---|---|---|
1-2QPM | 44575.8044560185 | 44575.8044560185 | =工作日(B2,C2)-1 | =IF(NETWORKDAYS(C2,C2),MEDIAN(MOD(C2,1),上,下),上)-MEDIAN(NETWORKDAYS(B2,B2)*MOD(B2,1),上,下) | =IF(E2>=0,D2,D2-1) | =IF(E2>=0, E2,(上-下)+E2) |
1-2QPM | 44575.8044560185 | 44575.8472916667 | =工作日(B3,C3)-1 | =IF(NETWORKDAYS(C3,C3),MEDIAN(MOD(C3,1),上,下),上)-MEDIAN(NETWORKDAYS(B3,B3)*MOD(B3,1),上,下) | =IF(E3>=0,D3,D3-1) | =IF(E3>=0, E3,(上下)+E3) |
1-2QPM | 44575.8472916667 | 44582.6630439815 | =工作日(B4,C4)-1 | =IF(NETWORKDAYS(C4,C4),MEDIAN(MOD(C4,1),上,下),上)-MEDIAN(NETWORKDAYS(B4,B4)*MOD(B4,1),上,下) | =IF(E4>=0,D4,D4-1) | =IF(E4>=0, E4,(上下)+E4) |
1-2QPM | 44582.6630439815 | 44582.6815277778 | =工作日(B5,C5)-1 | =IF(NETWORKDAYS(C5,C5),MEDIAN(MOD(C5,1),上,下),上)-MEDIAN(NETWORKDAYS(B5,B5)*MOD(B5,1),上,下) | =IF(E5>=0,D5,D5-1) | =IF(E5>=0, E5,(上下)+E5) |
1-2QPM | 44582.6815277778 | 44582.7260185185 | =工作日(B6,C6)-1 | =IF(NETWORKDAYS(C6,C6),MEDIAN(MOD(C6,1),上,下),上)-MEDIAN(NETWORKDAYS(B6,B6)*MOD(B6,1),上,下) | =IF(E6>=0,D6,D6-1) | =IF(E6>=0, E6,(上下)+E6) |