4

我想从 LibreOffice Calc 中多次出现的字符中获取最后一次出现。

例如,我有一个字符串abc1ba2ac2adeaa43add。现在,如果我正在搜索a它应该返回 18。

4

2 回答 2

3

使用正则表达式:

=SEARCH("a[^a]*$"; CELL)

要搜索 a 以外的其他字符,只需将两个 a 替换为您要搜索的字符即可。

于 2013-01-01T12:22:20.270 回答
2

这是我最近制作的一个 - 它在不使用正则表达式的情况下回答了这个问题(由于某种原因,我无法使用 libreoffice 4.3.1.2)

=FIND("+|",SUBSTITUTE(A1,"a","+|",(LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))

基本上,它执行以下操作:

  1. 用标记替换特定搜索字符串的最后一个实例

    替换(A1,“a”,“+|”,(LEN(A1)-LEN(SUBSTITUTE(A1,“a”,“”)))))

  2. 找到标记的索引

    查找(“+|”,...)

- 或者返回'a'右边的字符串 -

=MID(A1, FIND("+|",SUBSTITUTE(A1,"a","+|", (LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))+1, LEN(A1))

在此示例中,“a”是您要查找的字符串的最后一个实例,“+|” 是您正在搜索的字符串中不存在的占位符

对 mid 的调用将返回指定字符串后面的所有内容

于 2014-09-13T05:10:42.650 回答