我有一个特定日期,我基本上想要做以下事情:添加60天(不跳过周末或假期 - 所以基本上是date+60
),但是如果结果日期(第60天后)恰好是开始日期)不是工作日(周末或假日)带我到下一个工作日(跳过周末和假期)。将60天添加到日期时,它不会跳过任何周末或假日,但如果结果日期不是工作日,请带我到下一个。
例如:01/25/2016 + 60 = 03/25/2016,这是一个假期,所以带我到下一个工作日(因为它是星期五,它将在下周一返回我,因为星期一是在这种情况下不是假期,如果是,我需要它来检查星期二是否是假日,如果不是,请在星期二返回我。
我该怎么做?我最好用公式而不是VBA
来做,但编程这绝对不是问题。
答案 0 :(得分:0)
您可以在60天后轻松使用公式下一个工作日(周一至周五)。
假设您的日期在 A1 ,并且60天后的下一个工作日存储在 B1 中,则B1可以使用此公式:
=A1+60+IF(WEEKDAY(A1+60,2)>5,8-WEEKDAY(A1+60,2),0)
除非您有公众假期的表格列表,否则当“下一个工作日”是公众假期时,您无法做多。
如果你这样做,请添加IFERROR()
和VLOOKUP()
,但仍有可能同时使用Mon&星期二是公共假期(圣诞节可以做到这一点)。您将需要一个UDF来循环计算的下一个工作日,直到它不是公共假日。