【问题标题】:How do sum if the date is greater than 10 days from and including the upcoming Sunday?如果日期从即将到来的星期日(包括即将到来的星期日)起超过 10 天,如何求和?
【发布时间】:2019-07-20 19:38:22
【问题描述】:

我有 2 行。一行有日期,另一行有数字。

我想建立一个谷歌表格公式,让我可以在下周六之后的 10 天求和。因此,如果今天是 2019 年 7 月 22 日星期一,我想要从星期日(2019 年 7 月 28 日)到包括接下来的 9 天的总和。如果今天是星期二(2019 年 7 月 23 日),公式将返回相同的结果,因为它总是从下个星期日开始。

我看待它的另一种方式是当前周数之后 10 天的总和,因为谷歌的周数从星期日开始。

感谢您的帮助。

我当前的数组公式使用的是周数:

sumifs(rowwithnumbers,weeknum(rowwithdates),">"&weeknum(today()),weeknum(rowwithdates),"<="&weeknum(Today())+2))

但这给了我接下来的 14 天,这很接近但不是我想要的。我不想在当前周之后的接下来的 2 周内求和,我想在当前周之后的接下来的 1o 天中求和。

【问题讨论】:

    标签: date google-sheets google-sheets-formula array-formulas gs-vlookup


    【解决方案1】:
    =ARRAYFORMULA(SUM(INDIRECT(
     ADDRESS(2, MATCH(VLOOKUP(WEEKNUM(TODAY())+1, {WEEKNUM(ROW(INDIRECT(
     "A"&DATEVALUE(TODAY())&":A"&DATEVALUE(TODAY()+8)))),ROW(INDIRECT(
     "A"&DATEVALUE(TODAY())&":A"&DATEVALUE(TODAY()+8)))}, 2, 0), 1:1, 0), 4)&":"&
     ADDRESS(2, MATCH(VLOOKUP(WEEKNUM(TODAY())+1, {WEEKNUM(ROW(INDIRECT(
     "A"&DATEVALUE(TODAY())&":A"&DATEVALUE(TODAY()+8)))),ROW(INDIRECT(
     "A"&DATEVALUE(TODAY())&":A"&DATEVALUE(TODAY()+8)))}, 2, 0), 1:1, 0)+9, 4))))
    

    【讨论】:

      【解决方案2】:

      虽然您可以将所有内容放在一个公式中,但我认为为了清楚起见和调试,最好使用单独的表格(称为“日期”)进行日期计算。然后使用日期计算的结果作为 SUMIFS 函数的参数。

      在这种情况下,下周六的日期计算为:

      =IF(WEEKDAY(TODAY()) = 7, TODAY() + 7, TODAY() + 7-WEEKDAY(TODAY()))
      

      这会检查今天是否是星期六,如果是,则使用今天加上 7 天。否则,它只会添加距离即将到来的星期六的天数。例如,如果您将该单元格存储在 B2 中,那么您可以使用简单的方法计算结束日期:

      =B2+10
      

      如果您将其存储在“日期”表的 C2 中,并且您的值列表位于名为“值”的表中,A 列中的日期和 B 列中的数字,那么您的求和函数为:

      =SUMIFS(Values!$B:$B,Values!$A:$A, ">= " & Dates!B2, Values!$A:$A, "<= " & Dates!C2)
      

      这里是显示以上所有内容的 Google 表格的链接:Google Sheet

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        相关资源
        最近更新 更多