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 如何查找符合条件的最后一个字符
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()的方法
- step1
- REPT(" ",500)
- ' 500个空格 = 空格*500次
- 为什么是500个?其实100个也行,理论上只要比 最后1个符号\ 右边的字符数多就可以,这个例子里,理论上修改为10也行
- step2
- SUBSTITUTE(A43,"\",REPT(" ",500)
- ' 把特殊符号"\" 替换为500个空格
- step3
- RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)
- 取最右边的500个字符
- 因为举例的这个例子里,最后一个 \ 后面只有几个字符,那么从右边开始取500个字符,比然会去到左边 最后一个 \ 被替换成的n个空格
- step4
- TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))
- 去掉左边多余的空格,得到的自然就是最后一个 \右边的内容
取最后一个符合要求的字符\之后的内容
TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500))
查找最后一个符合要求的字符\之后的位置
FIND(TRIM(RIGHT(SUBSTITUTE(A43,"\",REPT(" ",500)),500)),A43)-1
在Excel中有两种方法查找字符串的位置find(不区分大小写)和search(区分大小写)。
1.find函数
在WANGwang中查询ang出现的位置,从第1个字符开始查找,我们可以看到ang出现在WANGwang中的第6个字符位置。
2.search函数
与find的区别在于不区分大小写,所以返回了ANG所在的位置。
=IFERROR(MID(F42,FIND("@",SUBSTITUTE(F42,"/","@",LEN(F42)-LEN(SUBSTITUTE(F42,"/",""))))+1,LEN(F42)),"")
字符串长度:LEN(字符串)
对指定字符串替换:SUBSTITUTE(需要替换的文本,旧文本,新文本,第N个旧文本)
查找指定字符串:FIND(find_text, within_text, [start_num]
Excel工作表中定位最后单元格(END属性)
在VBA中还有其他的方法可以用来定位最后单元格。工作表中示例数据如下图所示,注意其中A4为空,A6至A7单元格看似空白,其实是有内容的,A6为零长度公式,A7为空格,A8为前缀字符。
示例代码如下。
Sub Demo2()
Dim rngLast As Range
Set rngL...
要查询
字符串的
最后一个字符,可以使用下标运算符([])。您可以将
字符串的长度减 1,并将该值作为下标索引传递给
字符串,以获取
最后一个字符。例如:
string = "Hello, World!"
last_char = string[len(string) - 1]
print(last_char) # 输出: !
Tampermonkey 油猴插件是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey(油猴脚本)将在您的用户脚本管理方面提供更多的便利。 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能, 同时Tampermonkey还有可能正常运行原本并不兼容的脚本。
PS:本页面仅提供Tampermonkey 油猴插件正式版
在Excel中,将多个单元格放在一个单元格中并用符号“、”连接,可以采用以下公式:
1. CONCATENATE函数:CONCATENATE函数可以将两个或多个文本字符串连接为一个字符串。例如,假设A1、A2和A3单元格分别包含“苹果”、“橙子”和“香蕉”,则使用以下公式将它们连接在一起:=CONCATENATE(A1,"、",A2,"、",A3)。结果将为“苹果、橙子、香蕉”。
2. "&"符号:"&"符号可以将两个或多个字符串连接在一起。例如,使用以下公式将A1、A2和A3单元格中的文本连接在一起:=A1&"、"&A2&"、"&A3。结果将为“苹果、橙子、香蕉”。
3. TEXTJOIN函数:在Excel 2019及以上版本中,可以使用TEXTJOIN函数将多个文本字符串连接为一个字符串。例如,使用以下公式将A1、A2和A3单元格中的文本连接在一起:=TEXTJOIN("、",TRUE,A1:A3)。结果将为“苹果、橙子、香蕉”。
这些公式都可以将多个单元格中的文本字符串连接在一起,并用指定的符号进行分隔。