我想通过表格的多个标准来计算总和:
A B C D
1 crit1 crit2 code amount
2 a b code1 10
3 a b code3 20
4 a b code2 100
5 a b code1 80
6 a b code4 30
此外,我还有一系列要排除的代码:
A B C D
...........
10 exclude rows
11 code1
12 code8
标记结果单元格的公式如下所示:SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b")
。
如何更改SUMIFS
公式以按排除代码范围(A11:A12
)内的代码进行过滤?
答案 0 :(得分:6)
=SUMPRODUCT(
(A2:A6="a") * (B2:B6="b") * ISNA(MATCH(C2:C6,A11:A12,0)),
D2:D6)
MATCH
在查找数组(列出排除行)中找不到查找值(代码)时返回#N/A!
错误。 ISNA()
将匹配项转换为FALSE
,将不匹配项(#N/A!
)转换为TRUE
。然后使用数学运算符*
将其与您的其他标准“和”化; TRUE
变为1,FALSE
在此过程中变为0。 SUMPRODUCT
最后总结了与1的排列量(而不是0的那些)。
答案 1 :(得分:3)
Jean-FrançoisCorbett的回答是迄今为止最合适和最易理解的。
但是,只是为了表明仍然可以使用SUMIFS
来实现(虽然代价是一些错综复杂的行为!):
=SUM(MMULT(MMULT({1,1},SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b",C2:C6,{"=","<>"}&A11:A12)),{-1;1}))/2