我有一个计算周数的要求,它与财政周非常相似,但周数计算必须从二月的第一个星期一开始。一周从星期一开始,到星期日结束。
例如 - 2020/02/03(mm/dd/yyyy,即 2020 年 2 月 3 日)应该是 2020 年第一个财政周的第一天,即 2 月的第一个星期一是开始日期。
我知道有一些解决方案,我们假设 2 月 1 日等同于 1 月 1 日来开始计算财政周,但是在这种情况下,要求从 2 月第一个星期一开始。
2020 年 2 月 1 日、2020 年 2 月 2 日将是 2019 年财政周第 53 周,而 2020 年 2 月 3 日将是 2020 年财政周第 1 周。
=WEEKNUM(A3-31,10+WEEKDAY(DATE(YEAR(A3-31),1,2),2))
使用更新后的公式,应将 2020 年 12 月 17 日计算为 46(上述公式将其计算为 47),而 2020 年 6 月 14 日应计算为 19。
答案1
利用LET
Office 365 中的公式我们可以使用:
=LET(x,DATE(YEAR(A3),2,7)-WEEKDAY(DATE(YEAR(A3),2,1)-1,3),y,DATE(YEAR(A3)-1,2,7)-WEEKDAY(DATE(YEAR(A3)-1,2,1)-1,3),z,IF(A3<x,y,x),WEEKNUM(A3-(z-DATE(YEAR(z),1,1)),10+(WEEKDAY(DATE(YEAR(z),1,1),2))))
没有它:
=IF(A3<DATE(YEAR(A3),2,7)-WEEKDAY(DATE(YEAR(A3),2,1)-1,3),WEEKNUM(A3-(DATE(YEAR(A3)-1,2,7)-WEEKDAY(DATE(YEAR(A3)-1,2,1)-1,3)-DATE(YEAR(A3)-1,1,1)),10+WEEKDAY(DATE(YEAR(A3)-1,1,1),2)),WEEKNUM(A3-(DATE(YEAR(A3),2,7)-WEEKDAY(DATE(YEAR(A3),2,1)-1,3)-DATE(YEAR(A3),1,1)),10+WEEKDAY(DATE(YEAR(A3),1,1),2)))
我们需要使用不同的基准日期,即第二部分
答案2
这是二月的第一个星期一(假设这是在 B3):
=DATE(YEAR(A3),2,1)+MOD(8-WEEKDAY(DATE(YEAR(A3),2,1),2),7)
那么财政周是
=WEEKNUM(A3,2)-weeknum(B3,2)+1
这是相当万无一失的,但又足够简单。