COUNTIF有正面和负面的标准

时间:2016-02-09 13:11:42

标签: excel excel-formula countif

我需要计算“LIST A”中的单元格出现在D列中包含的值集合中的单元格数量 AND “LIST B”中的单元格不会出现在列中即

我正在尝试使用类似下面的数组公式,但到目前为止只取得了有限的成功:

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

请注意,此示例中包含的数据与我的真实表中的数据不同。真实的表比这个表更长,更复杂。

有什么建议吗?

see solution here

2 个答案:

答案 0 :(得分:1)

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

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

此致

答案 1 :(得分:1)

仅为您的示例,我的评论中的公式就足够了

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

如果您要排除多个值,则会出现问题。那么你需要使用负面的标识

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

这会计算包含排除列表任何内容的所有行。但是sumproduct里面的NOT会将它切换到相反的位置(1 *需要cus它只包含bool而不能计数)

如果您的列C包含bool(true / false或1/0),您只需添加:

=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)))

但是每个排除都需要它自己的countif(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))

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