对一组列进行 SUM 条件处理,其中另一组列包含某些值

对一组列进行 SUM 条件处理,其中另一组列包含某些值

我在 Excel 中有以下数据,我需要一个公式来计算所有这些数据的总和全部的行:

A                             B
australia                    10
australia total              10
china                         1
china                         5
china                         7
china total                  13

我尝试过以下公式

=sumif(A:A,"search("total",A:A)>0",B:B)

但我无法使该条件发挥作用。

这个包含条件的正确写法是什么?

条件语言是否也有特定的语法?我找不到任何东西。

答案1

不是特别优雅,但是:

=SUMPRODUCT((RIGHT(A2:A7,5)="total")*1,B2:B7)

由于某种原因,您不能在其中使用 A:A 或 B:B......

答案2

我找到了一种方法来sumif在条件中使用通配符来编写此代码

=SUMIF(A2:A7,"*total",B2:B7)

然而我更喜欢使用,sumproduct因为这允许我编写普通的 Excel 公式,而不是猜测条件语法。

答案3

总行数实际上是按总数计算的吗,还是它们只是与细目值一起从某处导入的平面数据?

如果要计算它们,那么一个简单的技巧是:不要使用 SUM 对总数进行求和,而是使用 SUBTOTAL(使用选项 9 作为小计的和类型)。例如在 B2 中你应该有 =sSUBTOTAL(9,B1:B1),在 B6 中你应该有 =SUBTOTAL(9,B3:B5)等等。

现在,您只需使用另一个 SUBTOTAL 函数将整个 B 列相加即可,并且它将完全忽略其他小计。这实际上是将总数相加的逆过程,它只将原始数据点相加,但在某些方面,如果由于公式不正确而导致总数行不正确,这种方法会更可靠。此技术适用于具有小计功能的所有 Excel 版本,由于 Excel 2010 中状态栏的相关更改,因此在此简要讨论:Excel 2010 的一些快速发现

答案4

严格来说,这不是所提问题的答案,但它确实解决了示例所代表的问题。假设示例中的 B2=B1 和 B6=B3+B4+B5,我们可以注意到 B1+B2+B3+B4+B5+B6 = (B1)+B2+(B3+B4+B5)+B6 = B2+B2+B6+B6 = 2×(B2+B6)。由于 B2+B6 是我们试图获得的值(在这个有限的例子中),因此我们可以通过 得到它SUM(B:B)/2

相关内容