将 ARRAYFORMULA 与 SUMIF 用于多个条件,并结合通配符 select 给定条件的所有值

Using ARRAYFORMULA with SUMIF for multiple conditions combined with a wildcard to select all values for a given condition

我在多个条件下使用 ARRAYFORMULA 使用 SUMIF 使用 & 连接条件并且它有效。现在我想将这个想法类似地用于一个特殊条件,指示考虑对给定列使用通配符(“ALL”)的所有值,但它不起作用。

这是我的例子:

I2如果有以下公式:

=ARRAYFORMULA(if(not(ISBLANK(H2:H)),sumif(B2:B & C2:C & D2:D & year(E2:E),
  if($G="ALL",B2:B,$G) & if($G="ALL",C2:C,$G) & if($G="ALL",D2:D,$G) &
  H2:H,A2:A),))

它有效,当我输入特定值时,但当我使用我的通配符时: ALL 表示对于给定的 column/criteria 所有值都应考虑在内,它不起作用正如预期的那样。该方案应考虑所有条件都可以标记为 ALL 在这种情况下,它将提供每年 NUM 的总和。

这是我在 Google 电子表格中的测试样本:

https://docs.google.com/spreadsheets/d/1c28KRQWgPCEdzVvwvXFOQ3Y13MBDjpEgKdfoLipFAOk/edit?usp=sharing

备注:

  1. 我能够使用 SUMPRODUCT 得到一个解决方案,但是这个函数没有用 ARRAYFORMULA
  2. 扩展
  3. 在我的真实例子中,我有更多的条件,所以我正在寻找一个升级有更多条件的解决方案

使用:

=QUERY(QUERY(FILTER(A2:E, 
 IF(G2="All", B2:B<>"×", B2:B=G2), 
 IF(G4="All", C2:C<>"×", C2:C=G4), 
 IF(G6="All", D2:D<>"×", D2:D=G6)), 
 "select year(Col5),sum(Col1) 
  where Col1 is not null
  group by year(Col5)"), 
  "offset 1", 0)