确定日期是否为Excel中的工作日

时间:2015-03-30 19:25:58

标签: excel calendar weekday

我在H10栏中有一个日期,需要在下一栏I

中添加45天到此日期
  1. 如果没有日期列I必须为空
  2. 如果第45天属于周末,则计算必须转到下一个工作日,即星期一

2 个答案:

答案 0 :(得分:1)

您需要结合两个基本功能。

首先,DATE + INT = DATE。例如,如果H10 = 1/8/2015H11 = H10 + 10,那么H11将显示1/18/2015

在您的情况下,您想使用H10 + 45

其次,您可以使用Weekday(date,mode)函数来确定星期几。就个人而言,你可以使用weekday(h10 + 45, 2)为MTWRF提供1-5,为周末提供6-7。像

这样的东西
=if(weekday(h10+45,2) < 6, "weekday", "weekend")

=if(weekday(h10+45,2) = 1, "Monday!!", "not monday...")

但是我们还没有完成 - 你需要确保你的一天真的在工作日结束。所以我们可以这样做 - 在确定工作日时,我们可以用它来确定我们需要添加多少。如果我们最终得到6(星期六),我们想增加2天将它推到星期一。在7的情况下,我们想要增加1天将它推到星期一。因此,我们可以简单地将8 - weekday(h10+45)添加到工作日。所以我们的增值变为

//   determine day type   weekday  weekend, so add the offset
= if(weekday(h10+45) < 5, h10+45, h10 + 45 + (8 - weekday(h10+45))

您还需要空白,因此您需要使用

包装任何内容
=if(isblank(h10),"", /* your real function here */)

答案 1 :(得分:0)

您可以组合IF(),WEEKDAY()和WORKDAY()的功能来计算完成日期,并确保它不会在周末出现。

我已经

WEEKDAY(WORKDAY(H10+45),16) 
  

星期六和星期日分别表示为第1天和第2天。

IF(WEEKDAY(WORKDAY(H10,45),16)=1,WORKDAY(H10,45)+2,IF(WEEKDAY(WORKDAY(H10,45),16)=2,WORKDAY(H10,46),H10))