简体   繁体   English

Excel:计算会计年度的星期

[英]Excel: Calculate week of fiscal year

I am trying to calculate the week number of the fiscal year that a given date falls on - our fiscal year begins on July 1 and ends June 30, weeks go from Sun-Sat and the data contain multiple years.我正在尝试计算给定日期所在的财政年度的周数 - 我们的财政年度从 7 月 1 日开始,到 6 月 30 日结束,从周日到周六的 go 周,数据包含多年。

For example: 7/1/2017 falls on a Saturday, so it would be week 1 in the fiscal year.例如:2017 年 7 月 1 日是星期六,所以它是财政年度的第 1 周。 7/2-7/8, 2017 would be week 2 and the week of 6/23-6/30, 2018 would be week 52, this would start over to week 1 on 7/1/2018. 2017 年 7 月 2 日至 7 月 8 日为第 2 周,2018 年 6 月 23 日至 6 月 30 日为第 52 周,这将从 2018 年 7 月 1 日的第 1 周开始。

Any help would be appreciated, thank you!任何帮助将不胜感激,谢谢!

Screenshot of data I'm working with我正在使用的数据的屏幕截图

Screenshot of formulas in Weekday, FiscalYear, and FiscalQuarter] Weekday、FiscalYear 和 FiscalQuarter 中的公式截图]

Unlike the others, I understand you to mean that the fiscal year always starts on July 1, and that the week changes on Sunday.与其他人不同,我理解您的意思是财政年度总是从 7 月 1 日开始,而星期在星期日发生变化。

Algorithm算法

  • Compute preceding July 1: =DATE(YEAR(A2)-IF(MONTH(A2)>=7,0,1),7,1)在 7 月 1 日之前计算: =DATE(YEAR(A2)-IF(MONTH(A2)>=7,0,1),7,1)
  • Compute first Sunday of the fiscal year: =prevJul1 +7-WEEKDAY(prevJul1 +6)计算财政年度的第一个星期日: =prevJul1 +7-WEEKDAY(prevJul1 +6)
  • Compute weeknumber since first Sunday: =INT((A2-firstSunday)/7)+1计算自第一个星期日以来的周数: =INT((A2-firstSunday)/7)+1
  • Add 1 if prevJul1 is not a Sunday如果prevJul1不是星期日,则加1

Putting it all together:把它们放在一起:

=INT((A2-(DATE(YEAR(A2)-IF(MONTH(A2)>=7,0,1),7,1)+7-WEEKDAY(DATE(YEAR(A2)-IF(MONTH(A2)>=7,0,1),7,1)+6)))/7)+1+(WEEKDAY(DATE(YEAR(A2)-IF(MONTH(A2)>=7,0,1),7,1))<>1)

在此处输入图像描述

Computes the week number for any date where week 1 starts on the first Sunday on or after the 1st of July:计算第 1 周从 7 月 1 日或之后的第一个星期日开始的任何日期的周数:

=INT(([@Date]-(DATE(YEAR([@Date]-WEEKDAY([@Date])+1)-IF(MONTH([@Date]-WEEKDAY([@Date])+1)>=7,0,1),7,1)+MOD(8-WEEKDAY(DATE(YEAR([@Date]-WEEKDAY([@Date])+1)-IF(MONTH([@Date]-WEEKDAY([@Date])+1)>=7,0,1),7,1)),7)))/7)+1

Here's some sample output:这是一些示例 output:

Date           | WeekNo
-------------- | ------
2017/06/17 Sat | 50    
2017/06/18 Sun | 51    
2017/06/19 Mon | 51    
2017/06/20 Tue | 51    
2017/06/21 Wed | 51    
2017/06/22 Thu | 51    
2017/06/23 Fri | 51    
2017/06/24 Sat | 51    
2017/06/25 Sun | 52    
2017/06/26 Mon | 52    
2017/06/27 Tue | 52    
2017/06/28 Wed | 52    
2017/06/29 Thu | 52    
2017/06/30 Fri | 52    
2017/07/01 Sat | 52    
2017/07/02 Sun | 1     
2017/07/03 Mon | 1     
2017/07/04 Tue | 1     
2017/07/05 Wed | 1     
2017/07/06 Thu | 1     
2017/07/07 Fri | 1     
2017/07/08 Sat | 1     
2017/07/09 Sun | 2     
2018/06/17 Sun | 51    
2018/06/18 Mon | 51    
2018/06/19 Tue | 51    
2018/06/20 Wed | 51    
2018/06/21 Thu | 51    
2018/06/22 Fri | 51    
2018/06/23 Sat | 51    
2018/06/24 Sun | 52    
2018/06/25 Mon | 52    
2018/06/26 Tue | 52    
2018/06/27 Wed | 52    
2018/06/28 Thu | 52    
2018/06/29 Fri | 52    
2018/06/30 Sat | 52    
2018/07/01 Sun | 1     
2018/07/02 Mon | 1     
2018/07/03 Tue | 1     
2018/07/04 Wed | 1     
2018/07/05 Thu | 1     
2018/07/06 Fri | 1     
2018/07/07 Sat | 1     
2018/07/08 Sun | 2     
2018/07/09 Mon | 2     
2019/06/17 Mon | 51    
2019/06/18 Tue | 51    
2019/06/19 Wed | 51    
2019/06/20 Thu | 51    
2019/06/21 Fri | 51    
2019/06/22 Sat | 51    
2019/06/23 Sun | 52    
2019/06/24 Mon | 52    
2019/06/25 Tue | 52    
2019/06/26 Wed | 52    
2019/06/27 Thu | 52    
2019/06/28 Fri | 52    
2019/06/29 Sat | 52    
2019/06/30 Sun | 53    
2019/07/01 Mon | 53    
2019/07/02 Tue | 53    
2019/07/03 Wed | 53    
2019/07/04 Thu | 53    
2019/07/05 Fri | 53    
2019/07/06 Sat | 53    
2019/07/07 Sun | 1     
2019/07/08 Mon | 1     
2019/07/09 Tue | 1     
2020/06/17 Wed | 50    
2020/06/18 Thu | 50    
2020/06/19 Fri | 50    
2020/06/20 Sat | 50    
2020/06/21 Sun | 51    
2020/06/22 Mon | 51    
2020/06/23 Tue | 51    
2020/06/24 Wed | 51    
2020/06/25 Thu | 51    
2020/06/26 Fri | 51    
2020/06/27 Sat | 51    
2020/06/28 Sun | 52    
2020/06/29 Mon | 52    
2020/06/30 Tue | 52    
2020/07/01 Wed | 52    
2020/07/02 Thu | 52    
2020/07/03 Fri | 52    
2020/07/04 Sat | 52    
2020/07/05 Sun | 1     
2020/07/06 Mon | 1     
2020/07/07 Tue | 1     
2020/07/08 Wed | 1     
2020/07/09 Thu | 1     
2021/06/17 Thu | 50    
2021/06/18 Fri | 50    
2021/06/19 Sat | 50    
2021/06/20 Sun | 51    
2021/06/21 Mon | 51    
2021/06/22 Tue | 51    
2021/06/23 Wed | 51    
2021/06/24 Thu | 51    
2021/06/25 Fri | 51    
2021/06/26 Sat | 51    
2021/06/27 Sun | 52    
2021/06/28 Mon | 52    
2021/06/29 Tue | 52    
2021/06/30 Wed | 52    
2021/07/01 Thu | 52    
2021/07/02 Fri | 52    
2021/07/03 Sat | 52    
2021/07/04 Sun | 1     
2021/07/05 Mon | 1     
2021/07/06 Tue | 1     
2021/07/07 Wed | 1     
2021/07/08 Thu | 1     
2021/07/09 Fri | 1     
2022/06/17 Fri | 50    
2022/06/18 Sat | 50    
2022/06/19 Sun | 51    
2022/06/20 Mon | 51    
2022/06/21 Tue | 51    
2022/06/22 Wed | 51    
2022/06/23 Thu | 51    
2022/06/24 Fri | 51    
2022/06/25 Sat | 51    
2022/06/26 Sun | 52    
2022/06/27 Mon | 52    
2022/06/28 Tue | 52    
2022/06/29 Wed | 52    
2022/06/30 Thu | 52    
2022/07/01 Fri | 52    
2022/07/02 Sat | 52    
2022/07/03 Sun | 1     
2022/07/04 Mon | 1     
2022/07/05 Tue | 1     
2022/07/06 Wed | 1     
2022/07/07 Thu | 1     
2022/07/08 Fri | 1     
2022/07/09 Sat | 1     

If A1 contains July 1 st of any year, then B1 :如果A1包含任何一年的 7 月 1,则B1

=A1+CHOOSE(WEEKDAY(A1),0,6,5,4,3,2,1)

will give the date of the first Sunday after or on that date.将给出该日期之后或之后的第一个星期日的日期。 This is day #1 of week #1 of the new fiscal year这是新财政年度第 1 周的第 1 天

Now it is easy to get the week number:现在很容易得到周数:

=INT(1+(date_in_question - day#1week#1)/7)

Copy B1 and PasteSpecialValues and formats into C1B1和 PasteSpecialValues 和格式复制到C1

C1 is the starting date of the new fiscal year C1是新会计年度的开始日期

In D1 put an arbitrary date within the new fiscal year.D1中输入新会计年度内的任意日期。 In E1 enter:E1中输入:

=INT(1+(D1-C1)/7)

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM