学习路径
如果您是一名数据分析师或数据科学家,您很可能遇到过一些小问题,最后却发展成大麻烦。Excel 中的一个常见问题就是数据里存在多余的空格。它们会扰乱结果并导致意想不到的错误。有时,两个看起来完全相同的值仅仅因为隐藏空格就无法匹配。
为了解决这个问题,Excel 提供了 TRIM() 函数,它会删除所有多余的空格,只在单词之间保留一个空格。这样可使数据更干净、更易处理。
快速答案
Excel 中的 TRIM() 函数会删除文本中间、开头和结尾的所有空格,仅在单词之间保留一个空格。
=TRIM(text)
假设在单元格A2 中有一个全名,名和姓之间有多余空格。请使用以下公式:
=TRIM(A2)

使用 TRIM() 函数。图片作者自制。
Excel TRIM() 函数的用法与示例
下面通过示例学习 TRIM() 如何清理多余空格并修复格式问题。
使用 TRIM() 清理导入的数据
有时从外部来源导入到 Excel 的数据会变得混乱。经常会夹杂许多多余空格,从而影响排序、筛选,甚至是简单计算。
假设我有一份客户信息数据集,空格不一致,我想一次性删除多余空格。为此,我在单元格C2 中输入以下公式,然后双击填充柄将公式应用到所有单元格:
=TRIM(A2)

使用 TRIM() 删除多余空格。图片作者自制
在数字上使用 TRIM()
TRIM() 只对文本有效。如果将其用于数字,Excel 仍会将结果视为文本,这在进行计算时可能引发问题。

TRIM() 将数值视为文本。图片作者自制。
在上面的示例中,我们可以看到 TRIM() 清理了空格,但有两点不对劲:
-
首先,数字是左对齐而不是右对齐。在 Excel 中,数字通常右对齐。
-
其次,状态栏只显示
COUNT(),当我尝试用SUM()求和时,返回为 0。
为了解决这个问题,我们可以把 TRIM() 包在 VALUE() 函数里,如下:
=VALUE(TRIM(A2))
这个额外步骤会将修剪后的文本转换回数字。

将 TRIM() 嵌入 VALUE()。图片作者自制。
使用 TRIM() 移除分隔符
如果我们需要从文本中移除特定分隔符,可以使用 SUBSTITUTE() 函数。比如,我的文本里有逗号,但我不想要它们。我可以使用以下公式:
=SUBSTITUTE(A2,",","")
仅此一步可以去掉逗号,但不会删除它们周围的多余空格。因此,为了更严谨,我将 SUBSTITUTE() 与 TRIM() 搭配使用:
=TRIM(SUBSTITUTE(A2,",",""))

组合使用 SUBSTITUTE() 和 TRIM()。图片作者自制
Excel 的 Trim() 函数进阶技巧
除了基础用法外,TRIM() 还可以与其他 Excel 函数组合执行更高级的操作。
使用 TRIM() 删除不可打印字符
有时数据中可能存在 TRIM() 无法处理的不可打印字符。因此我会使用 CLEAN() 函数,并将其包装在 TRIM() 中。
=TRIM(CLEAN(A1))
其中,TRIM() 清理多余空格,CLEAN() 则移除不可打印字符。

清理不可打印字符。图片作者自制。
使用 TRIM() 统计单元格中的单词数
我们还可以使用 TRIM() 来统计单元格中的单词数量。请看下面的公式:
=LEN(TRIM(A1)) - LEN(SUBSTITUTE(TRIM(A1), " ", "")) + 1
其中,TRIM(A1) 删除多余空格,LEN(TRIM(A1)) 统计清理后文本的所有字符(包括空格),而 LEN(SUBSTITUTE(TRIM(A1), " ", "")) 去除所有空格,仅统计实际字符数。然后,为得到单词数,将不含空格的字符数从总字符数中相减。由于单词数总是比空格数多 + 1,因此公式中的 + 1 给出了最终的词数。

使用 TRIM() 统计单元格中的单词数。图片作者自制。
但该公式对于空白单元格会返回1。为避免这种情况,我对上式稍作调整,使其返回0:
=IF(A2="", 0, LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ",""))+1)

统计单词并处理空白单元格。图片作者自制。
使用 TRIM() 处理不间断空格
TRIM() 会删除空格,但不会删除不间断空格。这些空格看起来像普通空格,但行为不同,因为它们是一个独特的 Unicode 字符,在 7 位 ASCII 中的值为160。您可能会在从网站复制的文本中发现它们。
=TRIM(SUBSTITUTE(A1, CHAR(160), " "))
这里,CHAR(160) 将不间断空格替换为普通空格,然后 TRIM() 删除多余空格。

使用 TRIM() 和 SUBSTITUTE() 删除不间断空格。图片作者自制。
常见问题与解决方案
尽管 TRIM() 是个简单的函数,但我在使用时也遇到过一些问题。有时它不会按预期工作并报错。下面来看一些常见问题以及我的修复方法。
修复 #VALUE! 错误
如果在使用 TRIM() 后出现#VALUE! 错误,原因很可能是将该函数应用到了数值而非文本。要修复它,我会先检查数据是否为文本。如果需要清理数字中的空格,我会将 TRIM() 包在 VALUE() 中,如上所述。这样,TRIM() 删除多余空格,VALUE() 再将其转换回数字。
在大型数据集上修复性能问题
如果在大型数据集上使用 TRIM(),Excel 可能会变卡,因为每次更改表格都会重新计算每一行。为此,尽可能在导入前进行清理;或者在应用 TRIM() 后,复制已清理的列并以数值形式粘贴(Ctrl + Alt + V > 选择性粘贴数值)。这样可以移除公式,提升性能。
修复特殊字符相关问题
TRIM() 只处理 ASCII(7 位编码)中代码为32 的字符。因此要检查隐藏字符,我会使用 CODE() 函数:
-
查找第一个字符的代码:
=CODE(LEFT(A1,1))。 -
检查最后一个字符:
=CODE(RIGHT(A1,1))。 -
查看特定位置:
=CODE(MID(A1, n, 1))(将n替换为位置编号。)
例如,我有一组示例数据,在第一个单元格中,该字符位于文本右侧,因此我使用以下公式检查该字符的代码:
=CODE(RIGHT(A2))
现在我知道该字符是162,因此可以轻松用 SUBSTITUTE() 和 TRIM() 将其移除,如下:
=TRIM(SUBSTITUTE(A2, CHAR(162), " "))

使用 CODE()、SUBSTITUTE() 和 TRIM() 删除特殊字符。图片作者自制。
处理修剪后的数据未更新
有一次,我应用了 TRIM(), 但没有任何变化。重新检查后,我发现 Excel 处于手动计算模式,因此公式没有更新。为了解决这个问题,我转到“公式” > “计算选项”,并将其设置为“自动”。然后,公式就正常生效了。
结语
现在您已经了解,TRIM() 函数能删除 Excel 中的多余空格并避免计算问题。因此,无论您是在导入数据还是在移除隐藏或特殊字符,都无需逐个修复问题。相反,请将 TRIM() 与 SUBSTITUTE()、CLEAN() 和 VALUE() 等函数结合使用,以获得最佳效果。
要进一步提升您的 Excel 技能,请查看我们的 Data Preparation in Excel 课程。它将帮助您轻松清理并整理数据。掌握这些之后,再来看看我们的 Data Visualization in Excel 课程,学习如何将原始数据转化为清晰的可视化洞见。
我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。
Excel Trim() 常见问答
在使用 TRIM() 之前,如何检查单元格是否包含多余空格?
在使用前要计算单元格中的多余空格,可使用以下公式:```=LEN(A1)-LEN(TRIM(A1))```
若返回值大于 0,则表示单元格存在多余空格。
如何只删除前导空格并保留单词间空格?
若只想删除前导空格并保留单词间的空格,请使用以下公式:
=MID(A2,FIND(MID(TRIM(A2),1,1),A2),LEN(A2))
它会找到第一个非空格字符,并从该位置开始保留后续全部内容,单词间空格将被保留。
能否使用 Excel 的“查找与替换”工具删除单词之间的多余空格?
可以,步骤如下:
- 选择数据范围。
- 按 Ctrl + H 打开“查找与替换”。
- “查找内容”中输入两个空格。
- “替换为”中输入一个空格。
- 点击“全部替换”,重复操作,直到弹窗显示“找不到要替换的内容”。
能否同时将每个单词首字母大写并修剪空格?
可以,您可以使用 PROPER(TRIM(A2)) 来删除多余空格的同时,将每个单词的首字母大写。这样即可同时清理并完美格式化文本。
