Last chance! 50% off DataCamp Premium
Sale ends in
我曾经拿到一份包含 500 多条记录的表格,乍一看一切正常,但总计怎么也算不对。起初我不明白原因,后来才发现是隐藏空格在作祟。如果您在 Excel 中处理数据,可能也遇到过类似情况。这些空格往往是在从其他来源导入数据时混进来的。
在这篇指南中,我将演示在 Excel 中删除多余空格的不同方法。每种方法都附有分步说明和实用示例,帮您避免我当时踩过的坑。不过,如果您刚刚入门,建议先看看我们的 Excel 数据分析课程或Excel 基础技能路径。
=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," "))) —— 一步到位的修复方案。在删除空格之前,先了解一下数据里可能潜伏的空格类型:
这些空格可能来自文件导入、手动输入失误、格式不一致,或从其他来源复制粘贴。

空格类型。图片来源:作者。
别看空格不起眼,带来的问题却不小。公式可能失效、比较可能失败、计算结果也可能出错。动手前,我建议您先做两件事:
现在,一起看看删除空格的最佳方法。
TRIM() 函数会删除不必要的空格,如前导、尾随以及单词间的多个空格,但会保留单个空格。完整参考可见我们的 Excel 中 TRIM() 函数指南。使用步骤如下:
在数据旁边创建一列辅助列。
在辅助列的首个单元格输入公式:=TRIM(A2)。
按下Enter,向下拖拽填充至所有行。

使用 TRIM() 删除空格。图片来源:作者。
提示 —— 替换原始数据:在辅助列应用 TRIM() 后,复制清理后的单元格,在原列上右键选择选择性粘贴 > 仅值(快捷键:Alt+E+S+V;Mac 上为 Ctrl+Shift+V)。这将仅粘贴干净值,之后即可删除辅助列。
SUBSTITUTE() 函数会删除单元格中的每一个空格(包括单词之间的空格),还能将任意字符(包括空格)替换为其他内容。它在清理数值数据时很有用,例如移除分隔数字的空格。
其基本语法为:
=SUBSTITUTE(text, old_text, new_text, [instance_num])
如下应用即可移除所有空格:
创建一列辅助列。
输入公式:=SUBSTITUTE(A2," ","")。
按下Enter,向下拖拽应用到所有行。

使用 SUBSTITUTE() 函数。图片来源:作者。
如果您想要快捷简单的修复,推荐使用 Excel 的查找与替换工具 —— 它能处理单词之间的多余空格。步骤如下:
选中数据范围。
按 Ctrl+H 打开“查找与替换”对话框。
在查找内容栏输入两个空格。
在替换为栏输入一个空格。
单击全部替换。

使用“查找与替换”功能清理空格。图片来源:作者。
重复以上步骤,直到 Excel 显示找不到要替换的内容提示。注意,此方法会将前导和尾随空格缩减为单个空格,但并不会完全删除它们。它只处理单词之间的空格。
从外部来源导入或复制数据时,常会混入不可打印字符,干扰数据处理。您可以使用 CLEAN() 函数将其删除,更好的做法是与 TRIM() 结合使用,以同时清理多余空格。
操作如下:
在辅助列输入公式:=TRIM(CLEAN(A2))。
按下Enter并向下填充。

组合使用 TRIM() 与 CLEAN() 删除空格。图片来源:作者。
您可以使用第三方外接程序 Ablebits Ultimate Suite for Excel。其中的 Trim Spaces 工具能快速清理数据,一键搞定前导与尾随空格、换行符、单词间多余空格以及不间断空格。如果您和我一样经常处理大型数据集,它能帮您节省大量时间。
使用方法:
选择要清理的单元格范围。
打开 Ablebits 的Data 选项卡,点击 Trim Spaces。
在侧边选项中选择要移除的内容并点击 Trim。

使用 Excel 外接程序修剪空格。图片来源:作者。
下面看看几个常见情境,以及如何快速解决。
多余空格会让数据显得凌乱且难以处理。您可以使用 TRIM() 清理它们,同时保留单词之间的一个空格。比如,我有几条数据的空格不一致。为了解决这个问题,我在 B2 输入以下公式并应用到所有行:
=TRIM(A2)

使用 TRIM() 删除多余空格。图片来源:作者。
有时我们需要保留单词之间的多个空格以便阅读,但要去掉开头的空格。TRIM() 虽然好用,但会清理文本中的所有多余空格。因此,当您只想删除前导空格而保留其余空格时,可使用以下进阶公式:
=MID(A2,FIND(MID(TRIM(A2),1,1),A2),LEN(A2))
原理:它定位第一个非空格字符,并从该位置开始保留其后的全部内容。这样既保留单词之间的空格,又只修剪单元格开头的空格(前导空格)。

仅删除前导空格。图片来源:作者。
尾随空格是指出现在单元格中文本或数字之后的多余空格。这些不可见字符会导致公式错误,比如看似相同的单元格在 VLOOKUP() 或 MATCH() 等函数中无法匹配。为避免此类问题,使用 TRIM()。例如,我在 B2 中输入此公式并应用至所有行,以去除数据中的多余空格。
=TRIM(A2)

删除尾随空格。图片来源:作者。
虽然 TRIM() 清理文本空格效果很好,但在处理数值数据时可能会遇到问题。我来演示会发生什么:
=TRIM(A2)

TRIM() 未能正确处理空格。图片来源:作者。
可以看到,TRIM() 虽然去除了数字前的空格,但 Excel 不再将结果视为数字 —— 而是当作文本。判断方法如下:
数据左对齐而非右对齐。
查看状态栏 —— 只显示所选单元格数量(计数),而不是总和。
如果用 SUM() 求和,会得到 0。
要修复,需要把文本转回数字。可以将其乘以 1,或使用以下公式:
=VALUE(TRIM(A2))
这样既删除空格,又确保 Excel 将数据视为数字。

组合 VALUE() 与 TRIM() 删除数字前空格。图片来源:作者。
若要删除所有空格(包括单词间的空格),请使用 SUBSTITUTE() 函数:
=SUBSTITUTE(A2, " ", "")
可以看到,该公式会移除字符串中的每一个空格。

使用 SUBSTITUTE() 删除空格。图片来源:作者。
SUBSTITUTE() 适合在文本中移除特定字符。将其与 TRIM() 搭配,可一次性清理特殊字符与空格。例如,如果我要去掉 & 并顺带清理空格,我会用这个公式:
=TRIM(SUBSTITUTE(A2, "&", ""))
您可以对比单独使用 SUBSTITUTE() 与与 TRIM() 联用时的效果。

组合使用 TRIM() 与 SUBSTITUTE() 清理空格。图片来源:作者。
从网页或其他来源粘贴的数据有时包含换行符(Alt+Enter 产生的字符,CHAR(10)),看起来像是多余空白。TRIM() 无法处理这种情况。要删除它们:
选中要清理的单元格。
按 Ctrl+H 打开“查找与替换”。
在查找内容栏按 Ctrl+J(会出现一个闪烁的光标 —— 这就是换行字符)。
将替换为留空(或输入一个空格以避免单词连在一起)。
单击全部替换。
或者,使用公式:=TRIM(CLEAN(A1)) —— CLEAN() 会去除换行符(CHAR(10))及其他不可打印字符(ASCII 1–31)。
有时我从其他来源复制或导入数据后,会出现大量不间断空格和奇怪字符。我通常这样处理:
TRIM() 会删除多余空格,但对不间断空格(字符代码 160)无效。这类空格常见于网页或排版过的来源。要解决,我会用:
=TRIM(SUBSTITUTE(A1, CHAR(160), ""))
该公式会彻底移除不间断空格。如果您想先把它们替换成普通空格(再用 TRIM() 清理多余部分),请用:=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," "))) —— 一次性清理所有空格类型的“黄金公式”。
有时还会混入其他隐藏字符,例如制表符或换行。要找出它们,我会用 CODE() 查看字符编码位置:
第一个字符:=CODE(LEFT(A1,1))
最后一个字符:=CODE(RIGHT(A1,1))
指定位置:=CODE(MID(A1, n, 1))(将 n 替换为位置编号。)
我使用的公式如下:
=CODE(RIGHT(C2,1))
知道编码后,就用 TRIM() 和 SUBSTITUTE() 去掉它。例如,要删除制表符(代码 115),我会用:
(SUBSTITUTE(C2, CHAR(115), “ “))

使用 CODE()、TRIM() 和 SUBSTITUTE() 删除空格。图片来源:作者。
不确定用哪种方法?下表将不同情境与合适工具对应起来:
| 情境 | 最佳方法 | 公式 / 快捷键 |
|---|---|---|
| 删除前导与尾随空格 | TRIM() | =TRIM(A1) |
| 删除所有空格(包括单词间) | SUBSTITUTE() | =SUBSTITUTE(A1," ","") |
| 就地快速清理,无需公式 | 查找与替换 | Ctrl+H |
| 来自网页或其他应用的数据 | TRIM() + CLEAN() | =TRIM(CLEAN(A1)) |
| 网页中的不间断空格(CHAR(160)) | TRIM + CLEAN + SUBSTITUTE | =TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," "))) |
| 与数值数据混杂的空格 | VALUE() + TRIM() | =VALUE(TRIM(A1)) |
| 删除换行符 | 查找与替换或 CLEAN() | Ctrl+H → Ctrl+J 或 =TRIM(CLEAN(A1)) |
| 大型数据集、需频繁清理 | Excel 外接程序(Ablebits) | Ablebits Data > Trim Spaces |
在本指南中,我向您展示了适用于简单清理的 TRIM()、应对进阶问题的 SUBSTITUTE(),以及在需要频繁删除空格时可选用的外接程序。不同方法适合不同数据类型,请根据您的需要进行选择。想系统了解如何保持表格整洁,请参阅我们的Excel 数据清洗指南。
如果您想进一步提升技能,不妨看看 DataCamp 的 Excel 强力工具数据分析技能路径。课程以循序渐进的方式,帮助您精通 Excel,并改进数据清洗技巧。
我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。
可以,方法如下:
使用“替换值”(Replace Values)删除单词间多余空格或特定字符。清理完成后,可将数据加载回 Excel。
您可以使用 TRIM() 和 SUBSTITUTE() 函数删除单元格中的连字符和多余空格。公式如下:=TRIM(SUBSTITUTE(A11, "-", ""))
只要提供示例,快速填充(Flash Fill)即可删除空格。例如,若 John Doe 在 A2 中,而您想要没有空格的 JohnDoe,请在 B2 输入 JohnDoe,然后按 Ctrl + E 触发快速填充。
可以,将 SUBSTITUTE() 与 UPPER() 组合,以同时删除空格并将文本转为大写:=UPPER(SUBSTITUTE(A2, " ", ""))
使用查找与替换(Ctrl+H)。在查找内容中输入一个或两个空格,将替换为留空,然后点击全部替换。这样即可直接在所选单元格中删除空格,无需辅助列。若需基于模式的做法,提供一个期望输出示例后,快速填充(Ctrl+E)也可删除空格。
TRIM() 只会删除常规空格(ASCII 32)。如果您的数据包含不间断空格(CHAR(160),常见于从网页粘贴的文本)或不可打印字符,单用 TRIM() 无效。请使用一站式公式:=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," ")))。您也可以用 =CODE(LEFT(A1,1)) 或 =CODE(RIGHT(A1,1)) 来识别可疑字符。
在 DataCamp 学习 Excel
课程
课程
课程