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)))
问候