• ベストアンサー

右から何文字目にあるか文字位置を取得するには?

関数で検索文字が右から何文字目にあるか文字位置を取得するには? FIND関数は左から検索文字が何文字目にあるかを取得しますよね。 右から取得するための関数は用意されてますか? vbaで言うと、StrReverse関数みたいなのはワークシート関数にはないのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.3

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

JZCOTSNRPX
質問者

お礼

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

その他の回答 (3)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

直接の関数はありません 右から数える必要性というと、検索する文字が対象の文字列に複数あって、その最後の文字位置を右から数えて何文字目かを調べたいという意味だと思うので、FIND関数とLEN関数の組み合わせでは求められない故の質問だと推測しました 一例ですが {=LEN(対象文字列)-MAX((MID(対象文字列,COLUMN(1:1),1)=検索文字)*COLUMN(1:1))+1} (配列計算なのでShift+Ctrl+Enterで) 検索文字が対象の文字れるに複数あった場合、最後の文字の右から数えた位置を表示します

JZCOTSNRPX
質問者

お礼

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

  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.2

専用の関数はないけど、LENとFIND関数を組み合わせれば出来ます。 =LEN(対象文字列)-FIND(検索文字,対象文字列,1)+1 ↓文字列関係の関数 http://www.excel-list.com/text_functions.html

JZCOTSNRPX
質問者

お礼

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

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

右から数える関数はありませんね。 LENとFIND関数を組み合わせて使うことになりますね。

JZCOTSNRPX
質問者

お礼

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

関連するQ&A