仅当另一个单元格中有某个字符时才求和或计数
Sum or count only if there is a certain character in another cell
我有一个 Google 电子表格,其中 A 列将包含“1”或 "X" 字符。在 B、C 和 D 列(同一行)中,我有一个数量值(即“1”或“2”等)。我想做的是仅在列 A = 1 时对 B、C 和 D 中的值求和。如果 A = X,则仅返回 0 或 null。这样的事情可能吗?
=ARRAYFORMULA(IF(A2:A=1, B2:B+C2:C+D2:D, ))
有几种方法可以做到这一点,但如果您想将其应用于整个列,则需要在整个列周围使用 arrayformula()。为了做到这一点,你是有限的。我喜欢将 arrayformula() 放在 header 行中,以便它受到保护。根据您的需要,它看起来像这样:
=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 部分 returns 没有。
如果你想在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 而不是空,则添加 ISBLANK() 如下:
=ARRAYFORMULA(IF(A1:A = 1, B1:B + C1:C + D1:D, IF(ISBLANK(A1:A), , 0)))
在我们上面第 9 行的示例中,如果单元格 A9 的值不是 1,这将为您提供 0,如果 A9 为空白,则不会在单元格中添加任何内容,这意味着它没有值。
卡尔
我有一个 Google 电子表格,其中 A 列将包含“1”或 "X" 字符。在 B、C 和 D 列(同一行)中,我有一个数量值(即“1”或“2”等)。我想做的是仅在列 A = 1 时对 B、C 和 D 中的值求和。如果 A = X,则仅返回 0 或 null。这样的事情可能吗?
=ARRAYFORMULA(IF(A2:A=1, B2:B+C2:C+D2:D, ))
有几种方法可以做到这一点,但如果您想将其应用于整个列,则需要在整个列周围使用 arrayformula()。为了做到这一点,你是有限的。我喜欢将 arrayformula() 放在 header 行中,以便它受到保护。根据您的需要,它看起来像这样:
=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 部分 returns 没有。
如果你想在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 而不是空,则添加 ISBLANK() 如下:
=ARRAYFORMULA(IF(A1:A = 1, B1:B + C1:C + D1:D, IF(ISBLANK(A1:A), , 0)))
在我们上面第 9 行的示例中,如果单元格 A9 的值不是 1,这将为您提供 0,如果 A9 为空白,则不会在单元格中添加任何内容,这意味着它没有值。 卡尔