不包括周末的周转时间

时间:2018-04-17 06:47:58

标签: excel excel-vba excel-formula vba

嗨我需要获得此列的周转时间,不包括周末。我试图减去它但没有排除周末,所以我没有成功获得所需的正确周转时间。请帮助我获得正确的公式,以排除此样本的周末。感谢

enter image description here 正如你在这里看到的,这是我需要获得TURNAROUND TIME的数据,所以我所做的是将N列减去M列。

enter image description here 这是我用来以正确的格式查看结果的公式,但我希望得到的结果将排除周末,但我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:4)

如何使用以下公式,这将计算两个日期之间的工作日:

=NETWORKDAYS(N2,M2)

答案 1 :(得分:1)

由于旧答案中的评论已经增长 - 在某种程度上问题需要编辑以包含所有&#34;其他&#34;要求(various reason为什么这些chameleon questions经常被不满。为了更多&#34;调整&#34;,提出一个新问题。) - 我在这里发布更新的代码。< / p>

首先:由于NETWORKDAYS从第一天的开始到最后一天的结束计数,它往往会添加一个&#34;额外的&#34;天。要解决这个问题,我们需要记住减去第一天的第一部分(午夜到开始时间)和最后一天的最后部分(结束时间到午夜) - 但前提是它们都是每个工作日。

=NETWORKDAYS(M2,N2)+IF(MOD(WEEKDAY(N2),7)>1,MOD(N2,1)-1,0)-IF(MOD(WEEKDAY(M2),7)>1,MOD(M2,1),0)

接下来,是要求排除假期。 重要!这要求您有一张名为&#34;假期表&#34;的工作表,其中包含您在A栏中假期的日期列表。
我们使用ISERROR(MATCH(..))作为检查&#34;不在列表&#34;中,NETWORKDAYS接受列表第三个,可选,参数/参数

=NETWORKDAYS(M2,N2,'Holiday Sheet'!$A:$A)+IF(AND(MOD(WEEKDAY(N2),7)>1,ISERROR(MATCH(N2,'Holiday Sheet'!$A:$A,0))),MOD(N2,1)-1,0)-IF(AND(MOD(WEEKDAY(M2),7)>1,ISERROR(MATCH(M2,'Holiday Sheet'!$A:$A,0))),MOD(M2,1),0)

最后一次&#34;额外&#34;要求是将其计算为工作时间,工作日从07:00到16:00 - 每天工作9小时。首先,将NETWORKDAYS乘以9小时(TIME(9,0,0)),然后记住删除第一天的第一部分(针对工作时间更正)和最后一天的最后一部分(也已更正)工作时间) 我们可以使用MEDIAN从3个值中获取中间数,这样我们就不会在07:00之前或16:00之后使用

=TIME(9,0,0)*NETWORKDAYS(M2,N2,'Holiday Sheet'!$A:$A)+IF(AND(MOD(WEEKDAY(N2),7)>1,ISERROR(MATCH(N2,'Holiday Sheet'!$A:$A,0))),MEDIAN(TIME(7,0,0),MOD(N2,1),TIME(16,0,0))-TIME(16,0,0),0)-IF(AND(MOD(WEEKDAY(M2),7)>1,ISERROR(MATCH(N2,'Holiday Sheet'!$A:$A,0))),MEDIAN(TIME(7,0,0),MOD(M2,1),TIME(16,0,0))-TIME(7,0,0),0)