当前位置: 首页 > news >正文

plsql trim去不掉空格_Excel中使用TRIM与CALEN都无法清除空格与不可见字符时怎么办...

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

我的第299篇原创Excel文章

66a7f57468af89ba9e4a179be0a9fd0c.png

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

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

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

b13ddc46016f327bf5656c1e9bb7c9c6.png

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

d15be7de32e118b0ebdbb7905d43843a.png

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

e0bba783b9a9fc06d830ca8fe192f250.png

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

d1bad9fbe977044f1173bbb7f19bfacc.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单元格中的姓名的最后一字符的值为:

3019234c947d50188507b40ff58d351e.png

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

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

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

=UNICHAR(160)

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

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

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

30c484257b49b51788823780fed38ce9.png

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

相关文章:

  • java日历算法分析_Java基础算法分析之一
  • ssh连接docker vscode_VScode远程连接Docker容器实现X11转发
  • linux mysql 最全安装_最全的mysql 5.7.13 安装配置方法图文教程(linux) 强烈推荐!
  • centos7镜像带mysql吗_【系列7】使用Dockerfile创建带mysql的Centos Docker镜像
  • spark mysql 环境搭建_Hive搭建
  • mysql vsftp_vsftp配置验证方式mysql和文件虑拟用户
  • php mysql 连接运算符_php – MINUS运算符在MySQL?
  • centos7.3中安装mysql_CentOS7.3中安装MySQL5.6
  • qstring取前几个_QT中QString 类的使用--获取指定字符位置、截取子字符串等
  • 怎么用yum安装mysql数据库_使用yum如何安装mysql数据库讲析
  • java完全面向对象吗_浅谈对Java为何是完全面向对象语言
  • java getbean不同实现_Spring Boot 2 实战:根据条件来自动配置不同逻辑的Bean
  • 孝感 java_孝感java工资一般多少,孝感java工资待遇,孝感java工资待遇到多少
  • java struct2拦截器_Java struts2 拦截器 interceptors
  • JAVA安卓4.4.4_Android源码4.4.4_r1下载和编译
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • canvas 五子棋游戏
  • Cumulo 的 ClojureScript 模块已经成型
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Git初体验
  • HashMap ConcurrentHashMap
  • Javascripit类型转换比较那点事儿,双等号(==)
  • text-decoration与color属性
  • vue-loader 源码解析系列之 selector
  • 从重复到重用
  • 给新手的新浪微博 SDK 集成教程【一】
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 再次简单明了总结flex布局,一看就懂...
  • UI设计初学者应该如何入门?
  • 阿里云服务器如何修改远程端口?
  • 阿里云重庆大学大数据训练营落地分享
  • #define 用法
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (JS基础)String 类型
  • (二)WCF的Binding模型
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)linux文件内容查看
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)我也是一只IT小小鸟
  • (转)原始图像数据和PDF中的图像数据
  • (转载)深入super,看Python如何解决钻石继承难题
  • .htaccess配置常用技巧
  • .net Application的目录
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .sys文件乱码_python vscode输出乱码
  • ?php echo ?,?php echo Hello world!;?
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C++]STL之map
  • [Everyday Mathematics]20150130
  • [IE编程] IE中对网页进行截图的编程接口
  • [Kubernetes]9. K8s ingress讲解借助ingress配置http,https访问k8s集群应用
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表