在excel中查找date之前的周一或周三

我有一个在Excel 2010中的作业列表。每个都有一个到期date。 必须在截止date前3个工作日提交外派处理。 在将作业发送给外部处理之前,必须对其进行审核。 提交审查周一和周三。

我想要一个函数,在截止date单元格中查看date,并在该date之前的3个工作日之前返回星期一或星期三(其更接近)的date;

X =(截止date前3个工作日)

提交date=(X前的星期一或星期三)

我就这样得到了X =WORKDAY.INTL(<due date cell>,-3)

现在我只需要代码来提交date。

如果您的到期date是星期一,那么在此之前的3个工作日是上周三,那么您可以在星期三进行审查还是需要在此之前的星期一? 如果是后者,则可以使用WORKDAYWORKDAY.INTL这样的在A2中假定到期日

=WORKDAY.INTL(WORKDAY(A2,-3),-1,"0101111")

如果是前者,那就把-3变成-2

使用这种方法,您可以使用WORKDAY返回2或3个工作日,然后WORKDAY.INTL使用“0101111”指示周一和周三的工作日,并在此基础上减去一天

这种方法可以用于任何天数 – 后一个数字总是保持-1

好吧,我试图做到这一点没有一个巨大的IF()声明,但这个工程。 你的date在A1,你的提交date公式在B1。

 =IF(WEEKDAY(A1)=1,A1-6,IF(WEEKDAY(A1)=2,A1-7,IF(WEEKDAY(A1)=3,A1-6,IF(WEEKDAY(A1)=4,A1-7,IF(WEEKDAY(A1)=5,A1-8,IF(WEEKDAY(A1)=6,A1-4,IF(WEEKDAY(A1)=7,A1-5))))))) 

我所做的很多事情是,当你至less减去3个工作日,然后减去更多的日子,直到你得到星期三或星期一的时候,我计算出了从每个到期date中减去多less天。 当你的…

  • 截止date; 然后(减去获得期望的星期一或星期三提交date)
  • 星期日; 然后-6
  • 星期一; 然后-7
  • 星期二; 然后-6
  • 星期三; 然后-7
  • 星期四; 那么-8
  • 星期五; 那么-4
  • 星期六; 然后-5

希望这可以帮助。

-Scheballs

必须是周一或周三

编辑

感谢Barry Houdini向我展示了CHOOSE()函数。

 =A2-CHOOSE(WEEKDAY(A2),6,7,6,7,8,4,5) 

几乎一旦你发现date所需的偏移量从一周中的一天减去,你可以使用WEEKDAY值作为选项列表中的位置。 因此,如果我们的工作日到期日是星期天,那么这是一个“1”,然后是我们select的function列表,第一个select。 然后我们的截止date被减去该值。 非常好的巴里,谢谢。