【问题标题】:Applying a "Sum(Filter(" to a range using ArrayFormula使用 ArrayFormula 将“Sum(Filter(”) 应用于范围
【发布时间】:2016-01-12 09:08:37
【问题描述】:

我在将公式变为数组时遇到问题。我现在的公式是

单元格 S3 =

=sum(FILTER('Junkyard 2'!$G$3:$H,'Junkyard 2'!$B$3:$B>=$S$5,'Junkyard 2'!$B$3:$B<=$T$5,
'Junkyard 2'!$C$3:$C=N8 

(垃圾场 2 是所有数据被转储的地方。S5 和 T5 是日期。所以基本上我正在尝试获取介于 2 个日期之间并且与该人的姓名(单元 N8)匹配的数字列表,并且添加总小时数。这是一种解决方法,因为我无法让 sumifs 工作)

我已经做到了,即使用户要插入另一行,公式也会通过这样做应用于新行

单元格 S3 =

 =ARRAYFORMULA(IF(ROW(R7:R)=7,"", sum(FILTER(
'Junkyard 2'!$G$3:$H,'Junkyard 2'!$B$3:$B>=$S$5,'Junkyard 2'!$B$3:$B<=$T$5,
'Junkyard 2'!$C$3:$C=N8 

我现在的问题是我不能将它应用到整个 S3:S。 通过将最后一部分更改为

'Junkyard 2'!$C$3:$C=N8:N would not give me the proper answer.

谁能帮我把它应用到一个范围? 下图是“Junkyard 2 Sheet”

【问题讨论】:

    标签: google-apps-script google-sheets formulas array-formulas


    【解决方案1】:

    使用QUERY 公式 (Reference) 可以最轻松地实现您想要做的事情,因为您可以在一个命令中进行过滤和聚合,比SUMIFS 更灵活。

    尝试根据您的需要调整此公式:

    =QUERY('Junkyard 2'!B3:H, 
           "SELECT SUM(G) + SUM(H) 
            WHERE B >= date '" & TEXT(U4, "yyyy-mm-dd") & "' AND 
                  B <= date '" & TEXT(U5, "yyyy-mm-dd") & "' AND 
                  C = '" & U6 & "'")
    

    【讨论】:

    • 我不确定,但是当我尝试它时,它不会将其应用于整个列,而只会应用于一个单元格。但即便如此,我还是得到了这个 sum(sum sum) 90 如果我应用我的公式 (=ARRAYFORMULA(IF(B7:B="","",ARRAYFORMULA(IF(ROW(S7:S)=7,"", QUERY('Junkyard 2'!B3:H, "SELECT SUM(G) + SUM(H) WHERE B >= date '" & TEXT(S5, "yyyy-mm-dd") & "' AND B
    • 尝试将 `LABEL SUM(G)+SUM(H) ''` 附加到查询的末尾。这将删除标题,应该只显示结果。
    • 我对查询东西很陌生,我尝试在最后添加它并得到一个公式解析错误。请帮帮我
    • 您是否将其添加到 Query 的第二个参数的末尾?
    • 是这样吗? '=QUERY('Junkyard 2'!B3:H, "SELECT SUM(G) + SUM(H) WHERE B >= date '" & TEXT(S5, "yyyy-mm-dd") & "' AND B "LABEL SUM(G)+SUM(H) ''")' 很确定有些东西是错的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多