EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

您所在的位置:网站首页 excel提取一行中最后一个文本字符的函数 EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

EXCEL文本处理总结:如何查找(/定位)字符串内,符合条件的多个符号里的最后一个?

2024-07-11 00:57| 来源: 网络整理| 查看: 265

目录

题外话:学习总结

1 新手切忌贪多

2 熟练者切忌懒惰

3 这2件事恰恰都和人性相反

1 EXCEL文本处理相关函数

2 查找函数 find()  和 search()

2.1 find() 

2.2 search()

2.3 下面是测试的公式情况

3 如何查找(定位)符合条件的某个字符的位置?

3.1 如何查找符合条件的第1个字符?

3.2 如何查找符合条件的第2个字符?

3.3 如何查找符合条件的第N个字符?

3.4 如何查找符合条件的最后一个字符

3.4.1 方法1,将字符串倒转读取+ 取第1个就等于取了最后1个

3.4.2 方法2,使用 trim() + 嵌套substitute()的方法

4 如何查找是否有

5 如何查重

6 如何替换

下一篇 :如何查多条数据内最后一个符合要求的呢?

题外话:学习总结

学习EXCEL/VBA 或者其他东西,是要与懒惰的自己做斗争

1 新手切忌贪多 新手看到,像什么,XX函数的10个技巧,这种根本就不要去学,一定要止住贪念新手应该带着自己的问题来寻找答案,去学习找到问题的答案后,顺着这个展开,把知识的骨架学习一遍,搞懂脉络那些技巧是血肉,有更好,没有将来也可以搜到,学到,不着急 2 熟练者切忌懒惰 会了以后,如果止步于,每次遇到问题去搜索往往多年都无法再进步处于反复学,反复忘记的循环里而应该,从各种角度去多维度的总结知识, 比如总结常用函数的多种使用技巧比如总结某些问题有哪些解决办法横向比较各种功能,函数,代码,透视表,图表的优劣 这个过程很痛苦,很费时间,可能反复去学习,但是迈过去了,以后你大脑里就有了知识脉络,对很多问题就有思路,即使要查,解决问题都是信手拈来。就达到了高手境界至于怎么到大师,我不是大师,我还不知道。。。 3 这2件事恰恰都和人性相反 刚开始的时候,人热情很高,贪多,求快,冒进,失败概率高熟练一些了,入了门了,却止步于一知半解,不深究,不总结,不提高,永远无法进入高手的境界切记!

1 EXCEL文本处理相关函数

常用文本处理函数如下

格式处理text()内容处理,选择,长度,部分选取等len()left()right()mid()字符串拼接textjoin()&cancatenate()查找find()search()替换substitute()replace()

下文就几个比较重点,比较麻烦的问题进行总结

2 查找函数 find()  和 search()

这2个函数有不少差别,功能上可以说是刚好互补的

2.1 find()  find() 基础语法: find("要查找目标内容", 查找的范围,开始位数)find() 是按 字符数进行计数对应 findb()  是按字节数进行计数,比如英文和数字为1个字节,而汉字是2个字节find() 区分大小写的find() 不能使用通配符查找

2.2 search() search() 基础语法: search("要查找目标内容", 查找的范围,开始位数)search() 是按 字符数进行计数对应 searchb()  是按字节数进行计数,比如英文和数字为1个字节,而汉字是2个字节search() 不区分大小写的search() 可以使用通配符查找

2.3 下面是测试的公式情况

3 如何查找(定位)符合条件的某个字符的位置? 3.1 如何查找符合条件的第1个字符? 使用 find()  或者 search() 查找符合条件的内容,如果在查找范围内存在多个,都只会返回符合条件的第一个字符的位置!具体试验情况见下图

3.2 如何查找符合条件的第2个字符? 可以使用从第1个字符后开始查找而且,第一个字符的位置可以不数,而采用查找+嵌套的方式

从第1个符合要求的字符 (例如\)之后,第2个符合要求字符(例如\)之前开始查找下面2个公式本质都一样FIND("\",A31)的结果也是5,只是是动态查询而不是写死的,更灵活FIND("\",A31,5)FIND("\",A31,FIND("\",A31)+1)

3.3 如何查找符合条件的第N个字符? 从要查找的第N个符合要求的字符前开始查找?但是如果是多行数据,不同行的数据长度不一样呢?数据不规范呢?这样就这样无论直接数位数,或者嵌套都很麻烦了怎么办呢?是个问题

3.4 如何查找符合条件的最后一个字符 多种方法下面有2种,应该还有其他办法

3.4.1 方法1,将字符串倒转读取+ 取第1个就等于取了最后1个 将字符串倒转读取+ 取第1个就等于取了最后1个用VBA写个简单的自定义函数然后EXCEL使用这个自定义函数 reverse1() 即可倒转字符串内容!

用VBA写个简单的自定义函数

因为excel 没有置反函数但是VBA里有所以自己写一个自定义函数即可 Function reverse1(str As String) reverse1 = StrReverse(str) End Function

3.4.2 方法2,使用 trim() + 嵌套substitute()的方法 step1REPT(" ",500)          ' 500个空格 = 空格*500次为什么是500个?其实100个也行,理论上只要比 最后1个符号\ 右边的字符数多就可以,这个例子里,理论上修改为10也行

step2                        SUBSTITUTE(A43,"\",REPT(" ",500)   ' 把特殊符号"\" 替换为500个空格 

step3RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)取最右边的500个字符因为举例的这个例子里,最后一个 \  后面只有几个字符,那么从右边开始取500个字符,比然会去到左边 最后一个 \ 被替换成的n个空格

step4TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))去掉左边多余的空格,得到的自然就是最后一个 \右边的内容

取最后一个符合要求的字符\之后的内容

 TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))

查找最后一个符合要求的字符\之后的位置

FIND(TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)),A43)-1

4 如何查找是否有

5 如何查重

6 如何替换

下一篇 :如何查多条数据内最后一个符合要求的呢?

可能要用到数组公式等

lookup好像可以

0  1/条件 这种

下一篇 :后面,还要总结

substitute函数特殊用法

lookup特殊用法

查找XX的多种方法

比如这样的

https://baijiahao.baidu.com/s?id=1724521730617556215&wfr=spider&for=pcicon-default.png?t=N4P3https://baijiahao.baidu.com/s?id=1724521730617556215&wfr=spider&for=pc全了,SUBSTITUTE函数常用套路集合!全了,SUBSTITUTE函数常用套路集合!https://www.excelhome.net/3764.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3