MICROSOFT

EP07. “Remove Spaces 删除空格”

首页 Microsoft 工具 Excel · Functions · Text · EP07
约 6 分钟· #EP07#Excel#Text
🔒 登录后可标记已读
  • 讲怎么清理文本里的多余空格和不可见字符,常见于从别的系统复制粘贴过来的脏数据
  • 用 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:

  1. Remove Spaces