Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何将数组公式用于具有多个条件的SUMIFs_Google Sheets_Array Formulas_Google Sheets Query_Sumifs_Google Query Language - Fatal编程技术网

Google sheets 如何将数组公式用于具有多个条件的SUMIFs

Google sheets 如何将数组公式用于具有多个条件的SUMIFs,google-sheets,array-formulas,google-sheets-query,sumifs,google-query-language,Google Sheets,Array Formulas,Google Sheets Query,Sumifs,Google Query Language,我已经做了几天了,在这件事上我需要一些帮助… 我试图使用数组公式总结两个给定日期内每个驾驶员的“负载列表”表中的DH和里程值 对于“完成驱动程序数据”表“D”列中的每个单元格,我都有以下SUMIFS(),并且我得到了正确的结果。但我真的想把它转换成一个数组公式 为了便于阅读,我用参数分隔了公式 似乎除非使用regexmatch,否则SUMIFs是不受支持的,我也无法使用它。 我还尝试使用多个SUMIF来获得相同的结果。 我读到Query是一种方法,但我不知道如何使用Query。如果可能的话,我更

我已经做了几天了,在这件事上我需要一些帮助… 我试图使用数组公式总结两个给定日期内每个驾驶员的“负载列表”表中的DH和里程值

对于“完成驱动程序数据”表“D”列中的每个单元格,我都有以下
SUMIFS()
,并且我得到了正确的结果。但我真的想把它转换成一个数组公式

为了便于阅读,我用参数分隔了公式

似乎除非使用regexmatch,否则SUMIFs是不受支持的,我也无法使用它。 我还尝试使用多个SUMIF来获得相同的结果。 我读到
Query
是一种方法,但我不知道如何使用Query。如果可能的话,我更喜欢使用数组

这里有一个链接,指向包含数据的工作表。 阵列用于C1:E1(以蓝色突出显示)


数组公式中的总和如下所示:

={"Revenue"; ARRAYFORMULA(IFNA(VLOOKUP(A2:A, 
 QUERY(QUERY('Load List'!G:O, 
 "select G,O
  where H >= date '"&TEXT(O1, "yyyy-mm-dd")&"' 
    and H <= date '"&TEXT(P1, "yyyy-mm-dd")&"'", 0), 
 "select Col1,sum(Col2) 
  group by Col1 
  label sum(Col2)''", 0), 2, 0)))}
={“收入”矩阵公式(IFNA(VLOOKUP)(A2:A,
查询(查询('加载列表'!G:O,
“选择G,O
其中H>=日期“&”文本(O1,“yyyy-mm-dd”)&“

B1中的H应该有助于按驱动程序进行聚合。可以通过类似的方式按状态进行聚合:

=ARRAYFORMULA({"Count","DH","Miles","Revenue","$/mile","Weekly Avg.";IF(LEN(A2:A),VLOOKUP(A2:A,QUERY('Load List'!A:S,"select G,COUNT(G),SUM(M),SUM(N),SUM(O),AVG(R),SUM(O)/"&(Q1-P1)/7&" where H >= date '"&TEXT(P1,"yyyy-mm-dd")&"' and H<= date '"&TEXT(Q1,"yyyy-mm-dd")&"' group by G"),{2,3,4,5,6,7},0),)})
=ARRAYFORMULA({“Count”,“DH”,“Miles”,“Revenue”,“$/mile”,“Weekly Avg.”如果(LEN(A2:A),VLOOKUP(A2:A,QUERY('Load List'!A:S),选择G,Count(G),SUM(M),SUM(N),SUM(O),Avg(R),SUM(O)/“&(Q1-P1)/7&“其中H>=日期”&(P1,“yyyyyy-mm-dd”)&”和“注:
要使数组公式起作用,需要将它们应用于匹配大小的数组


对于日期在范围内(属于符合条件的每一行)的每个驾驶员,在列“DH”和“Miles”中确实会有匹配数量的单元格。从这些单元格中,您希望得到所有单元格的总和,因此您只需要一个结果

因此,类似于以下内容的方法将起作用:

=ArrayFormula(总和(“驾驶员条件匹配的DH-Range”+“驾驶员条件匹配的里程”)

问题是,你们需要找到所说的范围……你们可以使用查找函数或查询来做到这一点

但依我看,你的第一种方法更简单、更平淡、更具可读性、整体效果更好

我将此作为答案发布,因为它的评论太长了。
希望能有所帮助。

您可以将您的SUMIFS/COUNTIFS标准组合成复合数据,直到您有一个排列列表,可以使用SUMIF/COUNTIF一次性过滤

例如,如果您需要A=“1”和B=“2”以及C=“3”的结果,请创建一个新列,将您的值合并在一起(A&B&C),然后运行一个SUMIF,查找“123”作为与该列的匹配项。这样做有效时,请内联该列公式


这里有一个例子:

在AF中有两种不同的方法来执行sumifs()。您是否可以将工作表设置为可编辑,以便测试/演示?
={"Miles";ArrayFormula(sumif('Load List'!G2:G,A2:A,
                             'Load List'!M:M)+
                       sumif('Load List'!G2:G,A2:A,
                             'Load List'!N:N)+
                       sumif('Load List'!H2:H,N1,
                             'Load List'!N:N))}
={"Revenue"; ARRAYFORMULA(IFNA(VLOOKUP(A2:A, 
 QUERY(QUERY('Load List'!G:O, 
 "select G,O
  where H >= date '"&TEXT(O1, "yyyy-mm-dd")&"' 
    and H <= date '"&TEXT(P1, "yyyy-mm-dd")&"'", 0), 
 "select Col1,sum(Col2) 
  group by Col1 
  label sum(Col2)''", 0), 2, 0)))}
=ARRAYFORMULA({"Count","DH","Miles","Revenue","$/mile","Weekly Avg.";IF(LEN(A2:A),VLOOKUP(A2:A,QUERY('Load List'!A:S,"select G,COUNT(G),SUM(M),SUM(N),SUM(O),AVG(R),SUM(O)/"&(Q1-P1)/7&" where H >= date '"&TEXT(P1,"yyyy-mm-dd")&"' and H<= date '"&TEXT(Q1,"yyyy-mm-dd")&"' group by G"),{2,3,4,5,6,7},0),)})