我在 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
。