【问题标题】:How do I combine COUNTIF with OR如何将 COUNTIF 与 OR 结合使用
【发布时间】:2014-02-20 13:50:56
【问题描述】:

在 Google 电子表格中,我需要在具有多个条件的范围内使用 COUNTIF 函数。因此,在下表中,我需要有类似 =COUNTIF(B:B,"Mammal"or"Bird") 的内容并返回值 4。

A         |B
-------------------
Animal    | Type
-------------------
Dog       | Mammal
Cat       | Mammal
Lizard    | Reptile
Snake     | Reptile
Alligator | Reptile
Dove      | Bird
Chicken   | Bird

我尝试了很多不同的方法,但都没有成功。

【问题讨论】:

    标签: regex google-sheets countif google-sheets-formula array-formulas


    【解决方案1】:

    一个选项:

    =COUNTIF(B:B; "Mammal") + COUNTIF(B:B; "Bird")
    

    根据文档:

    备注

    COUNTIF 只能使用单个条件执行条件计数。 要使用多个条件,请使用 COUNTIFS 或数据库函数 DCOUNTDCOUNTA

    COUNTIFS:此功能仅在new Google Sheets可用。

    例子:

    =DCOUNTA(B:B; 2; {"Type"; "Mammal"; "Bird"})
    

    【讨论】:

    • 感谢 wchiquito - DCOUNTA 完美运行。我很好奇那个公式中的“2”到底是做什么的。无论该数字是多少,只要它等于或大于 1,该公式似乎都能按预期工作。
    • @VivaNOLA:指示要考虑哪一列的索引。见DCOUNTA
    • 注意: 当有行匹配 both 条件时,请注意这些情况;这些将被计算两次。
    【解决方案2】:

    您还可以在 SUM(COUNTIFS()) 构造周围使用 ArrayFormula:

    =ArrayFormula(SUM(COUNTIF(B:B,{"Mammal", "Bird"}))
    

    Source: Google Docs Product Forum

    【讨论】:

    • ArrayFormula 比使用 COUNTIFS 一遍又一遍地键入范围和字符串要好得多,当然也更易于维护。谢谢你找到这个!!!
    【解决方案3】:

    你可以像这样使用正则表达式:

    =ARRAYFORMULA(SUM(N(REGEXMATCH(B:B, "Mammal|Bird"))))
    

    【讨论】:

      【解决方案4】:

      您可以使用非常强大的QUERY(并且通常更容易记住,特别是如果您来自 DB 世界):

      QUERY(A:B;"SELECT COUNT(B) WHERE B='Mammal' OR B='Bird'";0)
      

      (末尾的0 用于避免在您的范围内包含标题行)

      关于QUERY 函数的文档在这里:https://support.google.com/docs/answer/3093343?hl=en

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多