【问题标题】:Google Sheets SUMIF criteria - How to refer to the cell being evaluated?Google Sheets SUMIF 标准 - 如何引用正在评估的单元格?
【发布时间】:2019-03-17 10:16:55
【问题描述】:

请参阅上面的表格。在 E 列中,我需要 7 月 18 日的“StockCount”总和。该公式应查看 B 列 (EventDate) 中的所有日期,并且仅当事件与 A 列中的事件发生在同一月份时才对库存计数进行求和。

我正在以不同的方式尝试 SumIf,但也许这不是正确使用的函数。请注意,我不想在工作表中添加额外的列。

基本上,如果“正在评估的单元格”-单元格 A 0,我想要类似的内容,然后添加库存计数。

【问题讨论】:

    标签: google-sheets sumifs


    【解决方案1】:

    如果 A 列包含的日期是每个月的第一天,您可以使用从单元格 E3 中填写的日期:

    =ArrayFormula(if(A3<>"",sumif(date(year(B$3:B),month(B$3:B),1),A3,C$3:C),""))
    

    (必须以数组公式的形式输入才能将整个 B 列转换为日期)。

    或更好

    =if(A3<>"",sumifs(C$3:C,B$3:B, ">="&A3,B$3:B,"<="&eomonth(A3,0)),"")
    

    但你也可以在 E3 中使用这个自扩展数组公式:

    =ArrayFormula(if(A3:A<>"",sumif(date(year(B3:B),month(B3:B),1),A3:A,C3:C),""))
    

    【讨论】:

    • 这个和上面的答案对我有用(当然两者都相似),但我标记了这个,因为我发现它更有用,因为提供了选项。我仍然不完全理解arrayformulas。 =ArrayFormula(if(A3:A"",sumif(date(year(B3:B),month(B3:B),1),A3:A,C3:C),"") 是怎么回事) 使公式自扩展?是因为我们将标准表达为范围吗?我知道这是因为我们添加了 A3:A 但它怎么知道它应该使用每个后续单元格中的“标准”但仍使用整个“范围”来测试每个标准?
    • 在 SUMIF(range, criteria, [sum_range]) 中,range 和 [sum_range] 始终是范围。使用单一标准时,SUMIF 会向下检查范围内的每个单元格是否符合标准,如果匹配,则添加 sum_range,提供单一结果(尽管范围也可以是数组,但它仍然以相同的方式工作)。当标准是一个数组时,它会执行之前的“内循环”来为第一个数组元素提供单个结果,但现在有一个“外循环”,因此它对标准数组中的第二个元素重复该过程等. 返回多个结果。
    【解决方案2】:

    将此粘贴​​到 E3 单元格中:

    =ARRAYFORMULA(IF(A3:A<>"", SUMIF(DATE(YEAR(B3:B), MONTH(B3:B), 1), 
     DATE(20&RIGHT(A3:A, 2), TEXT(A3:A, "MM"), 1), C3:C), ))
    

    或 E2 单元格中的这个:

    ={"sum per A column"; 
     ARRAYFORMULA(IF(A3:A<>"", SUMIF(DATE(YEAR(B3:B), MONTH(B3:B), 1), 
     DATE(20&RIGHT(A3:A, 2), TEXT(A3:A, "MM"), 1), C3:C), ))}
    

    【讨论】:

      猜你喜欢
      • 2013-09-16
      • 2014-11-30
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多