|
以前在EXcelHome论坛看到一网友问:他的电子表格“求和”出现错误(公式完全确),不知什么原因,起始想到的可能是数字前后可能出现空格,然后用Trim函数处理,不管用。为了进一步打出原因,对每一个数据进行查看,发现有空格,但为什么Time删除不了呢?请看下文
有时文本值包含前导、尾部或多个嵌入空格字符(Unicode字符集(Unicode:UnicodeConsortium开发的一种字符编码标准。该标准采用多(于一)个字节代表每一字符,实现了使用单个字符集代表世界上几乎所有书面语言。)值32和160),或者非打印字符(Unicode字符集值0到31、127、129、141、143、144和157)。在您执行排序、筛选或搜索时,这些字符有时会导致意外结果。例如,用户可能由于不慎添加额外空格字符而导致录入错误,或者从外部源导入的文本数据可能包含在文本中嵌入的非打印字符。由于这些字符不容易引起注意,可能会导致难于理解的意外结果。要解决这些不需要的字符,您可以结合使用TRIM、CLEAN和SUBSTITUTE函数。
TRIM函数删除文本中除单词之间的单个空格外的所有空格。CLEAN函数删除文本中的所有非打印字符。这两个函数都设计用于7位ASCII,它是ANSI字符集(ANSI字符集:MicrosoftWindows使用的8位字符集,允许您使用键盘表示多达256个字符(0到255)。ASCII字符集是ANSI集的子集。)的一个子集。7位ASCII中的前128个值(0到127)与Unicode字符集中的前128个值代表相同的字符,了解这一点很重要。
TRIM函数设计用于清除文本中的7位ASCII空格字符(值32)。在Unicode字符集中,有一个称为不间断空格字符的额外空格字符,其十进制值为160。该字符通常在网页中用作HTML实体 。TRIM函数本身不删除此不间断空格字符。
CLEAN函数设计用于删除文本中7位ASCII代码中的前32个非打印字符(值0到31)。在Unicode字符集中,有附加的非打印字符(值为127、129、141、143、144和157)。CLEAN函数自身不删除这些附加的非打印字符。
要执行此任务,请使用SUBSTITUTE函数用7位ASCII字符(TRIM和CLEAN函数就是为这些字符设计的)替换较高值的Unicode字符。
示例
行与列号
| A
| 1
| 数据
| 2
| BD122
| 3
| XY453
| 4
| BD 122
| 5
| MN987
|
公式
| 说明(结果)
| =TRIM(A2)
| 删除字符串“BD122”中的尾部空格(BD112)
| =CLEAN(A3)
| 从由表达式="XY"&CHAR(7)&"453"(XY453)生成的字符串值中删除非打印BEL字符(ASCII值为7)
| =TRIM(SUBSTITUTE(A4,CHAR(160),CHAR(32)))
| 通过使用SUBSTITUTE函数,用一个空格字符(ASCII值为32)替换每个不间断空格字符(Unicode值为160),然后从字符串“BD122”中删除前导空格和多个嵌入空格(BD112)
| =CLEAN(SUBSTITUTE(A5,CHAR(127),CHAR(7)))
| 通过使用SUBSTITUTE函数,用BEL字符(ASCII值为7)替换非打印DEL字符(ASCII值为127),然后从字符串“MN987”中删除BEL字符(MN987)
|
|
评分
-
3
查看全部评分
-
|