在 COUNTIFS 中使用 OR & AND

Posted

技术标签:

【中文标题】在 COUNTIFS 中使用 OR & AND【英文标题】:Using OR & AND in COUNTIFS 【发布时间】:2014-07-02 13:40:01 【问题描述】:

我想在我的COUNTIFS 子句中包含一个"AND" 条件。

类似这样的:

=COUNTIFS(A1:A196;"Yes"or "NO";J1:J196;"Agree")

所以,它应该返回行数,其中:

 (A1:A196 is either "yes" or "no") AND (J1:j196 is "agree")

【问题讨论】:

【参考方案1】:

您可以将几个 COUNTIF 语句添加在一起:

=COUNTIF(A1:A196,"yes")+COUNTIF(A1:A196,"no")+COUNTIF(J1:J196,"agree")

这将为您提供所需的结果。

编辑

抱歉,误读了问题。尼古拉斯是对的,上面的内容会加倍计算。我没有以正确的方式考虑AND 条件。这是一个可以为您提供正确结果的替代方法,您一开始就非常接近:

=SUM(COUNTIFS(A1:A196,"yes","no",J1:J196,"agree"))

【讨论】:

我认为这个公式不正确,因为它会重复计算列 Ayes 且列 Jagree 的行。 我同意尼古拉斯的观点。 你能在COUNTIFS函数上使用这样的大括号吗?我正在测试它,它只计算大括号内第一个值的出现次数。 哎呀!漏了一步。更正了上面的公式。 我正在尝试这个,它只对我部分起作用。出于某种原因,无论我做什么,它都只会匹配大括号内的第一项,而不是第二项。【参考方案2】:

您的问题可能有更有效的解决方案,但以下公式应该可以解决问题:

=SUM(COUNTIFS(J1:J196,"agree",A1:A196,"yes"),COUNTIFS(J1:J196,"agree",A1:A196,"no"))

【讨论】:

谢谢,但我正在寻找更有效的解决方案,而不必多次编写计数。 那么你是说这个解决方案不能仅仅因为使用两个COUNTIFS而对你有用吗? 不,Nicholas,这不是我正在寻找的解决方案。如果您更仔细地查看我的问题文本,您会看到我的伪公式只有一个 COUNTIFS。我的问题更像是我们如何将 OR 用于 AND 子句中的一个条件。 明白。然而,据我所知,这是不可能的。【参考方案3】:

使用数组公式。

=SUM(COUNT(IF(D1:D5="Yes",COUNT(D1:D5),"")),COUNT(IF(D1:D5="No",COUNT(D1:D5),"")),COUNT(IF(D1:D5="Agree",COUNT(D1:D5),"")))

PRESS = CTRL + SHIFT + ENTER。

【讨论】:

感谢您的 CTRL + SHIFT + ENTER【参考方案4】:

一种解决方案是求和:

=SUM(COUNTIFS(A1:A196,"yes","no",B1:B196,"agree"))

或者知道它不是countifs,而是sumproduct会在一行中完成:

=SUMPRODUCT(((A1:A196="yes","no")*(j1:j196="agree")))

【讨论】:

【参考方案5】:

我发现我必须做一些类似于

的事情
=(countifs (A1:A196,"yes", j1:j196, "agree") + (countifs (A1:A196,"no", j1:j196, "agree"))

【讨论】:

欢迎来到 Stack Overflow!请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为什么会解决问题的解释。大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。【参考方案6】:

在更一般的情况下:

N( A union B) = N(A) + N(B) - N(A intersect B) 
= COUNTIFS(A1:A196,"Yes",J1:J196,"Agree")+COUNTIFS(A1:A196,"No",J1:J196,"Agree")-A1:A196,"Yes",A1:A196,"No")

【讨论】:

以上是关于在 COUNTIFS 中使用 OR & AND的主要内容,如果未能解决你的问题,请参考以下文章

使用Countifs仅根据不同的数据范围计算唯一值

如何将此 COUNTIFS 转换为 Power Query 以获得更好的性能目的?

excel中countifs函数如何使用?

如何使用Countifs函数动态统计

COUNTIFS公式,匹配多个字符串

countifs为啥结果为0?