如何使ARRAYFORMULA与SUMIFS一起使用?

时间:2019-07-24 10:04:49

标签: google-sheets google-sheets-formula array-formulas

我有一个很好的SUMIFS公式,但是我必须将其向下拖动以填充每一列,这对于我的电子表格中的数据量来说是不切实际的,因此我想将其转换为ARRAYFORMULA。该公式用于计算一个月内购买了多少产品。当前看起来像这样:

=SUMIFS(All!$N$3:$N, All!$AG$3:$AG, ">=1/1/2018", All!$AG$3:$AG, "<=31/1/2018", All!$L$3:$L, $A2)

All!N包含客户购买的商品数量,All!AG包含日期,All!L包含产品代码,并根据第{{1}列中的产品代码进行检查}。

我只是尝试做

A

但这仅适用于单元格=ARRAYFORMULA(SUMIFS(All!$N$3:$N, All!$AG$3:$AG, ">=1/1/2018", All!$AG$3:$AG, "<=31/1/2018", All!$L$3:$L, $A$2:$A)) -它只输出与其他公式相同的结果,并且不会继续沿列移动,这正是我想要的。该解决方案适用于我拥有的A2公式(它执行相同的操作但不检查日期),但不适用于SUMIF。我不确定为什么,而且我也不是最擅长解决这些电子表格公式的问题,因此希望有人能提供帮助。

1 个答案:

答案 0 :(得分:1)

粘贴在 B2 单元格中:

=ARRAYFORMULA(IF(LEN($A$2:$A), IFERROR(VLOOKUP($A$2:$A, 
 QUERY({All!$B$3:$D}, 
 "select Col1, sum(Col2) 
  where Col3 is not null 
  group by Col1 
  label sum(Col2)''", 0), 2, 0), 0), ))

粘贴到 C2 单元格中并向右拖动:

=ARRAYFORMULA(IF(LEN($A$2:$A), IFERROR(VLOOKUP($A$2:$A, 
 QUERY({All!$B$3:$D}, 
 "select Col1, sum(Col2) 
  where Col3 >= date '"&TEXT(        C$1,     "yyyy-mm-dd")&"' 
    and Col3 <= date '"&TEXT(EOMONTH(C$1, 0), "yyyy-mm-dd")&"' 
  group by Col1 
  label sum(Col2)''", 0), 2, 0), 0), ))

0

spreadsheet demo