Excel COUNTIFS和COUNTIF具有多个AND/OR条件--公式示例

  • Share This
Michael Brown

本教程解释了如何在Excel中使用基于AND以及OR逻辑的多条件的COUNTIFS和COUNTIF公式。 你会发现一些不同数据类型的例子 - 数字、日期、文本、通配符、非空白单元格等等。

在所有的Excel函数中,COUNTIFS和COUNTIF可能最常被混为一谈,因为它们看起来非常相似,都是为了根据指定的标准计算单元格。

不同的是,COUNTIF是为计算一个区间的单一条件的单元格而设计的,而COUNTIFS可以评估同一区间或不同区间的不同条件。 本教程的目的是演示不同的方法,并帮助你为每个特定任务选择最有效的公式。

    Excel COUNTIFS函数--语法和用法

    Excel COUNTIFS函数根据一个或几个条件对多个范围内的单元格进行计数。 该函数在Excel 365、2021、2019、2016、2013、Excel 2010和Excel 2007中都可用,因此你可以在任何Excel版本中使用下面的例子。

    COUNTIFS 语法

    COUNTIFS函数的语法如下。

    COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2]...)
    • 标准_范围1 (required) - 定义了第一个条件的第一个范围 ( 标准1 )应被应用。
    • 标准1 (required) - 将条件以 , 单元参考 , 文字串 , 表情 或其他 Excel函数 标准定义了哪些单元格应被计算,可以表示为10,"<=32",A6,"糖果"。
    • [critical_range2, criteria2]... (可选) - 这些是额外的范围和它们相关的标准。 你可以在你的公式中指定多达127个范围/标准对。

    事实上,你不必死记硬背COUNTIF函数的语法,只要你开始输入,Microsoft Excel就会显示该函数的参数;你此刻输入的参数会以粗体显示。

    Excel COUNTIFS--需要记住的事情!

    1. 你可以在Excel中使用COUNTIFS函数来计算具有单个条件的单个区域中的单元格,以及具有多个条件的多个区域中的单元格。 如果是后者,只有那些符合 所有规定的条件 被计算在内。
    2. 每个额外的范围必须有 相同的行数和列数 作为第一个范围( 标准_范围1 参数)。
    3. 两者都是 毗连的 不毗连的 允许的范围。
    4. 如果标准是对一个 空单元格 ,COUNTIFS函数将其作为一个零值(0)。
    5. 你可以使用 通配符 详细情况见本例。

    如何在Excel中使用具有多个标准的COUNTIFS和COUNTIF

    下面你将看到一些公式例子,演示如何在Excel中使用COUNTIFS和COUNTIF函数来评估多个条件。

    如何计算具有多个条件的单元格(AND逻辑)?

    这种情况是最简单的,因为Excel中的COUNTIFS函数被设计为只计算所有指定条件为 "真 "的单元格。 我们称之为AND逻辑,因为Excel的AND函数就是这样工作的。

    公式1.具有多个标准的COUNTIFS公式

    假设你有一个如下截图所示的产品列表,你想获得一个库存(B列的值大于0)但尚未售出的商品的计数(C列的值等于0)。

    这个任务可以通过使用这个公式来完成。

    =COUNTIFS(B2:B7,">0", C2:C7,"=0")

    而计数是2(" 樱桃 "和" 柠檬 "):

    公式2:有两个标准的COUNTIFS公式

    当你想计算具有相同标准的项目时,你仍然需要提供每个 criteria_range / criteria 单独配对。

    例如,这里有正确的公式来计算B列和C列中都有0的项目。

    =COUNTIFS($B$2:$B$7,"=0", $C$2:$C$7,"=0")

    这个COUNTIFS公式返回1,因为只有" 葡萄 "两列中都有 "0 "值。

    用一个更简单的公式,用一个单一的 标准_范围 如COUNTIFS(B2:C7,"=0")会产生一个不同的结果--在B2:C7范围内含有0的单元格的总计数(在这个例子中是4)。

    如何计算具有多个标准的单元格(OR逻辑)?

    正如你在上面的例子中所看到的,计算符合所有指定条件的单元格很容易,因为COUNTIFS函数就是这样设计的。

    但是,如果你想计算的是那些具有以下特征的细胞 至少要有 其中一个指定的 条件为 "真"。 总的来说,有两种方法可以做到这一点--将几个COUNTIF公式相加,或者使用一个带有数组常数的SUM COUNTIFS公式。

    公式1.将两个或多个COUNTIF或COUNITFS公式相加

    在下表中,假设你想计算带有" "的订单。 取消了 "和" 待定 "要做到这一点,你可以简单地写出2个普通的Corntif公式,然后把结果加起来。

    =COUNTIF($C$2:$C$11, "取消") + COUNTIF($C$2:$C$11, "待定")

    如果每个函数都要评估一个以上的条件,请使用COUNTIFS而不是COUNTIF。 例如,要获得" 取消了 "和" 待定 "的订单,为" 苹果 "使用这个公式。

    =COUNTIFS($A$2:$A$11, "Apples", $C$2:$C$11, "Cancelled") + COUNTIFS($A$2:$A$11, "Apples", $C$2:$C$11, "Pending")

    公式2.带数组常数的SUM COUNTIFS

    在你必须评估很多标准的情况下,上述方法不是最好的方法,因为你的公式会变得太大。 为了在一个更紧凑的公式中执行同样的计算,在一个数组常数中列出所有的标准,并将该数组提供给 标准 要获得总计数,可将COUNTIFS嵌入SUM函数中,像这样。

    SUM(COUNTIFS( 范围 ,{" 标准1 "," 标准2 "," 标准3 ",...}))

    在我们的示例表中,要计算状态为""的订单。 取消了 "或" 待定 "或" 在运输过程中 ",该公式将如下。

    =SUM(COUNTIFS($C$2:$C$11, {"cancelled", "pending", "in transit"}))

    以类似的方式,你可以根据两个或多个单元格来计算 标准_范围 / 标准 例如,要获得""的数量,就必须要有""。 苹果 "的订单,这些订单是" 取消了 "或" 待定 "或" 在运输过程中 ",使用这个公式。

    =SUM(COUNTIFS($A$2:$A$11, "apples",$C$2:$C$11,{"cancelled", "pending", "in transit"})

    你可以在本教程中找到更多用OR逻辑计算单元格的方法:Excel COUNTIF和COUNTIFS的OR条件。

    如何计算2个指定数字之间的数字

    总的来说,数字的COUNTIFS公式分为两类--基于几个条件(在上面的例子中解释过)和在你指定的两个值之间。 后者可以通过两种方式实现--通过使用COUNTIFS函数或通过用一个COUNTIF减去另一个来实现。

    公式1.COUNTIFS用于计算两个数字之间的单元格

    要想知道C2到C10单元格中包含多少个5到10之间的数字(不包括5和10),请使用这个公式。

    =COUNTIFS(C2:C10,">5", C2:C10,"<10")

    要在计数中包括5和10,使用 "大于或等于 "和 "小于或等于 "运算符。

    =COUNTIFS(B2:B10,">=5", B2:B10,"<=10")

    公式2.COUNTIF公式来计算X和Y之间的数字

    同样的结果可以通过用一个Corntif公式减去另一个公式来实现。 第一个公式计算有多少个数字大于下限值(本例中为5)。 第二个公式返回大于上限值的数字(本例中为10)。 第一个和第二个数字之间的差异就是你要寻找的结果。

    • =COUNTIF(C2:C10,">5")-COUNTIF(C2:C10,">=10") - 计算C2:C10范围内有多少个大于5和小于10的数字。 这个公式将返回与上面截图中所示相同的计数。
    • =COUNTIF(C2:C10, ">=5")-COUNTIF(C2:C10, ">10") - 该公式计算在C2:C10范围内有多少个5和10之间的数字。 包括 5和10。

    如何在COUNTIFS公式中使用单元格引用

    当在Excel COUNTIFS公式中使用逻辑运算符,如">"、"<"、"="和单元格引用时,请记住用 "双引号 "括住运算符,并且

    在单元格引用前添加一个安培号(&)来构建一个文本字符串。

    在下面的一个样本数据集中,让我们计算一下" 苹果 "金额超过200美元的订单。 与 标准_范围1 在单元格A2:A11和 标准_范围2 在B2:B11中,你可以使用这个公式。

    =COUNTIFS($A$2:$A$11, "苹果", $B$2:$B$11, ">200")

    或者,你可以在某些单元格中输入你的标准值,例如F1和F2,并在你的公式中引用这些单元格。

    =COUNTIFS($A$2:$A$11, $F$1, $B$2:$B$11, ">"&$F$2)

    请注意,在 "我的 "和 "我的 "中都使用了绝对单元格引用。 标准 标准_范围 参数,这样可以防止公式被复制到其他单元格时被破坏。

    关于在COUNTIF和COUNTIFS公式中使用安培号的更多信息,请参见Excel COUNTIF-常见问题。

    如何使用带有通配符的COUNTIFS

    在Excel COUNTIFS公式中,你可以使用以下通配符。

    • 问号 (?) - 匹配任何单一字符,用它来计算以某些字符开始和/或结束的单元格。
    • 星号 (*) - 匹配任何字符序列,你用它来计算包含指定单词或字符的单元格内容。

    提示:如果你想计算有实际问号或星号的单元格,请在星号或问号前键入一个tilde(~)。

    现在让我们看看如何在实际生活中的COUNTIFS公式中使用通配符。 假设A列有一个项目列表,你想知道有多少项目已经分配给某人,即B列中有任何名字。由于我们正在学习如何使用COUNTIFS函数的多个条件,让我们添加第二个条件-- 结束日期 D列中的数据也应被设定。

    这里有一个公式,效果很好。

    =COUNTIFS(B2:B10,"*",D2:D10,""&""))

    请注意,你不能在第二个条件中使用通配符,因为你在D列有日期而不是文本值。 非空白 单元:""&""

    对日期有多种标准的COUNTIFS和COUNTIF

    你用于日期的COUNTIFS和COUNTIF公式与上述数字的公式非常相似。

    例1.计算特定日期范围内的日期

    要计算属于某个日期范围的日期,你也可以使用有两个条件的COUNTIFS公式或两个COUNTIF函数的组合。

    例如,下面的公式计算单元格C2到C10中的日期数量,这些日期在2014年6月1日和2014年6月7日之间,包括在内。

    =COUNTIFS(C2:C9, ">=6/1/2014", C2:C9, "<=6/7/2014" )

    =COUNTIF(C2:C9, ">=6/1/2014") - COUNTIF(C2:C9, ">6/7/2014")

    例2.用多个条件计算日期

    以同样的方式,你可以使用COUNTIFS公式来计算不同列中满足2个或更多条件的日期数量。 例如,下面的公式将找出有多少产品是在5月20日之后购买,6月1日之后交付的。

    =COUNTIFS(C2:C9, ">5/1/2014", D2:D9, "> 6/7/2014")

    例3.根据当前日期用多个条件来计算日期

    你可以使用Excel的TODAY()函数与COUNTIF相结合,以当前日期为基础计算日期。

    例如,下面的COUNTIF公式有两个范围和两个条件,将告诉你有多少产品已经被购买但还没有交付。

    =COUNTIFS(C2:C9, ""&TODAY())

    这个公式允许许多可能的变化。 例如,你可以调整它来计算有多少产品是在一周前购买的,但还没有交货。

    =COUNTIFS(C2:C9, ""&TODAY())

    这就是在Excel中计算具有多个条件的单元格的方法。 我希望你会发现这些例子对你有帮助。 无论如何,我感谢你的阅读,并希望下周在我们的博客上看到你!

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.