Menu

Excel 统计包含文本的单元格(及判断是否含文本)

=COUNTIF(A2:A8,"*") 统计 A2:A8 中包含文本的单元格,跳过数字、日期和空单元格。还能统计包含某个词的单元格,以及在单元格包含文本时返回一个值。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=COUNTIF(A2:A8,"*") 统计 A2:A8 中包含文本的单元格。星号是代表“任意字符”的通配符,而且只匹配文本,所以数字、日期、TRUE/FALSE 和空单元格都不会被统计。

统计文本单元格
D2
ABCD
1EntryWhatCount
2AppleText3
312Not empty6
4Numbers and dates2
5PearEmpty1
62026-01-05
7TRUE
8n/a
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

D2 统计了 Apple、Pear 和 n/a:共 3 个。COUNTA 统计所有非空单元格,共 6 个;COUNT 统计两个数字(日期也是数字)。在 A4 中输入 25,D3 和 D4 会增加,而 D2 仍为 3;如果改为输入 Plum,D2 和 D3 会增加,而 D4 仍为 2。COUNT 和 COUNTA 的对比见它们的专门页面。

前面带撇号输入的数字(例如 '007)是文本,所以 "*" 会统计它。如果只想统计至少有一个字符的单元格,使用 "?*":? 必须匹配一个字符,所以返回空字符串("")的公式永远不会被统计。

统计包含特定文本的单元格

要统计任意位置包含某个词的单元格,在这个词两边各加一个星号。不加星号,就要求整个单元格内容完全匹配。

统计一个词
D2
ABCD
1ProductConditionCount
2Applecontains apple5
3Pineappleexactly apple1
4Pearstarts with apple3
5apple juiceword in C61
6Plumjuice
7Green appleapple, case-sensitive3
8Apple cider
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

"*apple*" 匹配五个产品。单独的 "apple" 只匹配内容正好是 Apple 的单元格(COUNTIF 不区分大小写),"apple*" 匹配以它开头的三个。D5 从 C6 中取词,所以你可以在那里输入任意词。D7 区分大小写:与 COUNTIF 不同,FIND 能区分 apple 和 Apple,所以只有 Pineapple、apple juice 和 Green apple 被计入。-- 把 TRUE/FALSE 结果转换成 1 和 0,供 SUMPRODUCT 相加。

如果单元格包含文本,就返回一个值

要标记每一行,就逐个单元格检查。SEARCH("apple",A2) 返回 apple 开始的位置,找不到时返回 #VALUE!。ISNUMBER 把结果转换成 TRUE 或 FALSE,IF 再决定显示什么。

如果单元格包含 apple
B2
ABC
1ProductContains apple?Any text?
2AppleYesText
3PearNoText
4PineappleYesText
542NoNot text
6Green appleYesText
72026-02-01NoNot text
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

两列都已向下填充。B 列对 Apple、Pineapple 和 Green apple 显示 Yes。C 列使用 ISTEXT,回答的是另一个问题:单元格里到底有没有文本。42 和日期都是数字,所以显示“Not text”。需要区分大小写时,用 FIND 代替 SEARCH。关于这两个函数,以及为什么 SEARCH 才是不分大小写的那个,详见 FIND 和 SEARCH。

=IF(COUNTIF(A2,"*apple*"),"Yes","No") 用 COUNTIF 做同样的判断:计数 1 视为 TRUE,0 视为 FALSE。

统计包含多个词之一的单元格

把两个 COUNTIF 相加时,同时包含两个词的单元格会被统计两次。应该对每个单元格只判断一次:对每个词分别 SEARCH,把 TRUE 结果相加,再统计和大于 0 的行。

apple 或 juice
D2
ABCD
1ProductFormulaCount
2AppleTwo COUNTIFs5
3Orange juiceEach cell once4
4Pear
5apple juice
6Plum
7Green apple
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

有四个产品提到了 apple 或 juice,但两个 COUNTIF 相加得到 5,因为 apple juice 被两者都统计了。SUMPRODUCT 版本得到 4。

练习:统计文本单元格

轮到你了:统计文本
E2
ABCDE
1DeliveryWeightWhatCount
2D-112Notes
3D-29
4D-3damaged
5D-415
6D-5missing
7D-6
8D-7late
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 有些配送记录填的是重量,有些是备注。统计 B2:B8 中包含文本的单元格。在 E2 中写公式。

为什么文本单元格的统计数不对

  • 以文本形式存储的数字会被统计。 从其他系统导入的列可能把 '125 存成文本。"*" 会统计它,COUNT 则不会。如果一列数字的 COUNT 小于 COUNTA,说明其中有些是文本;参见以文本形式存储的数字。
  • 只是看起来为空的单元格。 含有一个空格的单元格是文本,会被统计。用 =SUMPRODUCT(--(LEN(TRIM(A2:A8))>0)) 统计含有可见字符的单元格。
  • TRUE 和 FALSE 不是文本。 "*" 会跳过它们,就像跳过 #N/A 这样的错误值一样。
  • COUNTIF 不区分大小写。 要区分大小写地统计,在 SUMPRODUCT 中使用 FIND,就像第二个表格那样。

常见问题

如何在 Excel 中统计包含任意文本的单元格?

使用 =COUNTIF(A2:A8,"*")。星号匹配任意文本,所以公式会统计每个文本单元格,跳过数字、日期、TRUE/FALSE 和空单元格。

如何统计包含特定文本的单元格?

在这个词两边加上星号:=COUNTIF(A2:A8,"*apple*") 统计任意位置含有 apple 的单元格,不分大小写。不加星号的话,"apple" 只统计内容正好是 apple 的单元格。

在 Excel 中如何写“如果单元格包含某文本则……”?

把 IF、ISNUMBER 和 SEARCH 组合起来:=IF(ISNUMBER(SEARCH("apple",A2)),"Yes","No")。SEARCH 找到文本时返回位置,找不到时返回错误,ISNUMBER 再把结果转换成 TRUE 或 FALSE。

如何检查单元格中是否有任何文本?

使用 =ISTEXT(A2),文本返回 TRUE,数字、日期和空单元格返回 FALSE。放在 IF 中:=IF(ISTEXT(A2),"Text","Not text")。

Coddy 编程语言插图

和 Coddy 一起学编程

开始