如何通过添加30个日历日来计算日期,其中结束日期必须是工作日?

时间:2016-03-18 13:58:16

标签: excel google-sheets

我想知道这是否可行。我正在创建一个电子表格来跟踪项目截止日期。每个项目必须在第30个日历日完成,但必须在工作日上交。

目前,我只是在开始日期添加了30天,但这意味着一些截止日期并不总是准确的。例如,如果第30天是4月2日星期六,那么真正的截止日期将是4月1日星期五。

是否有办法构建条件,使截止日期等于第30个日历日,除非是在周末/假日,然后在下一个最早的工作日呢?

我一直在努力想办法做到这一点。

3 个答案:

答案 0 :(得分:2)

对于 Excel 中的英语设置,日期为 A1 ,在 B1 中输入:

=IF(TEXT(A1+30,"DDDD")="Sunday",A1+28,IF(TEXT(A1+30,"DDDD")="Saturday",A1+29,A1+30))

enter image description here

这种简单的方法只处理星期六和星期日,而不是任意假期。

答案 1 :(得分:2)

我更喜欢使用WORKDAY.INTL

这样更优雅的方式
=WORKDAY.INTL(A2+31,-1,1,E2:E)

说明:开始日期+31天(超过最长日历天数1天)

然后减去1个工作日 - 前一个工作日

原因:因为这个公式确实知道周末的时间(通过使用变量),并且还知道通过自定义列表跳过hollydays。

这是您可以使用的example sheet

screenshot

答案 2 :(得分:0)

评论后修改:

试试这个:

=(A4+30)+CHOOSE(WEEKDAY(A4+30),1,0,0,0,0,0,-1)

您的日期,在A4,+ 30天内,然后添加一定天数,直到下一个工作日。如果A4 + 30是星期六,它将减去1天,星期日将增加1。