2013-05-13 383 views
4

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

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

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

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

我X这样; =WORKDAY.INTL(<due date cell>,-3)

现在我只需要代码来获得提交日期。

回答

2

如果您的到期日是星期一,那么在此之前的3个工作日是上周三,那么您可以在周三进行审核还是需要在此之前的星期一?如果是后者,那么你可以在A2

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

使用WORKDAYWORKDAY.INTL这样的假设到期日如果是前者则只是使-3到-2

通过这种方法使用WORKDAY回去2首或3个工作日,然后WORKDAY.INTL使用“0101111”表示周一和周三工作日,减去进一步一天的基础

这种方法可用于任何天数上 - 后者总是数仍然-1

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

编辑

感谢巴里·胡迪尼用于显示我的选择()函数。

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

差不多,一旦你找到您可以使用工作日值作为在选项列表中的位置的星期减去所需天的偏移量。 所以如果我们的工作日到期日是星期日,那是一个“1”,然后是我们选择的功能选项列表,第一个选择。然后我们的截止日期被减去该值。 非常好的巴里,谢谢。

+1

+1 @Scheballs - 对我很有用 - 你可以通过使用CHOOSE函数缩短,即'= A1-CHOOSE(WEEKDAY(A1),6,7,6,7,8,4,5)' – 2013-05-13 19:30:33

+0

太棒了!我以前从未使用过CHOOSE。现在学习吧。谢谢 – Scheballs 2013-05-13 19:36:22

相关问题