仅当另一个单元格中存在某个字符时才求和或计数

问题描述 投票:0回答:2

我有一个Google电子表格,其中A列将包含“1”或“X”字符。在列B,C和D(同一行)中,我有一个数值(即“1”或“2”等)。我想要做的是仅在B,C和D中使用SUM,如果列A = 1.如果A = X,则返回0或null。有可能吗?

google-sheets google-sheets-formula
2个回答
0
投票

有几种方法可以做到这一点,但如果你想将它应用于整个列,你可能希望在整个事物周围使用arrayformula()。为了做到这一点,你是有限的。我喜欢将arrayformula()放在标题行中,以便它受到保护。根据您的需要,它看起来像这样:

=ARRAYFORMULA(if(ROW(A1:A) = 1, "Sum Row", IF(A1:A = 1, B1:B + C1:C + D1:D, )))

这样做的第一件事是使用IF()来检查它是否在第一行上工作。如果是,它会在那里放置一段文字。当然,在这种情况下,“Sum Row”没有引号。

对于任何其他行,IF()导致为false,因此它执行后半部分或FALSE部分。这是另一个IF(),它检查该行的列A的值。如果值为1,则执行TRUE部分,即添加该行的列B到D.这里不能使用SUM(),因为这将总和所有行。这个IF()的FALSE部分什么都不返回。

如果你想在A列中有某个值而没有值时没有值,你可以在那里包含另一个IF。使用ISBLANK()查看A列中是否有值:

=ARRAYFORMULA(if(ROW(A1:A) = 1, "Sum Row", IF(A1:A = 1, B1:B + C1:C + D1:D, IF(ISBLANK(A1:A), , 0))))

基于OP评论添加:

如果未在第1行中标记列,则可以将以下内容放置在要在该行的单元格值为1时开始显示行总和的顶部单元格中:

=ARRAYFORMULA(IF(A1:A = 1, B1:B + C1:C + D1:D, ))

假设ARRAYFORMULA()放置在第1行的单元格中,它会查看诸如A1:A之类的引用,并将其替换为A(rownumber),以便对于第9行,上述公式中的所有引用都更改为A9,B9,C9和D9。在第9行中,公式查看单元格A9,如果它是1,则添加B9,c9和D9以给出它们的总和并将其放置在第9行放置公式的位置所以如果公式在单元格G1中,它将放置单元格G9中第9行的答案。如果A9不是1,则不会在单元格G9中放置任何内容。如果在给定行中的单元格A的值不是1时想要0而不是0,那么添加ISBLANK()如下所示:

=ARRAYFORMULA(IF(A1:A = 1, B1:B + C1:C + D1:D, IF(ISBLANK(A1:A), , 0)))

在我们上面的第9行示例中,如果单元格A9的值不是1,则会给出0,如果A9为空,则不会在单元格中放置任何内容,这意味着它没有值。卡尔


1
投票
=ARRAYFORMULA(IF(A2:A=1, B2:B+C2:C+D2:D, ))

0

© www.soinside.com 2019 - 2024. All rights reserved.