如何使 ARRAYFORMULA 与 SUMIFS 一起工作?
How to make ARRAYFORMULA work with SUMIFS?
我有一个可以正常工作的 SUMIFS
公式,但我必须将它向下拖动以填充每一列,这对于我在传播中的数据量来说是非常不切实际的sheet,因此我想把它变成一个 ARRAYFORMULA
。该公式应该计算一个月内购买了多少产品。目前看起来像这样:
=SUMIFS(All!$N:$N, All!$AG:$AG, ">=1/1/2018", All!$AG:$AG, "<=31/1/2018", All!$L:$L, $A2)
All!N
包含客户购买的商品数量,All!AG
包含日期,All!L
包含根据列 [=] 中的产品代码检查的产品代码17=].
我试着简单地做
=ARRAYFORMULA(SUMIFS(All!$N:$N, All!$AG:$AG, ">=1/1/2018", All!$AG:$AG, "<=31/1/2018", All!$L:$L, $A:$A))
但这仅适用于单元格 A2
- 它仅打印与其他公式相同的结果并且不会在列中继续,这正是我希望它做的。该解决方案适用于我的 SUMIF
公式(它做同样的事情但不检查日期)但不适用于 SUMIFS
。我不确定为什么,而且我不是最擅长解决这些传播sheet 公式的人,所以我希望有人能提供帮助。
更新:这是一个显示问题的虚拟 sheet:https://docs.google.com/spreadsheets/d/1pX-icbJxmy8A0jhKLnSRxhZTLRgYFG_iU2BOQrseCCg/edit?usp=sharing
粘贴到 B2 单元格:
=ARRAYFORMULA(IF(LEN($A:$A), IFERROR(VLOOKUP($A:$A,
QUERY({All!$B:$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:$A), IFERROR(VLOOKUP($A:$A,
QUERY({All!$B:$D},
"select Col1, sum(Col2)
where Col3 >= date '"&TEXT( C, "yyyy-mm-dd")&"'
and Col3 <= date '"&TEXT(EOMONTH(C, 0), "yyyy-mm-dd")&"'
group by Col1
label sum(Col2)''", 0), 2, 0), 0), ))
spreadsheet demo
我有一个可以正常工作的 SUMIFS
公式,但我必须将它向下拖动以填充每一列,这对于我在传播中的数据量来说是非常不切实际的sheet,因此我想把它变成一个 ARRAYFORMULA
。该公式应该计算一个月内购买了多少产品。目前看起来像这样:
=SUMIFS(All!$N:$N, All!$AG:$AG, ">=1/1/2018", All!$AG:$AG, "<=31/1/2018", All!$L:$L, $A2)
All!N
包含客户购买的商品数量,All!AG
包含日期,All!L
包含根据列 [=] 中的产品代码检查的产品代码17=].
我试着简单地做
=ARRAYFORMULA(SUMIFS(All!$N:$N, All!$AG:$AG, ">=1/1/2018", All!$AG:$AG, "<=31/1/2018", All!$L:$L, $A:$A))
但这仅适用于单元格 A2
- 它仅打印与其他公式相同的结果并且不会在列中继续,这正是我希望它做的。该解决方案适用于我的 SUMIF
公式(它做同样的事情但不检查日期)但不适用于 SUMIFS
。我不确定为什么,而且我不是最擅长解决这些传播sheet 公式的人,所以我希望有人能提供帮助。
更新:这是一个显示问题的虚拟 sheet:https://docs.google.com/spreadsheets/d/1pX-icbJxmy8A0jhKLnSRxhZTLRgYFG_iU2BOQrseCCg/edit?usp=sharing
粘贴到 B2 单元格:
=ARRAYFORMULA(IF(LEN($A:$A), IFERROR(VLOOKUP($A:$A,
QUERY({All!$B:$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:$A), IFERROR(VLOOKUP($A:$A,
QUERY({All!$B:$D},
"select Col1, sum(Col2)
where Col3 >= date '"&TEXT( C, "yyyy-mm-dd")&"'
and Col3 <= date '"&TEXT(EOMONTH(C, 0), "yyyy-mm-dd")&"'
group by Col1
label sum(Col2)''", 0), 2, 0), 0), ))