Excel公式输出双周日期和月末

时间:2014-05-15 20:23:18

标签: excel date excel-formula

我试图找出如何以最干净的方式做到这一点。我需要一个公式,该公式将输出每两周一次的日期或本月的最后一个工作日,只要每两周一次的日期不在该日期,并且它发生在下一个双周日期之前。将手动输入列表中的第一个日期,公式将使用该日期作为第一个日期。例如:

2014年5月15日(手动输入)
2014年5月29日(基于前一单元输出下一个双周日期的公式)
2014年5月30日(基于最后日期输出最后一个工作日的相同公式)
2014年6月12日(等等)
2014年6月26日
2014年6月30日
2014年7月10日
2014年7月24日
2014年7月31日

我希望这是有道理的。我宁愿使用公式而不是VBA来做到这一点。

1 个答案:

答案 0 :(得分:1)

我几乎不好意思发布这个,因为它的绝对长度让我相信一些更高效的东西是可能的。但是,如果它对你有所帮助,我会发布它。

我假设您的列表以A1开头,手动输入日期。

A2中,我有以下公式:

=IF(MONTH(A1+14)=MONTH(A1),A1+14,EOMONTH(A1,0)-IF(WEEKDAY(EOMONTH(A1,0),16)<=2,WEEKDAY(EOMONTH(A1,0),16),0))

然后在A3中,我有以下公式(您可以根据需要向下拖动):

=IF(A2=EOMONTH(A2,0)-IF(WEEKDAY(EOMONTH(A2,0),16)<=2,WEEKDAY(EOMONTH(A2,0),16),0),A1+14,IF(MONTH(A2+14)=MONTH(A2),A2+14,EOMONTH(A2,0)-IF(WEEKDAY(EOMONTH(A2,0),16)<=2,WEEKDAY(EOMONTH(A2,0),16),0)))
祝你好运!

编辑: 我还假设非工作日被定义为星期六和星期日(不考虑假期)。假期会增加一些复杂性。