=COUNTIF(A2:A8,"*") 统计 A2:A8 中包含文本的单元格。星号是代表“任意字符”的通配符,而且只匹配文本,所以数字、日期、TRUE/FALSE 和空单元格都不会被统计。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Entry | What | Count | |
| 2 | Apple | Text | 3 | |
| 3 | 12 | Not empty | 6 | |
| 4 | Numbers and dates | 2 | ||
| 5 | Pear | Empty | 1 | |
| 6 | 2026-01-05 | |||
| 7 | TRUE | |||
| 8 | n/a |
D2 统计了 Apple、Pear 和 n/a:共 3 个。COUNTA 统计所有非空单元格,共 6 个;COUNT 统计两个数字(日期也是数字)。在 A4 中输入 25,D3 和 D4 会增加,而 D2 仍为 3;如果改为输入 Plum,D2 和 D3 会增加,而 D4 仍为 2。COUNT 和 COUNTA 的对比见它们的专门页面。
前面带撇号输入的数字(例如 '007)是文本,所以 "*" 会统计它。如果只想统计至少有一个字符的单元格,使用 "?*":? 必须匹配一个字符,所以返回空字符串("")的公式永远不会被统计。
统计包含特定文本的单元格
要统计任意位置包含某个词的单元格,在这个词两边各加一个星号。不加星号,就要求整个单元格内容完全匹配。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Condition | Count | |
| 2 | Apple | contains apple | 5 | |
| 3 | Pineapple | exactly apple | 1 | |
| 4 | Pear | starts with apple | 3 | |
| 5 | apple juice | word in C6 | 1 | |
| 6 | Plum | juice | ||
| 7 | Green apple | apple, case-sensitive | 3 | |
| 8 | Apple 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 再决定显示什么。
| A | B | C | |
|---|---|---|---|
| 1 | Product | Contains apple? | Any text? |
| 2 | Apple | Yes | Text |
| 3 | Pear | No | Text |
| 4 | Pineapple | Yes | Text |
| 5 | 42 | No | Not text |
| 6 | Green apple | Yes | Text |
| 7 | 2026-02-01 | No | Not 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 的行。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Formula | Count | |
| 2 | Apple | Two COUNTIFs | 5 | |
| 3 | Orange juice | Each cell once | 4 | |
| 4 | Pear | |||
| 5 | apple juice | |||
| 6 | Plum | |||
| 7 | Green apple |
有四个产品提到了 apple 或 juice,但两个 COUNTIF 相加得到 5,因为 apple juice 被两者都统计了。SUMPRODUCT 版本得到 4。
练习:统计文本单元格
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Delivery | Weight | What | Count | |
| 2 | D-1 | 12 | Notes | ||
| 3 | D-2 | 9 | |||
| 4 | D-3 | damaged | |||
| 5 | D-4 | 15 | |||
| 6 | D-5 | missing | |||
| 7 | D-6 | ||||
| 8 | D-7 | late |
轮到你了: 有些配送记录填的是重量,有些是备注。统计 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")。