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

我在H10栏中有一个date,需要在下一个栏目I中增加45天

  1. 如果没有date列我必须是空白的
  2. 如果第45天在周末,则计算必须移至下一个周一的工作日

你需要结合两个基本function。

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

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

其次,您可以使用Weekday(date,mode)函数来确定星期几。 就个人而言,为了您的目的,您可以使用weekday(h10 + 45, 2) 45,2 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...") 

但是我们还没有完成 – 你需要确保你的一天实际上在一个工作日结束。 所以我们可以这样做 – 在确定一个工作日的时候,我们可以用它来确定我们需要添加多less。 如果我们以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 */) 

你可以结合IF(),WEEKDAY()和WORKDAY()函数来计算你的完成date,并确保它不会在周末。

我用过了

 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))