在一个公式中根据另一列有条件地对一列的内容求和

时间:2018-10-26 23:18:29

标签: google-sheets

我有一个电子表格,其中的数据位于A,B和C列(如下所示的小样本)。

如果在E和F列中列出了A和B的每种可能组合,以及一些未使用的值

G列将C列的值相加,其中E&F与A&B相同

A     B     C     D     E     F     G
a     slw   12          a     slw   30
a     slw   18          a     qux   16
a     qux   16          a     xkc   0
b     anh   10          b     anh   46
b     anh   18          b     ilk   22
b     anh   18          c     jpw   14
b     ilk   12          c     yev   0
b     ilk   10          c     qux   28
c     jpw   14
c     qux   18
c     qux   10

这是我当前用来填写单个单元格的公式,例如G1:=SUM(QUERY({ARRAYFORMULA($A:$A&$B:$B),$C:$C)},"Select Col3 Where Col1='"&E1&F1&"'"))

此公式实际上有效。我可以将其向下拖动到整个G列。不过,我希望将其压缩为G1中的单个公式,该公式可以填充整个列。我试图将查询包含在Arrayformula中,但是这没有用。我还尝试了许多其他方法来交换FILTER等。

我不确定这是否确实可行,但是由于此处难以解释的原因,我需要避免将公式复制到每个单元格中。我仍在寻找解决方案,但想知道是否有人对如何将QUERY嵌套在ARRAYFORMULA中有什么想法。请注意,我愿意使用自定义函数,但宁愿避免使用它们。另外,请记住,这里我的当前公式更多地是我尝试过的示例,以帮助更好地解释我正在尝试做的事情;随时将其完全丢弃。

1 个答案:

答案 0 :(得分:0)

只需阅读Query()和GSheet的SQL子集的文档,您需要的是GROUP BY子句。另一个可能立即生效的解决方案是数据透视表。

=query(A8:C18, "select A, B, sum(C) group by A, B")

enter image description here