目录
题外话:学习总结
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 如何查找符合条件的最后一个字符
- 多种方法
- 如何定位第1个,第2个
- 最后1个?
3.4.1 方法1,将字符串倒转读取+ 取第1个就等于取了最后1个
- 将字符串倒转读取+ 取第1个就等于取了最后1个
- 用VBA写个简单的自定义函数
- 然后EXCEL使用这个自定义函数 reverse1() 即可倒转字符串内容!
用VBA写个简单的自定义函数
Function reverse1(str As String)
reverse1 = StrReverse(str)
End Function
3.4.2 方法2,使用 trim() + 嵌套substitute()的方法
取最后一个符合要求的字符\之后的内容
TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))
查找最后一个符合要求的字符\之后的位置
FIND(TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)),A43)-1
4 如何查找是否有
5 如何查重
6 如何替换
下一篇 :如何查多条数据内最后一个符合要求的呢?
可能要用到数组公式等