标准不在范围内的SUMIFS

我想通过表格的多个标准来计算总和:

ABCD 1 crit1 crit2 code amount 2 ab code1 10 3 ab code3 20 4 ab code2 100 5 ab code1 80 6 ab code4 30 

我也有一系列的代码排除在外:

  ABCD ........... 10 exclude rows 11 code1 12 code8 

我的标记结果单元格的公式如下所示: SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b") 。 如何更改我的SUMIFS公式,以便通过不在排除代码范围( A11:A12 )中的代码进行筛选?

 =SUMPRODUCT( (A2:A6="a") * (B2:B6="b") * ISNA(MATCH(C2:C6,A11:A12,0)), D2:D6) 

MATCH返回MATCH #N/A! 在查找数组(列表排除行)中找不到查找值(代码)时发生错误。 ISNA()将匹配转换为FALSE和不匹配( #N/A! )为TRUE 。 然后用math运算符*和你的其他标准“并且”。 TRUE变为1, FALSE变为0。 SUMPRODUCT最后总结了与1 SUMPRODUCT的数量(而不是0)。

在这里输入图像说明

让 – 弗朗索瓦·科贝特(Jean-FrançoisCorbett)的答案在这里是最合适和最容易理解的。

但是,只是为了表明它仍然可以使用SUMIFS来实现(尽pipe以一些令人费解的代价!):

=SUM(MMULT(MMULT({1,1},SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b",C2:C6,{"=","<>"}&A11:A12)),{-1;1}))/2