用前缀统计发票数(COUNTIF 通配符)
测试用例
1
2
3
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
测试用例
1
2
3
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
题目
题目说明
月末结账,供应商导出的单据全挤在一列:发票以 INV- 开头、采购单是 PO-、退货是 RET-。财务只要发票的数量。请算出 A2:A11 里有几笔是发票,并填在 Invoice count 单元格 D2。
请用单元格引用指向整个区域,下个月贴上新导出文件时公式仍要正确。
题目数据
用表格查看整份数据(可选中、可复制)
| A | D | |
|---|---|---|
| 1 | Order ID | Invoice count |
| 2 | INV-1001 | |
| 3 | INV-1002 | |
| 4 | PO-2001 | |
| 5 | INV-1003 | |
| 6 | RET-3001 | |
| 7 | PO-2002 | |
| 8 | INV-1004 | |
| 9 | INV-1005 | |
| 10 | RET-3002 | |
| 11 | INV-1006 |
知识点
COUNTIF 接收区域与条件字符串,字符串里的 * 代表任意长度的字符。"INV-*" 读作「以 INV- 开头」。如果写成 "*INV*",RET-INV-77 也会被算进去——那一行正是仔细作答与快速作答的差别。条件比较不区分大小写,"inv-*" 结果相同。
解题思路
答案写在 D2。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。
- 目标单元格是 D2
- 统计区域是 A2:A11
- 要的前缀是 INV-,后面接 * 代表任意字符
- 条件是文本字符串,所以要加引号:"INV-*"
官方解法
展开 2 种解法(建议先自己试一次)
解法 1:COUNTIF 搭配前缀通配符
=COUNTIF(A2:A11,"INV-*")
COUNTIF 逐格比对 "INV-*":前四个字符必须完全匹配,后面的 * 吸收剩余字符。十行里有六行是发票。
解法 2:SUMPRODUCT 搭配 LEFT(不用通配符)
=SUMPRODUCT(--(LEFT(A2:A11,4)="INV-"))
LEFT 取出每个 ID 的前四个字符与 "INV-" 比较,两个减号把 TRUE/FALSE 转成 1/0,SUMPRODUCT 再加总。答案相同,适合规则讲的是「位置」而不是「样式」时。
函数指南
常见问题
如何统计以特定文本开头的单元格?
把前缀加上通配符放进条件:=COUNTIF(A2:A11,"INV-*")。* 会吸收前缀之后任意长度的字符,因此 INV-1001 与 INV-9 都会被算到。
为什么 "*INV*" 在这里会算错?
因为两侧都加 * 代表「包含」而不是「开头」。RET-INV-77 含有 INV-,所以会被算进去。判断类型时把样式锚定在开头("INV-*")。
COUNTIF 区分大小写吗?
不区分,"inv-*" 与 "INV-*" 结果一样。若需要区分大小写,改用 SUMPRODUCT 搭配 EXACT。