人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

EXCELの関数で、「文字列の中から、指定した文字(列)が最初に現れる位置を見つける」のはSERCHやFINDで簡単にできますが、「指定した文字(列)が最後に現れる位置」を探すことはできるのでしょうか?
ただし、マクロやaddinは使用せず、あくまでワークシート関数で処理可能な範囲で回答を御願いします。

●質問者: kamaseimo
●カテゴリ:コンピュータ
✍キーワード:Excel マクロ 文字列 関数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ohmix1
●10ポイント

http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/moji_1.htm#find2

URLはダミー。


回答としてはいまいちですが、

検索文字列の出現回数を想定できるのなら以下のような組み合わせでできます。

A列 B列 C列 D列
--------------------------------------------------------------------------
1行 | ABC =FIND(A1,A2) =IF(ISERROR(B1),0,B1) =MAX(C1:C5)
2行 | ABCABCABC =FIND(A1,A2,B1+1) =IF(ISERROR(B2),0,B2)
3行 | =FIND(A1,A2,B2+1) =IF(ISERROR(B3),0,B3)
4行 | =FIND(A1,A2,B3+1) =IF(ISERROR(B4),0,B4)
5行 | =FIND(A1,A2,B4+1) =IF(ISERROR(B5),0,B5)


A1 ... 検索文字列

A2 ... 対象文字列

B1?B5 ... 検索処理(出現回数を5回と想定)

C1?C5 ... エラー補正

D1 ... 指定した文字(列)が最後に現れる位置


以上

◎質問者からの返答

ありがとうございます。

実は自分も同様の手法で解決していたところです。

最大出現回数は今のところ11回ですが、日々変化する可能性があるため毎日列を精査する必要があり困っています。


2 ● りくっち
●60ポイント

A1に検索したい文字列、

検索したい文字列を「す」

検索対象の文字列に含まれない文字を「$」とすると、

任意のセルに


=FIND("$",SUBSTITUTE(A1,"す","$",LEN(A1)-LEN(SUBSTITUTE(A1,"す",""))))


でご希望の結果が得られるかと思います。


これは、検索文字列の中で探したい文字列を、元の文字列に含まれない文字に置換することでその場所をFINDで特定しています。

尚、何番目の文字を置換するかは、検索文字列の文字数から検索したい文字を消した文字列を引くことによって、検索したい文字が何回含まれているかを算出しています。

http://www.moug.net/

◎質問者からの返答

すばらしい!できました。

大変勉強になりましたありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ