我有一个很好的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
。我不确定为什么,而且我也不是最擅长解决这些电子表格公式的问题,因此希望有人能提供帮助。
答案 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), ))