Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在excel中计算两个日期范围之间的周数_Excel_Date_Datetime_Excel Formula_Excel 2007 - Fatal编程技术网

如何在excel中计算两个日期范围之间的周数

如何在excel中计算两个日期范围之间的周数,excel,date,datetime,excel-formula,excel-2007,Excel,Date,Datetime,Excel Formula,Excel 2007,我有一个问题,我在excel中有3列,A1是日历日期;B1列有会计季度开始日期;以及C1列中的财政季度结束日期 我试图找出A2和A3之间的周数。这里的问题是我应该把第一个星期日看作是本季度的第一周。我的财政年度从每个月的2月开始 我进行此计算的原因是填充一个季度的周数,其中我的第一周从该季度的第一个星期日开始 =ROUNDUP(MOD(IF(A13>=IF(DATE(YEAR($A13),2,1)=1,DATE(YEAR($A13),2,1),DATE(YEAR(A13),2,7-WEEK

我有一个问题,我在excel中有3列,A1是日历日期;B1列有会计季度开始日期;以及C1列中的财政季度结束日期

我试图找出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周,因为它是第2季度的乞讨,5/1/16是星期天开始的。在这种情况下,使用上述公式一周的结果为13


请帮助我。

您可以使用
WEEKNUM
获取周数

然而,您提到您的一周不会在周六结束,而是在周日结束,因此您必须执行
=WEEKNUM(,2)

  • 序列号-序列号格式的有效Excel日期
  • 返回\u type-[可选]一周开始的那一天。默认值为1
返回类型可以是1或2:

  • 一周从周日开始
  • 两周从周一开始
或者。。。阅读它,计算两个日期之间的周数

  • 在空白单元格中输入公式(A2表示结束日期,A1表示开始日期)
  • 如果您只想得到整周的时间,请应用此INT函数:
    =INT((A2-A1)/7)
  • 试试看


    希望能有所帮助。

    假设季度开始日期和结束日期分别在
    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)))))
    
    这适用于您在评论中提到的
    A1:C1
    格式。显然,这依赖于手动更新
    B1
    C1

    编辑#2

    =WEEKNUM(C1)-WEEKNUM(B1)
    
    如果将2016年1月5日计算为第1周,则在结果中添加1。从最低周数中去掉最高周数(默认值为从星期日开始计数,如果您想准确定义,可以更改为
    (C1,1)
    )。鲁尔特是13,这将符合手动计算

    您将希望查看上一次编辑,以获取在下一个季度结束时所需的if公式的示例。若要反转负数,当日期在下一年年初时,需要添加52,否则需要添加0。

    您可以使用“隐藏”函数DATEDIF:


    例如,我们在A1中写入开始日期(2016年5月1日),在B1中写入结束日期(2016年7月31日),在C1=DATEDIF(A1,B1,“d”)/7中,如果每个会计年度的季度不是每13个星期日一次,则结果为13,那么他们的日期是什么呢?@Glitch_医生如果他们真的在第13周的话,那就可以了。是的,我最后知道了,每3个月的第一个星期天。。。。看到我的答案,测试和工作。我的坏我输入的列名错误。A1是日历日期,B1是季度的开始日期,C1是结束日期。那么您只处理当前日期和当前季度?你想要的输出和周数一样吗?是的,我基本上是想找出从第一个星期日开始的季度中下降的周数:(@Sandra请看编辑,我相信这就是你要找的。任何问题都可以问。可能是我把你弄糊涂了。A1=5/1/16 B1=5/1/16 C1=7/31/16现在我正试图得到B1和C1之间从周日开始的周数。扩大你的答案,这没有什么意义。
    =WEEKNUM(A1)-WEEKNUM(B1)+IF(AND(A1>=DATE(YEAR(A1),1,1),A1<DATE(YEAR(A1),MONTH(B1),DAY(B1))),53,1)
    
    =WEEKNUM(C1)-WEEKNUM(B1)