【问题标题】:SUMIF Array Formula with merged columns + greater than date and less than date具有合并列 + 大于日期和小于日期的 SUMIF 数组公式
【发布时间】:2021-08-05 11:15:51
【问题描述】:

table screenshot

我需要 L2 中的数组公式(列 Total Orders),其结果如屏幕截图所示,

  • 开始日期(J列)到结束日期(K列)范围内的一堆Color&Fruit&Meal的Orders(E列) )

可以用数组公式解决吗?

我已经尝试过,但我不知道如何找到任何解决方案

=ArrayFormula(IF(G2:G="","",SUMIF(B2:B&C2:C&D2:D&A2:A&A2:A,G2:G&H2:H&I2:I&">="&J2:J&"<="&K2:K,E2:E)))

Google Sheets

【问题讨论】:

标签: google-sheets array-formulas sumifs


【解决方案1】:

此公式将使用列JK 中的日期作为过滤条件,通过G:I 列中的键逐行计算总订单数:

=arrayformula( 
  if( 
    isblank(G2:G), 
    iferror(1/0), 
    mmult( 
      ( 
        transpose(B2:B & C2:C & D2:D) 
        = 
        G2:G & H2:H & I2:I 
      ) 
      * 
      ( 
        (J2:J <= transpose(A2:A)) 
        * 
        (transpose(A2:A) <= K2:K) 
      ),
      n(E2:E) 
    ) 
  ) 
)

公式应该转到单元格L2

在示例电子表格中查看新的Solution 表。

【讨论】:

  • Thnx 但正如我所说,我需要一个单元格 L2 的公式。仅适用于 L 列。我希望此列中的结果与屏幕截图/Google 表格上的 L 列中一样
  • 所以整个问题是我如何在这里使用 ARRAYFORMULA。我知道 sumifs,但我不想把公式拖下来
  • 是的,我的问题描述中已经有这个公式
  • 为答案添加了解释并美化了公式。
  • @doubleunary 在您更改我的解决方案之前,它在@MaxAmbinder 要求的单元格 L2 中。这里再次供参考=ArrayFormula(if(G2:G&lt;&gt;"",mmult({transpose(B2:B&amp;C2:C&amp;D2:D)=G2:G&amp;H2:H&amp;I2:I}*(transpose(A2:A)&gt;=J2:J)*(transpose(A2:A)&lt;=K2:K),N(E2:E)),))
【解决方案2】:

试试这个query() 公式:

=query( 
  A1:E, 
  "select B, C, D, min(A), max(A), sum(E) 
   where A is not null 
   group by B, C, D 
   order by min(A)
   label min(A) 'Start Date', 
         max(A) 'End Date', 
         sum(E) 'Total Orders' ", 
  1 
)

这是一个数组公式,可以一次性创建整个结果表。请参阅您的sample spreadsheet。公式在单元格G9中。

【讨论】:

  • 抱歉,没有。我需要一个单元格 L2 的数组公式
猜你喜欢
  • 2023-03-09
  • 2014-11-17
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
相关资源
最近更新 更多