エクセルExcelで文中の任意の文(文字)を削除・置換したいとき midとsubstitute | 昭和56年生まれが株FXとか原油とかに投資するブログ

昭和56年生まれが株FXとか原油とかに投資するブログ

気づけばもう40歳になろうとしている
20歳のころから大して変わっていないのに

エクセル セル中の任意の文字を数える substituteで紹介した置き換えの関数substitute。

もともとの機能は置換なのはいうまでもない。
=substitute(元の文章,置換したい文字,置換後の文字)

ではセル内にたくさんの文章を書いていて、2つ目の文を削除したい場合などはどうだろう。
他にも文中に何回も出てくる単語や文だけを置き換えしたい場合は、Ctrl+Hの置き換えでは回数が多くなりそうだ。

2つ目の文を消したい場合、、
①1つ目の文の句点(。)の位置を数える。
=search("。",対象のセル,1)←最後の1は数えはじめる位置で1文字目から数えるという意味。

②2つ目の文の句点の位置を数える。①で求めた場所を使って
=search("。",対象のセル,①+1)←①の句点の次から数えている

③2つ目の文章をmidで抜き出すと
=mid(対象のセル,①+1,②-①)←2番目の要素は開始位置なので2つ目の文頭、3番目は文字数なので②-①

④③を空白にすれば消えるので、substituteを使って
=substitute(対象のセル,③,"")

つなげて書くと
=SUBSTITUTE(対象のセル,MID(対象のセル,SEARCH("。",対象のセル,1)+1,SEARCH("。",対象のセル,SEARCH("。",対象のセル,1))+1),"")

3つ目の文章だと、長いな。2つ目の句点の後ろ~3つ目の句点までを空白に。
=SUBSTITUTE(対象のセル,MID(A125,SEARCH("。",対象のセル,1)+1,SEARCH("。",対象のセル,SEARCH("。",対象のセル,1)+1)-SEARCH("。",対象のセル,1)),"")

組み合わせるとややこしいけど、分解して考えれば関数の組み合わせは難しくないかもしれないですね。