根据规则生成一系列date

我想根据我的业务规则生成一系列date,最好使用Excel或其他Office产品。

业务规则示例:

  • 包括所有星期二,星期四和星期五。
  • 排除每个月的最后一天。

这会产生:

27 Jun 2017 29 Jun 2017 04 Jul 2017 06 Jul 2017 07 Jul 2017 

我不需要一个完整的解决scheme,如果你可以推荐使用哪些function和一般的方法。 提前致谢!

这是一个powershell方法。

在A1放置开始date。

然后在A2中使用数组公式:

 =MIN( IF((A1+ROW(INDIRECT("1:7"))<>EOMONTH(A1,0))*((WEEKDAY(A1+ROW(INDIRECT("1:7")))=3)+(WEEKDAY(A1+ROW(INDIRECT("1:7")))=5)+(WEEKDAY(A1+ROW(INDIRECT("1:7")))=6)),A1+ROW(INDIRECT("1:7")))) 

作为一个数组公式,在退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter来确认。 如果正确完成,则Excel将在公式周围放置{}

或者你可以在A2中使用这个不需要Ctrl-Shift-Enter的非CSE公式:

 =AGGREGATE(15,6,(A1+ROW(INDIRECT("1:7")))/(((WEEKDAY(a1+ROW(INDIRECT("1:7")))=3)+(WEEKDAY(a1+ROW(INDIRECT("1:7")))=5)+(WEEKDAY(a1+ROW(INDIRECT("1:7")))=6))*(A1+ROW(INDIRECT("1:7"))<>EOMONTH(A1,0))),1) 

根据需要格式化A2。 然后复制下来

![在这里输入图片描述

备用解决scheme:

在单元格A1中,将起始date(2017年6月27日,使用您的示例)

在单元格A2中复制下来,使用此公式:

 =LOOKUP(2,1/(((WEEKDAY(A1+{7,6,5,4,3,2,1})=3)+(WEEKDAY(A1+{7,6,5,4,3,2,1})=5)+(WEEKDAY(A1+{7,6,5,4,3,2,1})=6))*(A1+{7,6,5,4,3,2,1}<>EOMONTH(A1,0))),A1+{7,6,5,4,3,2,1})