Table of contents
本教程介绍了如何使用公式和Text Toolkit工具在Excel中删除空白,你将学习如何删除单元格中的前导和尾部空格,消除单词之间的额外空格,摆脱非断裂性的白色空间和非打印字符。
空格最大的问题是什么? 人类的眼睛往往看不到它们。 一个细心的用户偶尔可以捕捉到隐藏在文本之前的前导空格或字与字之间的几个额外的空格。 但没有办法发现尾部空格,那些在单元格末尾一直在视线之外的空格。
如果多余的空格只是随处可见,这并不是什么大问题,但它们会扰乱你的公式。 关键是,包含相同文本的两个单元格,有空格和无空格,即使只有一个空格字符,也会被视为不同的值。 因此,你可能会绞尽脑汁,试图弄清楚为什么一个明显正确的公式不能匹配两个看似相同的条目。
现在你已经完全意识到了这个问题,是时候想办法解决了。 有几种方法可以去除字符串中的空格,本教程将帮助你选择最适合你的特定任务和你正在处理的数据类型的技术。
如何删除Excel中的空白--前导、尾随、单词之间的空白
如果你的数据集包含多余的空格,Excel的TRIM函数可以帮助你一次性删除它们--前导、后导和多个中间的空格,除了单词之间的单个空格字符。
一个常规的TRIM公式就是这么简单。
=TRIM(A2)
其中A2是你要删除空格的单元格。
如下面的截图所示,Excel的TRIM公式成功地消除了文本前后的所有空格,以及字符串中间的连续空格。
而现在,你只需要用修剪过的数值替换原列中的数值。 最简单的方法是使用 粘贴专用 > 价值观 详细的说明可以在这里找到:如何在Excel中复制数值。
此外,你可以使用Excel的TRIM函数来删除 仅限前导空格 公式的例子在这里:如何在Excel中修剪前导空格(左修剪)。
如何删除换行符和非打印字符
当你从外部来源导入数据时,不仅会出现额外的空格,还会出现各种非打印字符,如回车、换行、垂直或水平制表符等等。
TRIM函数可以消除空白,但它不能消除非打印字符。 从技术上讲,Excel的TRIM被设计成只能删除7位ASCII系统中的32号值,也就是空格字符。
要删除字符串中的空格和非打印字符,可将TRIM与CLEAN函数结合使用。 正如其名称所示,CLEAN旨在清理数据,它可以删除7位ASCII集(数值0到31)中的任何和所有前32个非打印字符,包括 换行符 (价值10)。
假设要清理的数据在A2单元格,公式如下。
=trim(clean(a2))
如果Trim/Clean公式连接多行内容时没有空格,你可以通过使用这些技术之一来解决这个问题。
- 利用Excel的 "全部替换 "功能:在 "查找什么 "框中,按快捷键Ctrl+J输入一个回车键;在 "替换为 "框中,输入一个空格。 点击 "全部替换"。 全部替换 按钮将把选定范围内的所有换行符换成空格。
- 使用以下公式将回车(值13)和换行(值10)字符替换成空格。
=substitute(substitute(a2, char(13), " "), char(10), " ")
更多信息,请参见如何在Excel中删除回车(换行)。
如何删除Excel中的非断裂空格
如果在使用TRIM & CLEAN公式后,一些顽固的空格仍然存在,很可能是你从某个地方复制/粘贴了数据,一些非破折号的空格溜了进来。
为了摆脱非断裂空格(html字符 ),用普通的空格替换它们,然后让TRIM函数删除它们。
=trim(substitute(a2, char(160), " ") )
为了更好地理解这个逻辑,我们来分解一下这个公式。
- 在7位ASCII系统中,一个非断裂字符的值是160,所以你可以用CHAR(160)公式来定义它。
- SUBSTITUTE函数用于将非破折号的空格变成普通空格。
- 最后,你将SUBSTITUTE语句嵌入TRIM函数中,以删除转换后的空格。
如果你的工作表还包含非打印字符,可将CLEAN功能与TRIM和SUBSTITUTE一起使用,以一举除去空格和不需要的符号。
=trim(clean((substitute(a2,char(160)," ")))))
下面的截图展示了区别。
如何删除一个特定的非打印字符
如果上例中讨论的3个函数(TRIM、CLEAN和SUBSTITUTE)的联系不能消除你工作表中的空格或非打印字符,这意味着这些字符的ASCII值不是0到32(非打印字符)或160(非断裂空间)。
在这种情况下,使用CODE函数来识别字符值,然后使用SUBSTITUTE将其替换为普通的空格,并使用TRIM来删除空格。
假设你想摆脱的空格或其他不良字符位于A2单元格中,你可以写2个公式。
- 在B2单元格中,通过使用以下CODE函数之一检测有问题的字符值。
- 字符串开头的领先空格或非打印字符。
=code(left(a2,1))
- 字符串结尾处的尾部空格或非打印字符。
=code(right(a2,1))
- 字符串中间的空格或非打印字符,其中 n 是有问题的字符的位置。
=CODE(MID(A2, n , 1)))
在这个例子中,我们有一些未知的非打印字符在文本的中间,在第四位,我们用这个公式找出它的值。
=code(mid(a2,4,1))
CODE函数返回值为127(请看下面的截图)。
- 字符串开头的领先空格或非打印字符。
- 在C2单元格中,你用一个普通的空格("")替换CHAR(127),然后修剪这个空格。
=trim(substitute(a2, char(127), " ") )
结果应该与此类似。
如果你的数据包含一些不同的非打印字符以及非破折号,你可以嵌套两个或更多的SUBSTITUTE函数来一次删除所有不需要的字符代码。
=trim(substitution(a2, char(127), " "), char(160), " "))
如何删除Excel中的所有空格
在某些情况下,你可能想完全删除单元格中的所有空白,包括单词或数字之间的单个空格。 例如,当你导入一个数字列时,空格被用作千位分隔符,这使得阅读大数字更容易,但却妨碍你的公式计算。
要一次性删除所有空格,请使用前面例子中解释的SUBSTITUTE,唯一不同的是,你将CHAR(32)返回的空格字符替换为空字符("")。
=substitute(a2, char(32), "" )
或者,你可以简单地在公式中输入空格(" "),像这样。
=substitute(a2," ",")
之后,用数值代替公式,你的数字就会正常计算。
如何在Excel中计算空格
在删除某个单元格中的空格之前,你可能很想知道那里究竟有多少个空格。
要获得一个单元格中的空格总数,请执行以下操作。
- 使用LEN函数计算整个字符串的长度:LEN(A2)
- 将所有的空格替换为空: SUBSTITUTE(A2," "," ")
- 计算不含空格的字符串的长度:LEN(SUBSTITUTE(A2," ","))
- 从总长度中减去 "无空间 "字符串的长度。
假设原始文本串在A2单元格,完整的公式如下。
=len(a2)-len(replacement(a2," ","))
要了解有多少 额外空间 的单元格中,得到不含额外空格的文本长度,然后从字符串的总长度中减去它。
=len(a2)-len(trim(a2))
下面的截图展示了这两个公式的运行情况。
现在你知道了每个单元格包含多少个空格,你可以使用TRIM公式安全地删除多余的空格。
不使用公式的方式来删除空格和清理数据
你已经知道,许多额外的空格和其他不受欢迎的字符会潜伏在你的工作表中而不被发现,特别是当你从外部来源导入数据时。 你也知道如何在Excel中用公式删除空格。 当然,学习少量的公式是一个很好的练习,可以磨练你的技能,但它可能很费时间。
珍惜时间和欣赏便利的Excel用户可以利用我们的Excel终极套件所包含的文本工具。 其中一个方便的工具可以在一个按钮中删除空格和非打印字符。
安装后,Ultimate Suite为你的Excel功能区增加了几个有用的按钮,如 修饰空间 , 移除字符 , 转换文本 , 清晰的格式化 ,还有一些。
每当你想删除Excel表格中的空白处时,请执行以下4个快速步骤。
- 选择你要删除多余空格的单元格(范围、整列或行)。
- 点击 修饰空间 上的按钮。 阿博比特数据 标签。
- 选择一个或几个选项。
- 移除 领导 和 蔓生的 空间
- 修剪 额外的 词语之间的空格 对一个
- 删除 非断裂 空间 ( )
- 点击 修剪 按钮。
完成了!所有多余的空格都被一键删除。
这就是如何快速删除Excel单元格中的空格。 如果你对探索其他功能感到好奇,非常欢迎你下载Ultimate Suite的评估版。 感谢你的阅读,期待下周在我们的博客上见到你。