中文空格字符与英文空格字符怎么区分_清除工作表中的空格/非打印字符?TRIM与CALEN都无法清除时怎么办...

6d58f6234f879475a094a415f23b84b9.png

你好,我是小必,感谢与你在这里相遇。

我的第299篇原创Excel文章

e22b6691e20ab7a43076407a8625a9db.png

今日内容:Excel工作表中打打印字符或空格。

今天有位小伙伴问了一个关于工作表单元格中的空格与非打印字符。但是常规的替换,使用TRIM函数与CALEN常规函数是无法删除。

如图所示,是待清除的字符串的内容。每个姓名的前面或者末尾都有一个空格或者非打印字符。

4d72adda35f40c827d297892606a64a0.png

对于上面的字符串的长度使用LEN函数测一下,看看与实际的长度对比:

9f15512eacbf1b715b8c97c685c14ff5.png

先使用常规的TRIM与CLEAN函数进行清理,看看结果:

9d70ed3b080c0702ddda4be03972b59a.png

然后再测试一下结果的长度与未清理前的长度:

8069884d628d090aab6ea986b8cd47e6.png

从上面的结果来看,前三行都没有清理干净。

然后使用了复制粘贴到替换功能中也未能清理完成。

那么到底是怎么回事呢,主要问题出在CLEAN函数上。

有时文本值包含前导空格、尾随空格或多个嵌入空格字符(Unicode 字符集值 32 和 160),或非打印字符(Unicode 字符集值 0 到 31、127、129、141、143、144 和 157)。 执行排序、筛选或搜索操作时,这些字符有时会导致意外结果。

CLEAN函数只能清除非打印字符(unicode字符集值在0到31位)。即从文本中删除 7 位 ASCII 代码中的前 32 个非打印字符(值 0 到 31)。

TRIM函数从文本中删除 7 位 ASCII 空格字符(值 32)。

那么对于Unicode的值 为127、129、141、143、144 和 157的无法清除,同样地TRIM函数也无法清除Unicode值为160的字符。

那么要查看字符串中的Unicode值可以使用Excel中的Unicode函数与Unichar函数来相互转换。如将上述案例中的A2单元格中的姓名的最后一字符的值为:

663730274f8151367f9461923a054939.png

发现上面的字符的值为160。

既然不能使用TRIM函数与CLEAN函数来清理,那么转换一下思路,可以使用替代的方法,即使用SUBSTITUTE函数进行间接地清理。

在清理的过程中需要先将160的值转换成对应的非打印字符,可以使用公式:

=UNICHAR(160)

那么先清理对应的TRIM与CLEAN无法清理的,然后剩下的交给这两个函数。根据这个思路,来解决上面的问题。

在B2单元格中输入以下公式:

=CLEAN(TRIM(SUBSTITUTE(A2,UNICHAR(160),"")))

c8ba151ccc66aad2abe91389d8bd49e9.png

同样地,如果是其他的大于32位以上的空格或者非打印字符,先测出其值是多少,再转换回来,最后替换掉即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值