对于提问的“上一个”、“上周”等,不知是否理解对。另外截图中“A1上”、“B1”上等,是否应该是A2、B2等
公式及结果均在截图中
公式的核心是:
WORKDAY.INTL(起始日期,净工作日,"1110111")
净工作日——往前为负,往后为正。
"1110111"——七天的工作安排,0为工作,1为休息
以C2中的公式为例说明
=WORKDAY.INTL(B2,-1,"1110111")-(WEEKDAY(B2,2)>4)*7
B2中的日期为起始日期,要计算上周四是哪一天,那就从今天开始往前计算,只有周四工作,一周工作一天是哪一天:
=WORKDAY.INTL(B2,-1,"1110111")
但如果B2中日期是周四后,那么,这个计算出来的周四就会是本周的周四,所以用:
WEEKDAY(B2,2)>4
来判断,如果条件成立,那么,得到结果TURE,与7相乘,就得到数字7,这个周的周四减去7天,就是上周四了。而如果B2中的日期本身就是周四或以前,那么计算出来的前一个工作日(周四),就是上周四了。
WEEKDAY(B2,2)>4
不成立,结果为:FALSE,与7相乘,结果0。上周四减去0,还是上周四。
B2=A2-WEEKDAY(A2,11)-2
C2=B2-8
D2=A2+12-WEEKDAY($A2,11)
E2=D2-8
weekday(),返回1-7的数字,其中星期一,对应的数字是2;星期二对应的数字是3,。。。星期日,对应的数字是1。
依次判断,如果:
weekday(A1)=1,则上一个周五是比它早两天的日子,即weekday(a1)-2
weekday(A1)=2,则上一个周五是比它早两天的日子,即weekday(a1)-3
weekday(A1)=3,则上一个周五是比它早两天的日子,即weekday(a1)-4
weekday(A1)=4,则上一个周五是比它早两天的日子,即weekday(a1)-5
weekday(A1)=5,则上一个周五是比它早两天的日子,即weekday(a1)-6
weekday(A1)=6,则上一个周五是比它早两天的日子,即weekday(a1)-7
weekday(A1)=7,则上一个周五是比它早两天的日子,即weekday(a1)-1
依据上述意思在B1中写出公式:
=IF(WEEKDAY(A1)=1,A1-2,IF(WEEKDAY(A1)=2,A1-3,IF(WEEKDAY(A1)=3,A1-4,IF(WEEKDAY(A1)=4,A1-5,IF(WEEKDAY(A1)=5,A1-6,IF(WEEKDAY(A1)=6,A1-7,A1-1))))))
C,D,E列的公式可以参考上面的公式写出。
注意,要将B,C,D和E列相关单元格数据格式设置为日期,否则只显示出一个数字。
B2公式:
=A2-WEEKDAY(A2,2)-IF(WEEKDAY(A2,2)>5,-5,2)
C2公式:
=B2-8
D2公式:
=A2-WEEKDAY(A2,2)+IF(WEEKDAY(A2,2)>5,12,5)
E2公式:
=D2-8