生成开始日期,结束日期和星期数属于给定的开始和结束日期

时间:2020-04-16 14:42:41

标签: excel excel-formula

我想通过给出一些日期范围来生成特定日期的无周列表以及开始日期和结束日期,我使用以下公式进行了计算,但是我想将属于第52周之后的所有日期视为第1周,我的公式运行良好如果开始日期和结束日期属于同一年,但是如果我选择12月26日之后的开始日期,例如我的公式不起作用,请帮助。我考虑周一至周日。如果我选​​择dec29,则显示错误的数据(红色突出显示) A1-开始日期(这是日历选择器给出的) B1-结束日期((由日历选择器给出)

A3 =IF(A1="","",YEAR(A1))

B3 =IF($A$1-WEEKDAY($A$1,3) +((ROW()-3)*7) <= $B$1-WEEKDAY($B$1,3), ISOWEEKNUM($A$1-WEEKDAY($A$1,3)+((ROW()-3)*7)), "")

C3 =IF(DATE(YEAR(B1),MONTH(B1),DAY(B1))>=DATE(YEAR(A1),MONTH(A1),DAY(A1)),IF(A1<>"",A1,""),"CHECK DATE RANGE")

D3=IF(DATE(YEAR(B1),MONTH(B1),DAY(B1))>=DATE(YEAR(A1),MONTH(A1),DAY(A1)),IF(B1<>"",MIN(DATE(A3+1,1,2),(DATE(A3,1,1)-WEEKDAY(DATE(A3,1,1),2)+B3*7)),""),"CHECK DATE RANGE")

Image

我想要以下结果

Image 2

1 个答案:

答案 0 :(得分:0)

这些公式将在第3行中起作用

A3  =IF(ISNUMBER($A$1),YEAR(A1),"")
B3  =IF(ISNUMBER($A$1),WEEKNUM($A$1,2),"")
C3  =IF(ISNUMBER($A$1),$A$1-WEEKDAY($A$1,2)+1,"")
D3  =IF(ISNUMBER($A$1),$A$1+6-WEEKDAY($A$1,2)+1,"")

从第4行开始,输入以下公式,然后使用自动填充光标(选择单元格A4:D4,然后单击并按住选择框的右下角图标)以向下填充多行根据需要。

A4  =IF(ISNUMBER($D3),IF(($D3+1)<$B$1,YEAR($D3),""),"")
B4  =IF(ISNUMBER($D3),IF(($D3+1)<$B$1,WEEKNUM($D3,2),""),"")
C4  =IF(ISNUMBER($D3), IF( ($D3+1)<$B$1,  $D3+1,""),"")
D4  =IF(ISNUMBER($C4),$C4+6,"")

顺便说一句,您在帖子中提到希望星期一作为一周的开始。因此,我在2WEEKNUM中都使用了值WEEKDAY。如果需要,请在其他日子使用different value