求EXCEL公式,根据A列日期计算出B尀C尀D尀E列的日期

能解释一下公式逻辑吗?我还要做好几个类似的公式...
2026年09月26日 17:00
有4个网友回答
网友(1):

对于提问的“上一个”、“上周”等,不知是否理解对。另外截图中“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,还是上周四。

网友(2):

B2=A2-WEEKDAY(A2,11)-2

C2=B2-8

D2=A2+12-WEEKDAY($A2,11)

E2=D2-8

网友(3):

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列相关单元格数据格式设置为日期,否则只显示出一个数字。

网友(4):

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