【问题标题】:Excel Formula: weekly comparison with corresponding week of previous monthExcel公式:每周与上个月对应周的比较
【发布时间】:2016-05-10 08:32:11
【问题描述】:

我正在尝试在 Google 表格中创建每周比较。

细微差别在于比较周需要动态填充为上个月的对应周。

因此,如果数据集是 5 月的第一周,比较周将是 4 月的第一周。同样,5 月的第 2 周将与 4 月的第 2 周进行比较,依此类推。

例如,如果 A1 是 2016 年 5 月 1 日,A2 是 2016 年 5 月 7 日,则单元格 B1 和 B2 应分别填充为 2016 年 4 月 3 日和 2016 年 4 月 9 日(其中星期日是第一天本周)。

我已经建立了以下公式,我认为它可以帮助我完成一半:

=WEEKNUM(A1)-WEEKNUM(DATE(YEAR(A1),MONTH(A1),1),1)+1

此公式返回从给定日期开始的月份中的周数。例如,2016 年 5 月 1 日返回值“1”,因为日期出现在该月的第一周。 5/8/2016 将返回“2”等。

【问题讨论】:

    标签: google-sheets excel-formula


    【解决方案1】:

    使用下面的公式。它看起来很难看,但它应该与您的示例完全一样。

    例如,如果 A1 是 2016 年 5 月 1 日,A2 是 2016 年 5 月 7 日,则单元格 B1 和 B2 应分别填充为 2016 年 4 月 3 日和 2016 年 4 月 9 日(星期日是 一周的第一天)。

    =DATE(YEAR(A1),MONTH(A1)-1,DAY(A1)+IF(WEEKDAY(A1-DAY(A1)+1)=1,8,WEEKDAY(A1-DAY(A1)+1))-WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,1),1))
    

    这是它的工作原理

    =DATE(
       YEAR(A1),
       MONTH(A1)-1,
    

    返回上个月的日期,日期计算如下:

    DAY(A1) 
    

    从当前日期开始

    +IF(WEEKDAY(A1-DAY(A1)+1)=1,8,WEEKDAY(A1-DAY(A1)+1))    
    

    找出当月的第一天是哪一天并加上它的数字。只有当它是星期天(一周的第一天)时,它才需要跳过第 0 周,所以它增加了 8

    -WEEKDAY(DATE(YEAR(A1),MONTH(A1)-1,1),1)        
    

    减去代表上个月第一天的数字

    例如,如果您有 2016 年 5 月 3 日,它会: (3rd day) + (当月第一天是星期日,加8) - (上个月第一天是星期五,减6)

    3 + 8 - 6 =5,这是上个月的一天,所以结果是 2016 年 4 月 5 日

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多