COUNTIF有正面和负面的标准

我需要计算列D中包含的值集合中出现“列表A”中的单元格的数目,而“列表B”中的单元格不出现在列E中。

我正在尝试使用像下面的数组公式,但迄今为止有限的成功:

={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,"<>"&E2:E3))} 

请注意,本例中包含的数据与我真实表中的数据不同。 真正的桌子比这张桌子更长更复杂。

有什么build议么?

例

只是为了你的例子,像我的评论中的公式就足够了

 =SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))) 

如果您有多个要排除的值,则会出现问题。 那么你需要使用一个消极countif(s)

 =SUMPRODUCT(1*NOT(COUNTIF(E2:E5,B2:B21))) 

这将包括所有包含排除列表的任何行的行。 但是在产品内部的NOT会将其切换到相反的位置(1 *是需要的,因为它只包含不能被计数的布尔值)

如果你有bool(true / false或1/0)的列C,你可以简单地添加:

 =SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*C2:C21) 

或者(C2:C21>12)如果这是你所需要的…但是你也可以把它包括到包含列表中(如果A是A / B / E / F,C是(2/4/6)

 =SUMPRODUCT(COUNTIFS(D2:D5,A2:A21,F2:F5,C2:C21)*NOT(COUNTIF(E2:E5,B2:B21))) 

但是每个排除都需要自己的标识(B不是X / Y,C不是8/9/11)

 =SUMPRODUCT(COUNTIFS(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*NOT(COUNTIF(F2:F5,C2:C21)) 

正如已经说过的那样:使用返回""公式可能会返回错误计数(记住这一点)

在这种情况下,最好切换到SUMPRODUCT

=SUMPRODUCT(0+ISNUMBER(MATCH(A2:A21,D2:D5,0)),1-ISNUMBER(MATCH(B2:B21,E2:E5,0)))

问候