跳至主要内容

COUNTIF() Excel:按条件计数单元格

使用 Excel 的 COUNTIF() 函数,快速统计符合特定条件(如文本、数字、日期和通配符)的单元格。
· 8分钟 阅读

使用 AI 探索

在本文中,我将带您使用 Excel 的 COUNTIF() 函数来统计某个项目在列表中出现的次数。当您需要找出大于某个值的数字或基于条件筛选数据时,它非常实用。正如下文所示,我们可以将其用于文本、数字、日期,甚至在不确定精确匹配时使用通配符。

快速答案

在 Excel 中使用 COUNTIF() 函数:

  • 在单元格中输入 =COUNTIF(

  • 选择您要统计值的范围。

  • 输入 ,

  • 然后,设置条件。

  • 关闭括号 )

  • 按下 Enter。

例如,要统计范围 A2:A10 中大于 0 的值出现的次数,我们将写为

=COUNTIF(A2:A10, ">0")

在 Excel 中使用 COUNTIF() 统计大于 0 的数量。

使用 COUNTIF() 统计大于 0 的数字。图片由作者提供。

理解 COUNTIF() 函数

下面详细解释一下语法:Excel 中的 COUNTIF() 是一个统计函数,用于统计指定范围内满足给定条件的单元格数量。它广泛用于数据分析、筛选和报告。

Excel COUNTIF() 语法

=COUNTIF(range, criteria)

其中:

  • range 是要检查条件的单元格范围。

  • criteria 是决定哪些单元格被计数的条件。它可以是数字、文本、逻辑运算符,甚至是通配符模式。

Excel COUNTIF() 基本示例

让我们用一个基本示例练习这两个参数。

如果我想统计 B2:B10 中小于 100 的数字个数,我输入:

=COUNTIF(B2:B10, "<100")

由于我使用了 <,因此加上了引号。否则,Excel 无法识别我的条件。

在 Excel 中使用 COUNTIF 统计小于 100 的数字。

使用 COUNTIF() 统计小于 100 的数字。图片由作者提供。

在 Excel 中使用 COUNTIF() 的各种方法

既然您已经了解了 Excel 中 COUNTIF() 的工作方式,让我们看看更多使用场景。

统计包含文本的单元格

COUNTIF() 可以统计某段数据中某个特定文本出现的次数。比如,我在 A2:A10 有一个水果列表,想知道“Apple”出现了多少次。为此,我输入:

=COUNTIF(A2:A10, "Apple")

该公式会统计该范围内与“Apple”完全匹配的单元格。

在 Excel 中使用 COUNTIF() 统计包含文本的单元格。

使用 COUNTIF() 统计包含文本的单元格。图片由作者提供。

统计数值

我们也可以统计大于、小于或等于某个特定值的数字。例如,我有一个数据集,现在可以用 COUNTIF() 公式找出不同情况。

  • 统计数量大于 500 的水果个数:=COUNTIF(B2:B10,">500")

  • 统计数量不等于 500 的水果个数:=COUNTIF(B2:B10, "<>500")

  • 统计数量恰好为 500 的水果个数:=COUNTIF(B2:B10, “500”)

  • 统计数量小于 500 的水果个数:=COUNTIF(B2:B10,"<500")

在 Excel 中使用 COUNTIF() 统计数值。

使用 COUNTIF() 统计数值。图片由作者提供。

使用通配符进行部分匹配

有时我们希望统计包含某个词或短语一部分的单元格。在这种情况下,我们使用通配符。通配符有两种:

  • * 匹配任意数量的字符。
  • ? 仅匹配单个字符。

例如,我有一个水果数据集,这里用两个不同公式展示 COUNTIF() 如何处理通配符情况。要统计水果列表中任意位置包含字母 n 的所有水果,我输入:

=COUNTIF(A2:A10, "*n*")

该公式使用星号通配符 *,表示任意数量字符(包括零个)。通过输入 "*n*",Excel 会查找文本中任意位置(开头、中间或结尾)出现 "n" 的单元格。公式将统计范围 A2:A10 内所有匹配的单元格,并返回包含字母 "n" 的水果总数。

要统计所有以 K 开头且为四个字母的水果,我输入:

=COUNTIF(A2:A10,"K???")

该公式使用通配符 ?,它恰好代表一个字符。通过输入 "K???",Excel 会统计范围 A2:A10 中所有以字母 K 开头且总长度正好为四个字母的单元格,并显示最终结果。

在 Excel 的 COUNTIF() 函数中使用通配符技巧。

在 COUNTIF() 中使用通配符。图片由作者提供。

从其他单元格引用条件

我们可以不把条件写死在公式中,而是使用单元格引用。这样公式更灵活,因为当单元格的值变化时会自动更新。

如果我想知道数量大于 300 的水果有多少,我在 D2 单元格中输入条件,然后在公式中引用该单元格,如下:

=COUNTIF(B2:B11, D2)

或者,我们也可以在公式中用引号写入逻辑运算符,并用 & 连接以引用 D3 单元格,如下:

=COUNTIF(B2:B11, ">"&D3)

在 Excel 中使用 COUNTIF() 函数通过单元格引用进行计数。

在 COUNTIF() 中使用单元格引用进行计数。图片由作者提供。

统计空白与非空白单元格

缺失数据与已有数据同样重要。COUNTIF() 可帮助我们发现这些空缺。假设我在管理库存,想知道缺货的水果数量(空白单元格)。为此,我创建以下公式:

=COUNTIF(B2:B11,"")

而要统计可用(非空)水果的数量,我使用以下公式:

=COUNTIF(B2:B11, "<>")

不过,如果您的单元格包含不可见文本,如空格或某些特殊字符,COUNTIF() 会将其计为非空白单元格。

在 Excel 中使用 COUNIF() 统计空白与非空白单元格。

使用 COUNTIF() 统计空白与非空白单元格。图片由作者提供。

基于不同条件统计日期

我们也可以基于不同条件统计日期。假设我们要统计有多少员工在单元格 B11(2024 年 3 月 1 日)这一天入职。那么公式为:

=COUNTIF(B2:B9, B11)

若要检查在 B11 单元格日期“当日或之前”入职的人数,我使用以下公式:

=COUNTIF(B2:B9, ">="&B11)

在 Excel 中使用 COUNTIF() 统计日期差异。

使用 COUNTIF() 统计日期差异。图片由作者提供。

COUNTIF() 的多条件用法

我们也可以用 COUNTIF() 组合多个条件。如果我想统计日期落在 2024 年 1 月 1 日到 2024 年 1 月 30 日之间的数量,我输入:

=COUNTIF(B2:B9, ">="&B12) - COUNTIF(B2:B9, ">"&B13)

或者,您可以使用 COUNTIFS() 来处理多个条件,如下:

=COUNTIFS(B2:B9,">="&B12,B2:B9,"<="&B13)

两者都会得到相同的结果。

在 Excel 中为两个条件使用 COUNTIF()。

为两个条件使用 COUNTIF()。图片由作者提供。

Excel COUNTIF() 与 COUNTIFS()

正如以上示例所示,Excel 的 COUNTIF() 函数基于单一条件计数;我们也可以像上一个示例那样,通过使用多个 COUNTIF() 来实现多条件筛选。

此时要说明的是,如果您的数据确实需要多个条件,Excel 还提供了一个扩展且较新的函数 COUNTIFS()。当只指定一个条件时,COUNTIFS() 的行为与 COUNTIF() 完全一致,但它允许您应用多个条件。

尽管 COUNTIFS() 在处理 AND 条件方面更新且更强大,COUNTIF() 仍然在 Excel 中有其用武之地。对于简单条件,它往往能创建更易读的公式,使您的表格更易理解与维护。更重要的是,与 COUNTIFS() 不同,COUNTIF() 能够处理 OR 条件,也就是当您希望统计满足多个条件中任意一个的单元格时。

我们用一个简单示例来理解:

=COUNTIF(B2:B11, "100") + COUNTIF(B2:B11, "900")

该公式会统计值为 100 或 900 的单元格。由于单元格中没有 900,且只有一个 100,因此结果为 1。

在 Excel 中使用 COUNTIF 函数应用 OR 逻辑。

使用 COUNTIF() 应用 OR 逻辑。图片由作者提供。

假设我还需要知道某一行同时包含值 300 和 kiwi 的次数。为此,我可以使用 COUNTIFS():

=COUNTIFS(B1:B11, "300", A1:A11, "kiwi")

该公式会统计同时满足两项条件的行数。然而结果为 0,因为这两个条件均未被满足。

在 Excel 中使用 COUNTIFS 函数应用 AND 逻辑。

使用 COUNTIFS() 应用 AND 逻辑。图片由作者提供。

了解这一区别很有帮助,因此我们也将其收录在我们的Excel 公式速查表中。如果您想紧跟最新进展,建议学习我们的Excel Fundamentals 技能路径。

常见错误与排查

即使是经验丰富的 Excel 用户,有时也会遇到 COUNTIF() 的问题。该函数很有用,但也有一些容易踩坑的地方。以下是人们最常遇到的问题以及快速解决方法。

长文本字符串计数不正确

COUNTIF() 不支持超过 255 个字符的文本字符串。如果您处理更长的文本并得到意外结果,尝试使用 CONCATENATE() 或 & 运算符合并拆分条件,使其可被处理:

=COUNTIF(range, CONCATENATE("First part of text", "Second part of text"))

或者

=COUNTIF(range, "First part of text" & "Second part of text")

COUNTIF() 中的 VALUE! 错误

#VALUE! 错误通常出现在公式引用了已关闭的工作簿时。因为 Excel 不允许 COUNTIF() 在外部文件关闭的情况下对其数据进行计数。解决方法是,在运行公式前确保被引用的工作簿已打开。文件打开后错误应当消失,COUNTIF() 将正常工作。

运算符使用不当

有时我们会忘记把逻辑运算符放在引号内。请务必确保 >、< 和 <> 等运算符在条件中位于引号内。否则您将得不到正确输出。

 例如,下面这个公式会报错:

=COUNTIF(B2:B10,>500)

为避免此问题,请确保将逻辑运算符置于引号内。

=COUNTIF(B2:B10,">500")

Excel COUNTIF() 最佳实践

在 Excel 中使用 COUNTIF() 时,请遵循以下关键做法。

  • 使用命名范围:与其在公式中选择 A2:A10 这样的范围,不如为该范围自定义名称,使公式更易理解。例如,要统计 Banana 在列表中出现的次数,我们可以用 =COUNTIF(A2:A10, "Banana")。但如果我把该范围命名为 Items,并将条件使用单元格引用,就可以将公式更新为:=COUNTIF(Items, C2)。这样公式更清晰易懂。

  • 多条件时使用 COUNTIFS():有时我们需要基于多个条件计数。在这种情况下,与其使用多个 COUNTIF() 公式,不如使用 COUNTIFS(),它是应用多重筛选的最佳选择。

COUNTIF() 与相关函数

除了 COUNTIF() 和 COUNTIFS(),Excel 还有许多用于计数单元格的函数。不过,每个函数都有其特定用途。让我们进一步了解:

Function功能说明示例
COUNTIF()统计符合单一条件的单元格数量。统计“Apple”在列表中出现的次数。
COUNTIFS()统计同时满足多个条件的单元格。统计“Apple”出现且价格高于 $2 的次数。
COUNT()仅统计数值。统计某列中的数字数量,忽略文本。
COUNTA()统计所有非空单元格。统计所有填充的单元格,包括数字、文本和符号。
COUNTBLANK()统计空白单元格。统计某列或某个范围中的空白单元格数量。

总结

与许多其他 Excel 函数一样,COUNTIF() 也是统计与筛选数据的高效方法。与其手动逐条检查列表,您可以使用该函数快速找到所需内容。更棒的是,它同时适用于文本、数字、空白单元格和模式匹配,从而让数据分析更轻松。

如果您想进一步学习,可以从我们的Introduction to Excel 课程掌握基础开始。要打下扎实基础,Excel Fundamentals 技能路径将带您按部就班掌握核心概念。最后,如果您处理财务数据,我们的 Financial Modeling in Excel 课程将指导您构建专业的财务模型和预测。

Laiba Siddiqui

作者

Laiba Siddiqui

我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。

Countif() 常见问答

如何统计一列中的重复项?

您可以使用 COUNTIF() 函数在特定范围内统计某个值的重复次数。

例如 =COUNTIF(A2:A10, A2) 会显示指定范围内重复值的计数。如果您也想了解如何查找唯一值,请查看我们的文章 How to Count Unique Values in Excel。

我可以用 COUNTIF() 基于今天的日期统计吗?

可以,但请确保将 COUNTIF() 与 TODAY() 函数结合使用。

例如,要统计任务:

  • 一周后到期:=COUNTIF(A2:A10,"="&TODAY()+7)

  • 已逾期:=COUNTIF(A2:A10, "<"&TODAY())

我可以对不相邻的单元格使用 COUNTIF() 吗?

COUNTIF() 仅适用于连续范围,这意味着您不能随意选择分散的单元格。但我们可以使用多个 COUNTIF() 并将结果相加,如下所示:

=COUNTIF(A2, ">10") + COUNTIF(A3, ">10") + COUNTIF(A4, ">10")

这会分别检查每个单元格并累加计数。

如何在 COUNTIF() 中区分大小写?

COUNTIF() 不区分大小写。若需区分大小写,请将 SUMPRODUCT() 与 EXACT() 结合使用:

=SUMPRODUCT(--EXACT(A2:A10, "Apple"))

这将只统计大小写完全匹配Apple 的情况。

主题