我在excel 2010中有一个分配列表。每个分配都有截止日期。转让必须在截止日期前3个工作日提交外部处理。在将分配发送到外部处理之前,必须对其进行审核。提交的审查时间为星期一和星期三。
我想要一个查看到期日期单元格中日期的函数,并返回在该日期之前3个工作日之前的星期一或星期三(距离更近)的日期;
X =(截止日期前3个工作日)
提交日期=(X之前的周一或周三)
因此,我得到了X;=WORKDAY.INTL(<due date cell>,-3)
现在我只需要代码即可进入提交日期。
答案 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个工作日然后减去更多天直到你到星期三或星期一的每个到期日减去多少天。 当你...
希望这有帮助。
-Scheballs
修改强>
感谢Barry Houdini向我展示了CHOOSE()函数。
=A2-CHOOSE(WEEKDAY(A2),6,7,6,7,8,4,5)
几乎一旦你找到了从一周中的某天减去所需的偏移量,就可以使用WEEKDAY值作为选项列表中的位置。 因此,如果我们的工作日截止日期是星期日,那是一个“1”然后我们选择功能选项列表,则选择第一个。然后我们的截止日期减去该值。 非常好巴里,谢谢。
答案 1 :(得分:2)
如果您的截止日期是星期一,那么在上周三之前的3个工作日那么您可以在星期三进行审核,还是需要在此之前的星期一?如果是后者,那么您可以使用WORKDAY
和WORKDAY.INTL
这样假设A2中的截止日期
=WORKDAY.INTL(WORKDAY(A2,-3),-1,"0101111")
如果是前者那么只需将-3变为-2
使用这种方法,您可以使用WORKDAY返回2或3个工作日,然后WORKDAY.INTL使用“0101111”表示周一和周三工作日,并在此基础上再减去一天
此方法可以使用任意天数 - 后一个数字始终为-1