LibreOffice Calc で複数回出現する文字から最後に出現したものを取得したいと考えています。
たとえば、 string がありますabc1ba2ac2adeaa43add
。今私が探しているなら、a
それは18を返すはずです。
LibreOffice Calc で複数回出現する文字から最後に出現したものを取得したいと考えています。
たとえば、 string がありますabc1ba2ac2adeaa43add
。今私が探しているなら、a
それは18を返すはずです。
正規表現を使用:
=SEARCH("a[^a]*$"; CELL)
a 以外の文字を検索するには、両方の a を検索したい文字に置き換えます。
これは私が最近作成したものです-正規表現を使用せずに質問に答えます(何らかの理由で、libreoffice 4.3.1.2で作業できませんでした)
=FIND("+|",SUBSTITUTE(A1,"a","+|",(LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))
基本的に、次のことを行います。
特定の検索文字列の最後のインスタンスをマーカーに置き換える
SUBSTITUTE( A1, "a", "+|", (LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))) )
マーカーのインデックスを見つける
FIND( "+|", ... )
- または 'a' の右側の文字列を返す -
=MID(A1, FIND("+|",SUBSTITUTE(A1,"a","+|", (LEN(A1)-LEN(SUBSTITUTE(A1,"a","")))))+1, LEN(A1))
この例では、「a」は探している文字列の最後のインスタンスで、「+|」は 検索している文字列にまだ存在してはならないプレースホルダーです
指定された文字列の末尾にあるものはすべて、mid の呼び出しによって返されます。