タイトルでは”任意の文字”とありますが
厳密には、”指定した文字Aから指定した文字Bまで”の文字を抜き出し出来たので
備忘録として残します。
(任意の文字を抜き出す方法も、下の方で解説します)
(Excelのバージョンによっては、関数が使えない場合があります。その場合は「Excelオンライン」をお勧めします)
画像のようなデータがあった場合に、カッコの内側だけ抜き出ししたい場合は
=MID(A1,FIND("(",A1),FIND(")",A1)-FIND("(",A1))
こうすると、以下の様な結果になります
これだと頭にカッコが付くので、先頭を一つ後ろへ、文字数を-1すると
=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
キレイになりました!
これまでRIGHTとLEFTを組み合わせて、とても面倒だったので最高です!
下記に解説と、別の方法も載せておきます。
まず、簡単に分割します
①=MID(A1,
②FIND("(",A1)+1,
③FIND(")",A1)-FIND("(",A1)-1)
①MID関数で使う元の文字列です、対象のセルを選択します
②MID関数が抜き出す文字のスタート地点です
スタート地点は、前から何文字目かの数字が入るので
FIND関数で、検索した文字が前から何文字目か調べます
③MID関数が抜き出す文字の、文字数です
スタート地点から何文字抜き出すかの数字が入ります
これが少し複雑ですが、閉じカッコのみをFIND関数で検索すると
初めのカッコからではなく、全体の文字列から閉じカッコの位置を検索する為
カッコよりも前(画像では”東京”や”大阪”の部分)の文字数まで含まれてしまいます
なので、一度”東京(とうきょう)”の閉じカッコまでを検索してから
②で調べた文字数を引いてあげると、カッコより前は省かれます。
そして、任意の文字を抜き出す方法のもう一つとしてはSWITCH関数があります
(Excelのバージョンによっては、関数が使えない場合があります。その場合は「Excelオンライン」をお勧めします)
例えば、画像の例で使う場合は
=SWITCH(1,
COUNTIF(A1,"*とうきょう*"),"とうきょう",
COUNTIF(A1,"*おおさか*"),"おおさか",
COUNTIF(A1,"*ほっかい*"),"ほっかい",
COUNTIF(A1,"*かごしま*"),"かごしま",
"不一致")
これで、以下の様な結果になります
SWITCH関数の初めに"1"を入れる事で、COUNTIF関数を分岐として使います
ぱっと見も分かりやすく、改行を入れる事で見やすいので自分はよく使いますが
この方法は、抜き出したい文字が予め決まっている場合のみ対応できます
解説は、また別の記事にしようと思います。。
最後までご拝読ありがとうございました。
(性能と見た目、どちらかを選ぶなら、断然性能を選びたい性格です)