重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

関数で検索文字が右から何文字目にあるか文字位置を取得するには?
FIND関数は左から検索文字が何文字目にあるかを取得しますよね。
右から取得するための関数は用意されてますか?

vbaで言うと、StrReverse関数みたいなのはワークシート関数にはないのですか?

A 回答 (4件)

VBAが使えるのなら、ワークシート関数を自分で作ってしまうのが確実です。



' 対象が検索文字列の右から何文字目にあるか(大文字/小文字を区別する)
FUNCTION FIND_LEFT(検索文字列 As String, 対象 As String) As Long
Dim tmp As String
tmp = StrReverse(検索文字列)
FIND_LEFT = InStr(tmp, 対象)
END FUNCTION

' 対象が検索文字列の右から何文字目にあるか(大文字/小文字を区別しない)
FUNCTION SEARCH_LEFT(検索文字列 As String, 対象 As String) As Long
Dim tmp As String
tmp = StrReverse(検索文字列)
SEARCH_LEFT = InStr(LCase(tmp), LCase(対象))
END FUNCTION
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/23 21:45

直接の関数はありません


右から数える必要性というと、検索する文字が対象の文字列に複数あって、その最後の文字位置を右から数えて何文字目かを調べたいという意味だと思うので、FIND関数とLEN関数の組み合わせでは求められない故の質問だと推測しました


一例ですが

{=LEN(対象文字列)-MAX((MID(対象文字列,COLUMN(1:1),1)=検索文字)*COLUMN(1:1))+1}

(配列計算なのでShift+Ctrl+Enterで)

検索文字が対象の文字れるに複数あった場合、最後の文字の右から数えた位置を表示します
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/23 21:45

専用の関数はないけど、LENとFIND関数を組み合わせれば出来ます。



=LEN(対象文字列)-FIND(検索文字,対象文字列,1)+1

↓文字列関係の関数
http://www.excel-list.com/text_functions.html
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/23 21:45

右から数える関数はありませんね。


LENとFIND関数を組み合わせて使うことになりますね。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/09/23 21:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!