我有一个Google电子表格,其中A列将包含“ 1”或“ X”字符。在B,C和D列(同一行)中,我有一个数量值(即“ 1”或“ 2”等)。我想做的是仅在A列= 1时才对B,C和D中的值求和。如果A = X,则仅返回0或null。这样有可能吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
有两种方法可以执行此操作,但是如果要将其应用于整个列,则需要在整个对象周围使用arrayformula()。为此,您受到限制。我喜欢将arrayformula()放在标题行中,以便对其进行保护。为了您的需要,它看起来像这样:
=ARRAYFORMULA(if(ROW(A1:A) = 1, "Sum Row", IF(A1:A = 1, B1:B + C1:C + D1:D, )))
要做的第一件事是使用IF()来检查它是否在第一行上工作。如果是,它将在其中放置一段文本。当然,在这种情况下,“求和行”不带引号。
对于任何其他行,该IF()结果为false,因此它执行下半部分或FALSE部分。这是另一个IF(),它检查该行的列A的值。如果该值为1,则执行TRUE部分,即将该行的列B至D相加。Wee在这里不能使用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 in而不是什么,则添加ISBLANK()如下:
=ARRAYFORMULA(IF(A1:A = 1, B1:B + C1:C + D1:D, IF(ISBLANK(A1:A), , 0)))
在我们上面的第9行示例中,如果单元格A9的值不为1,则将为0;如果A9为空白,则不会将任何内容放入单元格,这意味着它没有任何值。 卡尔