2017-01-03 21 views
1

我想天数的数日期和对应于每个日期的最后期限之间的数量,并希望没有人有Excel工作表函数WORKDAYS经验?它的功能是基本形式计算的工作日,我想用但略有改变这一最后期限和日期不应列入工作天数任意两个日期之间的数,这样就会有一个工作例如,10月12日的截止日期和10月10日的初始日期之间的日期。为了做到这一点,我迄今为止只是从excel函数的工作日数中减去了两天,但是这会在截止日期或初始日期在周末时导致问题。因此,我希望你们中的任何一个人都知道如何解决我的问题?如何解释工作日的excel函数中的周末?

的数据由以上几种期限如所提到的,每日午夜(16年7月10日00.00.00),而初始日期是在白天的某个时间点,当某些事件发生。以2016年10月的初始日期3为例,可以说下午3点发生了一些事情。因此,这个活动在下午3点之间没有工作日。截止日期为午夜(2016年10月4日00.00.00(午夜))。
我用”=if(Deadline="-";"No deadline";Workdays(Deadline;Initial Date)-2)”构建下面的数据是我到过正确计算天数的最接近,所以我希望有人在Excel中更有经验,对如何提高柜台上的一些想法时,任何的日期是周末?

Deadline  Initial Date No. work days 
7/10/16  5/10/16  1 
    -   11/10/16  No deadline 
26/8/16  10/11/16  -34 
    -   7/10/16  No deadline 
1/9/16  7/10/16  -29 
24/10/16  18/10/16  3 
    -   3/10/16  No deadline 
24/10/16  17/10/16  4 
17/10/16  10/10/16  4 
30/9/16  4/11/16  -28 
11/11/16  2/11/16  6 
1/11/16  14/10/16  11 
11/10/16  30/10/16  -16 
4/10/16  3/10/16  0 

亲切的问候,

+0

我有些不明白,你的结果。我不明白“Deadline”之前的'Initial_Date'如何,即使它是,我不明白'initial_date = 2016年11月10日'和'截止日期= 2016年8月26日'''这超过了两个月。 –

回答

1

这一公式为您提供了0,如果A1是一个工作日,1如果它不是。

=IF(WORKDAY(A1-1,1)=A1,0,1) 

所以,你应该改变你的公式一样

=if(Deadline="-";"No deadline";Workdays(Deadline;Initial Date)- (IF(WORKDAY(Initial Date-1,1)=Initial Date;0;1)) + IF(WORKDAY(Deadline-1,1)=Deadline;0;1)) ) 

注:我用Excel 2016和函数被命名为WORKDAYNETOWRKDAYS。看看你的公式,函数名称可能会有所不同。请检查一下。

+0

非常感谢您的回答,这是对我的问题的一个很好的直观解决方案!顺便说一下,我已经测试了两个以前版本的Excel中的代码,它似乎在两个版本中都可以正常工作! – Mathilde

+0

很高兴那个答案帮了你。 –

0

我不知道什么时候截止Initial_Date发生之前你所期望的,但由于该值为负,你需要添加而不是减两天。

至于调整两个日期,以便在周末没有出现他们,你会减掉一个日历日,并添加一个工作日到Initial_date移动到周末后的第一个工作日;并添加一个日历日,然后减去一个工作日以将截止日期移至上一个星期五。除非有关日期发生在周末,否则这不会改变日期。

下面的公式做一切:

=IF(Deadline="-","No Deadline",NETWORKDAYS(WORKDAY(Initial_Date-1,1),WORKDAY(Deadline+1,-1))-2*SIGN(Deadline-Initial_Date)) 
+0

当截止日期在最初的日期之前,它应该只显示一个负数,因为我对这个事件相对于截止日期的延迟感兴趣。我刚刚测试了这个配方,证明它非常有帮助,非常感谢您的帮助! – Mathilde