EP07. “Remove Spaces 删除空格”
🔒 登录后可标记已读- 讲怎么清理文本里的多余空格和不可见字符,常见于从别的系统复制粘贴过来的脏数据
- 用 TRIM、SUBSTITUTE、CLEAN、CODE、CHAR 几个函数组合处理不同情况
- 前置知识不需要
- 学完能处理各种「看起来一样但比对不上」的数据清洗问题
重点内容
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| TRIM | =TRIM(text) | 移除前导/尾部空格,多个连续空格压缩成一个 | =TRIM(" a b ") → "a b" |
| SUBSTITUTE | =SUBSTITUTE(text,old,new) | 把指定内容替换掉 | =SUBSTITUTE(A1," ","") 删除所有空格 |
| CLEAN | =CLEAN(text) | 移除前 32 个不可打印 ASCII 字符(代码 0-31) | =CLEAN(A1) |
| CODE | =CODE(text) | 返回文本第一个字符的 ASCII 代码 | =CODE(A1) |
| CHAR | =CHAR(number) | 把 ASCII 代码转回字符 | =CHAR(160) → 不间断空格 |
遇到哪种空格/字符问题,用哪个方法
| 问题 | 方法 | 例子 |
|---|---|---|
| 前后多余空格、单词间重复空格 | TRIM | =TRIM(A1) |
| 连单词间的空格都要删 | SUBSTITUTE | =SUBSTITUTE(A1," ","") |
| 换行符、制表符等不可打印字符 | CLEAN(常搭配 TRIM) | =TRIM(CLEAN(A1)) |
| 网页复制来的不间断空格 CHAR(160) | SUBSTITUTE 先转成普通空格,再 TRIM | =TRIM(SUBSTITUTE(A1,CHAR(160),CHAR(32))) |
TRIM 处理常规多余空格
=TRIM(A1) 会移除前导空格、尾部空格,以及单词间多余的重复空格,只留单词间的单个空格。注意 TRIM 不会删掉单词之间"该有"的那一个空格。配合 =LEN(A1) 可以对比清理前后的字符数差异,确认真的少了几个空格。
SUBSTITUTE 删除所有空格
如果连单词间的空格都要删,用 =SUBSTITUTE(A1," ",""),把空格替换成空字符串。
CLEAN 处理不可打印字符
=CLEAN(A1) 移除 ASCII 码 0-31 范围的不可打印字符(常见于从网页或其他系统复制的换行符、制表符等)。CLEAN 和 TRIM 经常搭配使用:
=TRIM(CLEAN(A1))
处理换行符
CLEAN 能移除换行符,如果想把换行符替换成别的字符(比如逗号)而不是直接删掉,用 SUBSTITUTE 配合 CHAR(10)(换行符的 ASCII 码):
=SUBSTITUTE(A1,CHAR(10),", ")
处理自定义特殊字符
先用 =CODE(A1) 找出某个特殊字符的 ASCII 代码,再用 SUBSTITUTE 配合 CHAR 把它删掉或替换:
=SUBSTITUTE(A1,CHAR(该代码),"")
处理非换行空格(Non-breaking Space)
网页复制来的文本常带有 CHAR(160)(不间断空格),TRIM 对它没有效果。要先用 SUBSTITUTE 把 CHAR(160) 换成普通空格 CHAR(32),再用 TRIM 清理:
=TRIM(SUBSTITUTE(A1,CHAR(160),CHAR(32)))
学完你会
- ✅ 能用 TRIM 清掉多余的前导/尾部/重复空格
- ✅ 能用 CLEAN 搭配 TRIM 处理换行符等不可打印字符
- ✅ 能处理网页复制常见的不间断空格
CHAR(160),知道 TRIM 单独用对它没效果
常见错误
- 只用 TRIM 处理从网页复制的数据,以为空格已经清干净了,实际上非换行空格
CHAR(160)根本没被处理掉 - 忘记 TRIM 不会删除单词之间该有的单个空格,误以为它能把 "a b c" 变成 "abc"
- 处理换行符时直接用 CLEAN 删掉,导致本来该分段的文字全部黏在一起,没考虑用 SUBSTITUTE 换成逗号等可读符号
Sources
Blog / Website: