Excel 具有肯定和否定条件的COUNTIF

Excel 具有肯定和否定条件的COUNTIF,excel,excel-formula,countif,Excel,Excel Formula,Countif,我需要计算“列表A”中的单元格出现在列D中包含的一组值中的单元格数量,而“列表B”中的单元格不出现在列E中 我尝试使用以下数组公式,但迄今为止成功有限: ={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,"<>"&E2:E3))} ={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,“&E2:E3))} 请注意,此示例中包含的数据与我的实表中的数据不同。实际表格比此表格长得多,也更复杂 有什么建议吗 在这种情况下,最好切换到SUMPR

我需要计算“列表A”中的单元格出现在列D中包含的一组值中的单元格数量而“列表B”中的单元格不出现在列E中

我尝试使用以下数组公式,但迄今为止成功有限:

={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,"<>"&E2:E3))}
={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,“&E2:E3))}
请注意,此示例中包含的数据与我的实表中的数据不同。实际表格比此表格长得多,也更复杂

有什么建议吗


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

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


关于

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

=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21)))
如果要排除多个值,则会出现问题。那么您需要使用负countif(s)

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

如果C列带有bool(真/假或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)

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


如前所述:如果公式返回
,“
可能返回错误计数(请记住)

在这种情况下,最好“显示您的工作”,并在中间列中使用两个额外的列。我不喜欢带有报复性的复杂countif。countif使用“或”这意味着:计算B2:B21中的每个值,至少一次不是E2:E4中的任何一个(这计算所有数字…但您可以使用此非数组公式:
=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*(COUNTIF(E2:E5,B2:B21)-1))*-1
Dirk Reichel,这个公式很好用——但我不太明白为什么。其次,例如,如果在C列中有第三个列表的值为“真”或“假”,并且单元格必须为“真”——这是否符合您的建议?当然……虽然这个公式对您来说可能更容易理解:
=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*(COUNTIF(E2:E5,B2:B21))
…在需要设置规则时,可以添加第三列…我将写一个答案来表示抱歉,这是我的一个错误-我现在已经更正了。感谢您注意,请注意,如果以下两项都为真,您的公式可能会失败:1)作为COUNTIF的range参数传递的一个或多个范围包括空单元格,2)在作为criteria参数传递的范围内可能有空单元格,而我发布的匹配设置不受此类情况的影响。1)似乎是真的,因为OP包含E2:E4范围内的空单元格(E4目前至少为空),因此,虽然目前B2:B21范围内没有空单元格(因此2当前为false),但如果此更改,则您的公式将失败。我已运行了多个测试,没有错误。。。你能给我举个例子让我知道错误吗?如果我包括空单元格,它们不会被计算,如果在A列和B列中的空单元格被计算为不排除。。。两者缺一不可。。。我真的不明白:(抱歉。我应该澄清一下,它在使用空字符串时失败,而不是“真正”的空单元格。因此,例如,在E3和E4为空时,就像OP的原始示例中一样,将其设置为使B2:B21范围内的一些单元格返回空字符串”。这是真的
=“”
将引发错误。。。(因为它多次出现)我会在我的回答中包括这一点。真的。讨厌的小东西!实际上,如果这些字符串可能在D2:E5范围内(虽然不是在A2:B21中),我的设置将失败。我没有依据来假设D2:E5中的那些是“真正的”空白,而A2:B21中的那些可能是空字符串。
=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*C2:C21)
=SUMPRODUCT(COUNTIFS(D2:D5,A2:A21,F2:F5,C2:C21)*NOT(COUNTIF(E2:E5,B2:B21)))
=SUMPRODUCT(COUNTIFS(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*NOT(COUNTIF(F2:F5,C2:C21))