【问题标题】:How to calculate the number of weeks between 2 date range in excel如何计算excel中2个日期范围之间的周数
【发布时间】:2016-11-29 09:35:34
【问题描述】:

我有一个问题,我在 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 周。

例如:2016 年 5 月 1 日应该是第 1 周,因为它是 q2 的乞求,而 16 年 5 月 1 日是周日的开始。在这种情况下,使用上述公式得出的一周结果是 13

请帮帮我..

【问题讨论】:

  • 如果每个财政年度的季度不是每 13 个星期日,那么它们的日期是什么?
  • @Glitch_Doctor 如果他们真的属于第 13 周是可以的..
  • 是的,我最后得到了它,每 3 个月的第一个星期日....查看我的答案,经过测试和工作。

标签: excel date datetime excel-formula excel-2007


【解决方案1】:

您可以使用WEEKNUM 获取周数。

但是你提到你的一周不会在星期六结束,而是在星期日结束,所以你必须这样做=WEEKNUM(<insert here where the date is>,2)

【讨论】:

    【解决方案2】:
    =WEEKNUM (serial_num, [return_type])
    
    • serial_num - 序列号格式的有效 Excel 日期。
    • return_type - [可选] 一周的开始日期。默认值为 1。

    return_type 可以是 1 或 2:

    • 1 - 星期从星期日开始
    • 2 - 每周从星期一开始

    或...阅读 here 以计算 2 个日期之间的周数。

    1. 在空白单元格中输入公式=(A2-A1)/7,(A2表示结束日期,A1表示开始日期)
    2. 如果你只想得到整个星期,请应用这个 INT 函数:=INT((A2-A1)/7)

    试试看here, on sheet "week"

    希望对你有所帮助。

    【讨论】:

      【解决方案3】:

      假设季度开始日期和结束日期分别在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) 是否在季度开始日期和结束日期之间,并检查与开始日期之间的周差。为了弥补第四季度延长到明年的异常情况,末尾的 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 格式。显然,这依赖于手动更新 B1C1

      编辑#2

      =WEEKNUM(C1)-WEEKNUM(B1)
      

      如果您将 2016 年 5 月 1 日计为第 1 周,则将结果加 1。从最低的周数中去掉最高的周数(默认是从周日开始计算,或者如果你想准确定义它,你可以更改为(C1,1))。结果为 13,与手动计算相匹配。

      您将需要查看先前的编辑,以了解当季度在另一年结束时您将需要的 if 公式的示例。要反转负数,当日期在明年年初时,需要添加 52,如果不是,则需要添加 0。

      【讨论】:

      • 我的错误是我输入了错误的列名。 A1 有日历日期,B1 有季度的开始日期,C1 有结束日期..
      • 那么您只使用当前日期和当前季度?您希望输出与周数一样吗?
      • 是的,我基本上是想找到从第一个星期日开始的季度下降的周数:(
      • @Sandra 请查看编辑,我相信这就是您要找的。有任何问题欢迎随时提问。
      • 可能是我把你弄糊涂了。 A1=5/1/16 B1=5/1/16 C1=7/31/16 现在我正在尝试获取从 B1 和 C1 之间的星期日开始的周数。
      【解决方案4】:

      您可以使用“隐藏”功能DATEDIF:

      例如,我们在 A1 中写入开始日期 (01/05/2016),在 B1 - 结束日期 (31/07/2016) 中,在 C1 = DATEDIF(A1,B1,"d")/7 中,结果将13岁

      【讨论】:

      • 扩展你的答案,这没什么意义。
      猜你喜欢
      • 1970-01-01
      • 2022-01-24
      • 2020-07-08
      • 2020-12-20
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多