Excel中的63号字符,你不会,活该你加班
63号字符是啥,这个问题说来话长,所以咱就长话短说。
在计算机中,每个字符都有对应的数字代码表示。可以用char()函数获取数字所表示的字符,或者用code()函数获取字符对应的代码。
但是,code()函数有个特点,将当前环境下无法识别的字符对应代码处理为63,这这种字符据说有几百万个,这就是63号字符的前世今生啦。
而在63号字符中,多数还是不可见的,这就导致,你是看不出来滴。
如下图,看起来在序号和正文之间似乎是有空格存在的,那么我们删除空格试试。
方法:查找替换删除法。
鼠标放在查找内容中,按一下空格键,在替换为中什么也不要输入。结果显示查找不到空格,这说明,那并不是空格字符。
验证这个问题很简单,先复制这个字符出来,然后用code函数测试一下这个函数的代码看看是多少。
空格的字符代码是32,所以这个返回结果是63的,绝对不是空格。由于已知字符的代码,所以我们打算用substitute函数替换。
但是,结果并不是我们所希望的那样。这是怎么回事。
已经说过,code()函数有个特点,将当前环境下无法识别的字符对应代码处理为63,这这种字符据说有几百万个。正常来说,code(63)会返回一个固定的字符,但是还有很多字符的代码也是63。
这就导致你想删除的63号字符,并不是code(63)所返回的那个结果,因为很多字符的代码都是63.这真是个糟心的事呢?
解决办法就是,不管那个字符是什么,复制出来,然后查找替换就可以了。
以后再次遇到这种字符删除不掉的情况,优先实施trim,clean,substitute函数,实在不行,那就用最原始的办法,比如本文章示例,原样复制一个看不见的字符串,然后在查找替换掉就可以。
PS: 对于不可见字符,常规办法是用clean()函数处理。clean函数用于清除不可见字符,但是前提是当前环境可以识别出它是不可见字符才可以。如果clean函数都识别不出来,那自然是没法清除的。
Excel2013版开始,新增加了unicode()函数,将之前版本无法识别的63号字符识别出来,只要能识别出来,那就可以用clean()函数处理掉啦。所以,如果你发现clean函数有时候不好使,那可能就是Excel的版本问题呢。快去升级吧!