当修剪不起作用时,如何从Excel单元格中删除空格的公式是什么?


10

我有一张Excel数据表,该表是从Internet Explorer中的html表复制而来的。一列表值似乎都在其末尾有一个空格,但Trim不会删除它。当我特别粘贴Trim函数结果的值时,它的末尾仍然有空格。

难道是其他种类的空白字符Trim不能删除吗?


1
如果以可以查看其中存在哪种字符的模式查看它,则不会删除哪种类型的字符?
soandos 2011年

如果您执行= LEN(CELL),则返回什么?
kobaltz 2011年

1
出于好奇,最后一个字符的ASCII码是多少?使用=CODE(RIGHT(A1,1))(假设A1包含有问题的文本)查看它。空间为32,Tab是9,和新行字符是10和13
手-E-食品

1
@ Hand-E-Food,该功能的结果为160
高度不规则

@ kobaltz,= LEN(CELL)返回9。单元格值是(没有双引号)“ 010-0000”,但是修剪似乎并没有删除最后一个字符。复制并粘贴到此处的值可能会被我的浏览器或其他某种方式修改为空格…
高度不规则

Answers:


17

字符160是一个不间断的空格,该字符旨在看起来像一个空格,但仍然是单词的一部分,迫使相邻的单词保持在一起。您可以将它们转换为常规空间,然后使用修剪。

假设文字在中A1,请使用:

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

2
+1。此链接是有用的参考。非常经常CLEANTRIM而且SUBSTITUTE处理字符串都是必需的
brettdj

1

如果它只有一个空格,那么我们假设该列为A。

A1= "CELL A1 "
A2= "CELL A2 "

Then B1 would be =LEFT(A1, LEN(A1)-1)
Then B2 would be =LEFT(A2, LEN(A2)-1)

如果那是事实,那么修剪将起作用...
soandos 2011年

从评论中可以看出,这同样适用。
kobaltz 2011年

1
因为你很幸运。那里可能有多个字符,而您永远不会知道。此外,无论答案在单元格中的哪个位置出现,其他答案都可以处理它,这使它在任何情况下都是一个更好的通用答案。
soandos 2011年

除非它具有类似ASCII 160和ASCII 161之类的字符。否则,如果您知道每个字符串的长度,并且发现它与预期的不符,那么我个人不会看到此问题。我愿意尝试理解您的观点,但是两种解决方案在不同的环境中确实都有其局限性。
kobaltz 2011年

同意 我想我更喜欢另一个答案,因为他发现了问题,然后解决了。您有解决类似问题的解决方案。不过,我明白了你的观点,+ 1。
soandos 2011年

0

我建议选择整个工作表并使用“替换”(Ctrl + H)将每个不间断空格(NBSP)替换为一个空格会更容易。这仍然在单元格末尾留有空间,但要避免从单元格中间移除NBSP。您仍然需要Trim,但是比TRIM(SUBSTITUTE(...))更容易。

我以为可以使用Alt + 160进入NBSP,但对我而言不起作用。我必须使用“插入符号”将NBSP放置到单元格中,然后将其复制到其中并放入“查找内容”字段中。

对于“插入符号”,NBSP是4下第三行上的空白单元格。

如果这是重复的问题,则可以使用宏记录器保存替换。但是,最好编写一个使用FIND来定位NBSP的宏,该宏在任何字符串中的任何位置,然后将其替换为空格或根据其在字符串中的位置将其删除。该宏将需要循环直到FIND失败。


您可以使用Alt + 0160键入NBSP。一到三位数字是ASCII,四位数字是unicode。
Hand-E-Food

一旦它不起作用,我就放弃了。您的评论说服了我再试一次。我忘记了它只能与笔记本电脑中位于键盘中间的数字键盘一起使用。我将尝试记住下次我需要以这种方式输入字符。感谢您的提示。
Tony Dallimore

0

尝试CLEAN(x)函数-它消除了所有麻烦,尤其是在您混合使用161、160等的情况下。


不,不是。肯定不能与160一起使用。
robotik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.