如何在工作日-excel功能中考虑周末?

时间:2017-01-03 12:46:15

标签: excel

我正在尝试计算多个日期和与每个日期对应的截止日期之间的天数,并希望有人有使用Excel工作表函数WORKDAYS的经验?它的基本形式中的函数计算我想要使用的任何两个日期之间的工作日数,但稍微改动的是截止日期和日期不应包括在工作日的数量中,这样就会有一个工作日例如,截止日期为10月12日和10月10日的初始日期。为了做到这一点,我到目前为止只是从excel-function的工作日数减去了两天,但这会在截止日期或初始日期在周末时引起问题。因此,我希望你们中的任何一个人都知道如何解决我的问题?

数据包括上面提到的几个截止日期,每个截止日期在午夜(7/10/16 00.00.00),而初始日期是在某些事件发生的那一天的某个时间点。以2016年10月3日的初始日期为例,让我们说下午3点发生了一些事情。因此,此活动之间的下午3点没有工作日。截止日期为午夜(2016年10月4日00.00.00(午夜)) 我已经使用”=if(Deadline="-";"No deadline";Workdays(Deadline;Initial Date)-2)”来构建以下数据,这是我最接近正确计算天数的数据,所以我希望任何更有经验的人都知道如何在任何时候改进计数器日期是周末?

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 

亲切的问候,

2 个答案:

答案 0 :(得分:1)

如果A1是工作日,则此公式为0,如果不是,则为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。查看您的公式,函数名称可能不同。请检查一下。

答案 1 :(得分:0)

我不确定您在截止日期发生在Initial_Date之前的期望,但由于该值为负,您需要添加而不是减去两天。

至于调整两个日期以便它们不会在周末发生,您将减去一个日历日并添加一个工作日以将Initial_date移至周末后的第一个工作日;并添加一个日历日,然后减去一个工作日,将截止日期移至前一个星期五。除非相关日期在周末发生,否则不会更改日期。

下面的公式完成了所有这些:

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