ExcelのMID関数、任意の文字を抜き出す方法 | たくまのブログ

たくまのブログ

皆さんに見て頂きたい反面、
ただの記録としても使います。

タイトルでは”任意の文字”とありますが

厳密には、”指定した文字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関数を分岐として使います

ぱっと見も分かりやすく、改行を入れる事で見やすいので自分はよく使いますが

この方法は、抜き出したい文字が予め決まっている場合のみ対応できます

 

解説は、また別の記事にしようと思います。。

 

 

 

 

 

 

 

 

最後までご拝読ありがとうございました。

 

 

 

 

 

 

 

 

(性能と見た目、どちらかを選ぶなら、断然性能を選びたい性格です)