确定date是否为Excel中的工作日
我在H10栏中有一个date,需要在下一个栏目I中增加45天
- 如果没有date列我必须是空白的
- 如果第45天在周末,则计算必须移至下一个周一的工作日
你需要结合两个基本function。
首先, DATE + INT = DATE
。 例如,如果H10 = 1/8/2015
, H11 = 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))