512CJ
2021-08-01T01:57:27+00:00
rt 假如字符串:jffjdksajfjewinkd;lajdfkdfj 在查找字符 a最后一次出现的位置
如图实例
已解决,有需要的图2
你直接搜A然后拉到最下面不就行了吗[s:ac:汗]
[quote][pid=537636651,27879344,1]Reply[/pid] Post by [uid=40556673]路归人[/uid] (2021-08-02 10:06):
你直接搜A然后拉到最下面不就行了吗[s:ac:汗][/quote]大兄弟没读题,这是同一个字符串
拉到底,点到最后一个字符,然后搜索a,选择向上搜索
Reply to [pid=537644712,27879344,1]Reply[/pid] Post by [uid=10830703]王之荣耀[/uid] (2021-08-02 10:31)你们都在说什么拉到底?
[quote][pid=537645436,27879344,1]Reply[/pid] Post by [uid=62167826]旋转的小陀螺Conor[/uid] (2021-08-02 10:33):
你们都在说什么拉到底?[/quote]刚刚没看图,看了看图这道题我不会[s:a2:哭]
[img]http://img.nga.178.com/attachments/mon_201209/14/-47218_5052bc4cc6331.png[/img]excel自带的功能我不熟,但是会写点VBA
所以我能提供的思路是把字符串拆成数组,然后反向遍历匹配,匹配到的第一个值的索引就是你需要的数据了
但是有几个问题
1,无法作为公式应用到其他单元格(我不是很清楚能不能自建公式,但是既然都用上vba了,那么干脆全部用vba处理就好)
2,考虑到使用场景,字符串应该不会太长所以没有考虑性能问题
正则表达式的问题。至于具体细则,我也记不得了,太久没用。
查阅正则表达式相关资料吧。
=LEN(A1)-FIND("@",SUBSTITUTE(A1,"a","@",LEN(A1)-LEN(SUBSTITUTE(A1,"a",""))),1)+1
a1是你这个字符串的位置
从左到右数的位置的话,应该是
FIND("@",SUBSTITUTE(A1,"a","@",LEN(A1)-LEN(SUBSTITUTE(A1,"a",""))),1)
[url]https://stackoverflow.com/questions/18617349/excel-last-character-string-match-in-a-string[/url]
不用谢我,我叫雷锋,你可以用
=MATCH(2,1/(MID(A1,SEQUENCE(LEN(A1)),1)="Y"))
或者是
=FIND("@",SUBSTITUTE(A1,"\","@",(LEN(A1)-LEN(SUBSTITUTE(A1,"\","")))/LEN("\")))
或者是
=TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",LEN(A1))),LEN(A1)))
或者是
=IFERROR(FIND(CHAR(1);SUBSTITUTE(A1;"_";CHAR(1);LEN(A1)-LEN(SUBSTITUTE(A1;"_";"")));0)
你这个提问的方法不对,应该问Find函数怎么从右边开始找,这样大神们就会开始秀mid,match函数的用法了[img]http://img.nga.178.com/attachments/mon_201212/24/-1324875_50d841a63a673.png[/img]
Reply to [pid=537649632,27879344,1]Reply[/pid] Post by [uid=5578176]dock114436[/uid] (2021-08-02 10:46)公司用wps,vba有些人用着不方便
Reply to [pid=537650719,27879344,1]Reply[/pid] Post by [uid=39231981]Gyrodrill[/uid] (2021-08-02 10:49)三克油老哥