找到excel日期之前的星期一或星期三

时间:2013-05-13 16:30:31

标签: excel date dayofweek

我在excel 2010中有一个分配列表。每个分配都有截止日期。转让必须在截止日期前3个工作日提交外部处理。在将分配发送到外部处理之前,必须对其进行审核。提交的审查时间为星期一和星期三。

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

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

提交日期=(X之前的周一或周三)

因此,我得到了X; =WORKDAY.INTL(<due date cell>,-3)

现在我只需要代码即可进入提交日期。

2 个答案:

答案 0 :(得分:2)

好的,我尝试在没有巨大的IF()声明的情况下这样做,但这很有效。您的日期在A1中,下面的提交日期公式为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)))))))

我所做的几乎就是我想知道每减去3个工作日然后减去​​更多天直到你到星期三或星期一的每个到期日减去多少天。 当你...

  • 截止日期;然后(减去天数或星期三提交日期)
  • 周日;然后-6
  • 星期一;然后-7
  • 星期二;然后-6
  • 星期三;然后-7
  • 星期四;然后-8
  • 星期五;然后-4
  • 星期六;然后-5

希望这有帮助。

-Scheballs

Has to be Mon or Wed

修改

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

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

几乎一旦你找到了从一周中的某天减去所需的偏移量,就可以使用WEEKDAY值作为选项列表中的位置。 因此,如果我们的工作日截止日期是星期日,那是一个“1”然后我们选择功能选项列表,则选择第一个。然后我们的截止日期减去该值。 非常好巴里,谢谢。

答案 1 :(得分:2)

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

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

如果是前者那么只需将-3变为-2

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

此方法可以使用任意天数 - 后一个数字始终为-1