【问题标题】:SUMIF with date range for specific column具有特定列日期范围的 SUMIF
【发布时间】:2019-12-12 18:37:42
【问题描述】:

我一直试图为此找到答案,但没有成功 - 我需要对指定日期范围内的列求和,只要我的行名与参考表的列名匹配。

Reference_Sheet

Date     John  Matt
07/01/19 1     2
07/02/19 1     2
07/03/19 2     1
07/04/19 1     1
07/05/19 3     3
07/06/19 1     2
07/07/19 1     1
07/08/19 5     9
07/09/19 9     2

Sheet1

     A     B     

  1        07/01
  2        07/07
  3        Week1 
  4  John  10
  5  Matt  12

必须在谷歌表格中工作,我尝试使用 SUMPRODUCT,它告诉我我不能将文本相乘,我尝试了 SUMIFS,它让我知道我不能有不同的数组参数 - 失败的努力类似于下面,

=SUMIFS('Reference_Sheet'!B2:AO1000,'Reference_Sheet'!A1:AO1,"=A4",'Reference_Sheet'!A2:A1000,">=B1",'Reference_Sheet'!A2:A1000,"<=B2")

=SUMPRODUCT(('Reference_Sheet'!$A$2:$AO$1000)*('Reference_Sheet'!$A$2:$A$1000>=B$1)*('Reference_Sheet'!$A$2:$A$1000<=B$2)*('Reference_Sheet'!$A$1:$AO$1=$A4))

【问题讨论】:

    标签: filter google-sheets match google-sheets-formula google-sheets-query


    【解决方案1】:

    这可能有效:

    =sumifs(indirect("Reference_Sheet!"&address(2,match(A4,Reference_Sheet!A$1:AO$1,0))&":"&address(100,match(A4,Reference_Sheet!A$1:AO$1,0))),Reference_Sheet!A$2:A$100,">="&B$1,Reference_Sheet!A$2:A$100,"<="&B$2)
    

    但您需要指定需要向下移动多少行。在我的公式中,它向下查找到 100 行。

    要更改行数,需要更改三个地方的数字:

    1. &地址(100
    2. Reference_Sheet!A$2:A$100," ... 在两个地方

    简单解释一下发生了什么:

    • 使用match 在第 1 行查找此人的姓名
    • 使用addressindirect构建要添加的单元格地址
    • 然后根据日期sumIfs()

    【讨论】:

      【解决方案2】:

      替代方案:

      =SUMPRODUCT(QUERY(TRANSPOSE(QUERY($A:$D, 
       "where A >= date '"&TEXT(F$1, "yyyy-mm-dd")&"'
          and A <= date '"&TEXT(F$2, "yyyy-mm-dd")&"'", 1)), 
       "where Col1 = '"&$E4&"'", 0))
      

      【讨论】:

        猜你喜欢
        • 2014-11-17
        • 2023-04-01
        • 2014-06-15
        • 1970-01-01
        • 2021-03-27
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多