如何在 Excel 中拆分单元格内的逗号分隔值并统计出现次数?
数据小陈
可以先用 TEXTSPLIT 拆分 A1,再让 COUNTIF 引用拆分后的单元格区域。Excel 中对应的内置工作表函数名为 TEXTSPLIT,SPLIT 是 Google Sheets 使用的函数名。
以下公式适用于支持 TEXTSPLIT 和动态数组的 Excel 环境。
1. 将 A1 中的数据拆分到单元格
假设 A1 的内容为:
apple,banana,apple,orange
在 B1 输入:
=TEXTSPLIT(A1,",")
拆分结果会自动向右展开,占用 B1
:| B1 | C1 | D1 | E1 |
|---|---|---|---|
| apple | banana | apple | orange |
B1 右侧需要有足够的空白单元格,否则可能出现 #SPILL! 错误。
2. 用 COUNTIF 统计各项目
在 G2
分别填入要统计的项目:apple
banana
orange
在 H2 输入以下公式,然后向下填充至 H4:
=COUNTIF($B$1#,G2)
$B$1# 表示以 B1 为起点的整个动态数组溢出区域,G2 是当前要统计的项目。拆分结果的长度变化时,引用范围会自动调整。
结果为:
| 项目 | 次数 |
|---|---|
| apple | 2 |
| banana | 1 |
| orange | 1 |
如果只想统计 apple,也可以直接使用:
=COUNTIF(B1#,"apple")
3. 自动生成去重列表和统计结果
如果不想手动填写 G2
,可以先清空这些单元格,然后在 G2 输入:=UNIQUE(TRANSPOSE(B1#))
TRANSPOSE 将横向拆分结果转为纵向,UNIQUE 保留每个项目的一份。
清空 H 列中原有的统计公式,在 H2 输入:
=COUNTIF(B1#,G2#)
项目列表和对应次数都会自动展开。
使用时需要注意什么?
- 如果逗号后可能有普通空格,例如
apple, banana,可以将 B1 的公式改为=TRIM(TEXTSPLIT(A1,",")),避免首尾空格影响匹配。TRIM也会压缩文本内部连续的普通空格,如果项目名称需要保留这些空格,请谨慎使用。 COUNTIF不区分英文字母大小写,因此apple和Apple会合并计数。COUNTIF的第一个参数应引用实际单元格区域。这里先把拆分结果放在 B1,再引用B1#,不要直接写成=COUNTIF(TEXTSPLIT(A1,","),"apple")。- 如果当前 Excel 不支持
TEXTSPLIT,可以先把 A1 的内容复制到 B1,再使用“数据”→“分列”,选择逗号作为分隔符。示例数据拆分到 B1 后,使用=COUNTIF($B$1:$E$1,G2)并向下填充即可。数据长度变化时,需要手动调整范围。
备注:内容仅供参考。
