清除数据列中所有单元格的前导或尾随空格

133

如何移除整个列中所有单元格的前导或尾随空格?

工作表普通的“查找和替换”(也称为Ctrl+H)对话框无法解决这个问题。


你能澄清一下“无代码”的含义吗?你是指没有使用VBA,只用公式吗? - hydrox467
我不知道经过菜单栏改版的Excel 2010是否仍然可以导出逗号或制表符分隔的值格式,但如果可以的话,请以其中一种格式进行导出,然后在记事本(或其他软件)中进行修改,并重新导入。 - technosaurus
1
没有 'VBA' 真不错!! - venkat
6
不确定为什么它被关闭为“话题不当”,因为这是一个合法的问题,Excel可以被视为一种函数式编程语言——他的问题是如何在给定一组Excel函数的情况下实现所需的结果。 - J.D.
一个有用的链接是这个:http://www.extendoffice.com/documents/excel/667-excel-remove-first-space.html - Pietro Biroli
1
如果您想保留单词之间的内部空格,请注意这些答案。TRIM函数将删除所有额外的空格,而不仅仅是前导和尾随的空格。 - Chiramisu
6个回答

234

在 IT 技术中常见的问题之一是“不间断空格” - CHAR(160),特别是来自 Web 文本源 - 无法通过 CLEAN 函数删除。因此我建议采用以下公式,将所有不间断空格替换为标准空格:

=TRIM(CLEAN(SUBSTITUTE(A1,CHAR(160)," ")))

Ron de Bruin 在这里发布了一篇关于 数据清洗技巧 的优秀文章。

您也可以通过以下方式直接删除 CHAR(160),而无需使用其他公式:

  • 编辑.... 替换选定的数据,
  • 查找内容中按住ALT并使用数字键盘键入 0160
  • 替换为留空,并选择全部替换

4
直到今天才知道CLEAN(...)!非常有用 :) - Dmitry Pavliv

138

如果你想使用一个公式,TRIM函数会完全满足你的需求:

+----+------------+---------------------+
|    |     A      |           B         |
+----+------------+---------------------+
| 1  | =TRIM(B1)  |  value to trim here |
+----+------------+---------------------+

要处理整个列的话,可以按照以下步骤操作:
1)插入一列
2)在需要更正的单元格中插入 TRIM 函数。
3)将公式复制到整个页面
4)复制插入的列
5)粘贴为“值”

从那里开始应该就可以了...


7
这个“Trim”没起作用,结果仍然带有空格。 - venkat
21
我猜你试图删除的文本中可能还有除了空格以外的其他字符。你可以尝试使用 =TRIM(CLEAN(B1)) 这个公式,它会移除所有不可打印的字符以及任何前导/尾随的空格。 - hydrox467
4
请注意,此解决方案还将删除连续的嵌入式空格——如果您希望仅删除前导和尾随空格,则可能不是您想要的! - Loophole
4
Trim会删除单词之间多余的空格,但不包括开头和结尾的空格。 - kaushik
2
我并不希望出现这种情况,可能是我的操作有误 - TRIM 函数似乎会删除字符串中间的重复空格。有没有办法只删除开头和结尾的空格? - Shavais
显示剩余2条评论

18

不需要使用公式,您可以使用“文本分列”来完成此操作。

  • 选择具有单元格尾随空格的列。
  • 从“数据”选项卡中单击“文本分列”,然后选择“固定宽度”选项。
  • 设置断点,使最长文本适合。如果您的最大单元格包含100个字符,则可以将换行符设置为200或任何您想要的值。
  • 完成操作。
  • 现在,您可以删除Excel创建的新列。

“副作用”是Excel已经删除原始列中的所有尾随空格。


这确实是最简单的方法。感谢您的提示!使用TRIM()需要添加列和复制粘贴值等额外步骤。 - tinker
我喜欢这个答案比凯瑟琳的更好。 - tinker
1
这对我来说没有去除尾随空格。回到新的列/TRIM解决方案。 - Todd Beaulieu
我不知道为什么这个没有更高的排名。比公式方法快得多。 - AdamMasters

7

如果每次单元格开头的字符数相同,您可以使用“文本到列”命令,并选择“定宽选项”,将单元格数据分成两列。然后只需删除第一列中不需要的内容即可。


1
我发现在Excel中删除前导、尾随(和过多)空格的最佳(也是最简单)方法是使用第三方插件。我一直在使用 ASAP Utilities for Excel,它可以完成任务,同时添加许多其他非常需要的功能。这种方法不需要编写公式,并且可以在跨越多列和/或行的任何选择中删除空格。我还使用它来消毒并删除从其他Microsoft产品复制和粘贴到Excel数据时经常出现的非受邀的不间断空格。

有关ASAP Utilities和修剪的更多信息,请参见此处:

http://www.asap-utilities.com/asap-utilities-excel-tools-tip.php?tip=87enter image description here


-2
我能够使用“查找并替换”功能,“查找内容:”输入字段设置为:

" * "

(没有双引号的空格星号空格)

而“替换为:”设置为:

""

(无内容)


2
我无法使其工作。这需要正则表达式,对吗? - tinker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接