首页 > 解决方案 > 生成开始日期、结束日期和周数属于给定的开始和结束日期

问题描述

我想通过给出一些日期范围来生成特定周的无列表和开始日期和结束日期,我使用下面的公式做了。但我想将属于第 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")

图片

我想要结果如下

图 2

标签: excelexcel-formula

解决方案


这些公式适用于第 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,"")

顺便说一句,您在帖子中提到您希望星期一作为一周的开始。所以我在和2中都使用了值。如果需要,对其他日期使用不同的值。WEEKNUMWEEKDAY


推荐阅读