我在这里有一个问题,我在Excel中有3列,A1是日历日期;列B1具有fiscal_quarter_start_date;和栏目中的fiscal_quarter_end_date。
我试图找到介于A2和A3之间的周数。这里的问题是我应该把第一个星期日视为本季度的第一周。我的财政年度从每个月的2月开始。
我进行此计算的原因是填充一个季度的周数,其中我的第一周从该季度的第一个星期日开始。
=ROUNDUP(MOD(IF(A13>=IF(DATE(YEAR($A13),2,1)=1,DATE(YEAR($A13),2,1),DATE(YEAR(A13),2,7-WEEKDAY(DATE(YEAR(A13),2,1),1)+2)),ROUNDUP((A13-IF(WEEKDAY(DATE(YEAR(A13),2,1),1)=1,DATE(YEAR($A13),2,1),DATE(YEAR($A13),2,7-WEEKDAY(DATE(YEAR($A13),2,1),1)+2))+1)/7,0),ROUNDUP((A13-IF(DATE(YEAR($A13)-1,2,1)=1,DATE(YEAR($A13)-1,2,1),DATE(YEAR($A13)-1,2,7-WEEKDAY(DATE(YEAR($A13)-1,2,1),1)+2))+1)/7,0)),13.01),0)
以上是我一路走来的公式。然而,用13进行四舍五入不是一个可行的解决方案,因为它不一定总是有13个星期。
例如:5/1/16应该是第1周因为它是q2的乞讨而且5/1/16是星期日的开始。在这种情况下,使用上面的公式结果为一周是13
请帮帮我..
答案 0 :(得分:0)
您可以使用WEEKNUM
获取周数。
但是你提到你的一周不会在星期六结束,而是在周日结束,所以你必须做=WEEKNUM(<insert here where the date is>,2)
答案 1 :(得分:0)
=WEEKNUM (serial_num, [return_type])
Return_type可以是1或2:
或...读取它here以计算两个日期之间的周数。
=(A2-A1)/7
输入空白单元格,(A2表示结束日期,A1表示开始日期)=INT((A2-A1)/7)
希望它能提供帮助。
答案 2 :(得分:0)
假设Quarter开始和结束日期分别在A3:A6
:
=IF(AND(C1>=$A3,C1<$A4),WEEKNUM(C1)-WEEKNUM($A3)+1,IF(AND(C1>=$A4,C1<$A5),WEEKNUM(C1)-WEEKNUM($A4)+1,IF(AND(C1>=$A5,C1<$A6),WEEKNUM(C1)-WEEKNUM($A5)+1,WEEKNUM(C1)-WEEKNUM($A6)+(IF(AND(C1>=DATE(YEAR(C1),1,1),C1<DATE(YEAR(C1),MONTH($A6),DAY($A6))),53,1)))))
这是检查上面单元格中的日期(C1
)是否在季度开始日期和结束日期之间,并检查从开始日期开始的周数差异。为了覆盖Q4延伸到下一年的异常,最后的IF
语句在受影响的日期增加了53而不是1。
编辑#1
=WEEKNUM(A1)-WEEKNUM(B1)+IF(AND(A1>=DATE(YEAR(A1),1,1),A1<DATE(YEAR(A1),MONTH(B1),DAY(B1))),53,1)
这适用于您在评论中提到的A1:C1
格式。显然,这依赖于B1
和C1
手动更新。
编辑#2
=WEEKNUM(C1)-WEEKNUM(B1)
如果你计算第1周05/01/2016,那么在结果中加1。从最低周数中取出最高周数(默认值从星期日算起,或者如果要精确定义,则可以更改为(C1,1)
)。 Reult是13,与手动计算相符。
您将需要查看上一个编辑,以获取当季度在另一年结束时您将需要的if公式的示例。为了扭转负面数字,当日期在下一年的早期时需要增加52,而当它没有时,它需要增加0.
答案 3 :(得分:-1)
您可以使用“隐藏”功能DATEDIF:
例如在A1中,我们写了开始日期(2016年5月1日),在B1 - 结束日期(2016年7月31日)和C1 = DATEDIF(A1,B1,“d”)/ 7结果将是13