如何在LibreOffice Calc中获取角色的最后位置

时间:2013-01-01 12:15:00

标签: libreoffice-calc lastindexof

我希望在LibreOffice Calc中多次出现一个字符,最后一次出现。

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

2 个答案:

答案 0 :(得分:3)

使用正则表达式:

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

要搜索除a之外的其他字符,只需将两者替换为您要搜索的字符。

答案 1 :(得分:1)

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

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

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

  1. 使用标记

    替换特定搜索字符串的最后一个实例

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

  2. 找到标记的索引

    查找(" + |",...)

  3. - 或将字符串返回到' a' -

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

    在这个例子中," a"是你正在寻找的字符串的最后一个实例," + |"是一个占位符,它在您正在搜索的字符串中已经存在

    通过调用mid

    返回跟踪spec#d字符串的所有内容