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 电子表格函数,用于根据另一列的条件对一列中的所有值求和_Google Sheets - Fatal编程技术网

Google sheets 电子表格函数,用于根据另一列的条件对一列中的所有值求和

Google sheets 电子表格函数,用于根据另一列的条件对一列中的所有值求和,google-sheets,Google Sheets,我想要一个电子表格函数,当a列等于X和Y时,它将生成B列中所有值的总和 A B X 10 Y 3 X 7 X 22 Y 4 Y 9 输出应如下所示(其中39和16是公式的结果): 一个快速而肮脏的解决方案是创建两个新列。对于每一行x,Cx应该类似于=Ax=='x'?Bx:0。对D列执行相同的操作,但检查Ax=='Y'。然后求C和D的和 (不确定是否与谷歌电子表格语法完全匹配。)类似的内容 X 10 Y 3 X 7 X 22

我想要一个电子表格函数,当a列等于
X
Y
时,它将生成B列中所有值的总和

A     B

X    10
Y     3
X     7
X    22
Y     4
Y     9
输出应如下所示(其中
39
16
是公式的结果):


一个快速而肮脏的解决方案是创建两个新列。对于每一行x,Cx应该类似于=Ax=='x'?Bx:0。对D列执行相同的操作,但检查Ax=='Y'。然后求C和D的和

(不确定是否与谷歌电子表格语法完全匹配。)

类似的内容

X   10
Y   3
X   7
X   22
Y   4
Y   9

X   "=SUMIF(A1:A6;A8;B1:B6)"
Y   "=SUMIF(A1:A6;A9;B1:B6)"

您可以使用
SUMPRODUCT
计算总计。对于“X”值:

对于“Y”值:

希望有帮助

埃里克·梅尔斯基


编辑:显然你必须使用ARRAYFORMULA才能在谷歌的电子表格中使用SUMPRODUCT。例如,谷歌文档不支持像Excel那样的
sumproduct
--
操作符,这一事实有点麻烦。您总是可以使用更多的列来复制功能,但当您在其中一条评论中做出响应时,这似乎是不可能的

您可以检查表单中是否呈现了隐藏列。如果不是,这就是方法。

使用
SUMIF(范围、标准、总和范围)
:(B2-B8之间的总和,使用A2-A8中的值作为标准,使用指定条件)

那怎么办

=query(A:B, "select A, sum(B) group by A order by sum(B) desc")

是的,我是电子表格noob=)属于webapps.stackexchange我不能添加更多列的一个原因是因为我正在构建一个谷歌表单,如果我添加列,它会变得非常疯狂。我必须在不修改google表单使用的电子表格的情况下,将此公式放在单独的电子表格中。我相信它是受支持的,但您必须使用ARRAYFORMULA才能使用SUMPRODUCT。请参阅我上面的编辑。+1:在Excel 2003中,我能够做=SUMPRODUCT((A1:A6“”)*(B1:B6))来只计算B1到B6中的项目,其中在相应的A1到A6中有一些项目。谢谢你(对我稍微不同的问题)的回答!你也许应该对此再加一点解释。
=SUMPRODUCT((A1:A6="X")*(B1:B6))
=SUMPRODUCT((A1:A6="Y")*(B1:B6))
=SUMIF(A2:A8,"=X",B2:B8)
=SUMIF(A2:A8,"=Y",B2:B8)
=query(A:B, "select A, sum(B) group by A order by sum(B) desc")