我希望在LibreOffice Calc中多次出现一个字符,最后一次出现。
例如我有一个字符串abc1ba2ac2adeaa43add
。现在如果我正在搜索a
,它应该返回18。
答案 0 :(得分:3)
使用正则表达式:
=SEARCH("a[^a]*$"; CELL)
要搜索除a之外的其他字符,只需将两者替换为您要搜索的字符。
答案 1 :(得分:1)
这是我最近熟的一个 - 它在不使用正则表达式的情况下回答了问题(由于某种原因,我无法使用libreoffice 4.3.1.2)
=FIND("+|",SUBSTITUTE(A1,"a","+|",(LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))
基本上,它执行以下操作:
使用标记
替换特定搜索字符串的最后一个实例SUBSTITUTE( A1," a"," + |", (LEN(A1)-LEN(SUBSTITUTE(A1,"""")))) )
找到标记的索引
查找(" + |",...)
- 或将字符串返回到' a' -
=MID(A1, FIND("+|",SUBSTITUTE(A1,"a","+|", (LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))+1, LEN(A1))
在这个例子中," a"是你正在寻找的字符串的最后一个实例," + |"是一个占位符,它在您正在搜索的字符串中已经存在
通过调用mid
返回跟踪spec#d字符串的所有内容