Excel 2013,2016…セルに入っている長さの異なるスペース区切りの文字列を分解して取り出す。
セルA1に長さの異なるスペース区切りの文字列が入っているときに、文字列を分解して取り出す方法です。(区切り位置を指定しなくてもOKです。)
B1=”aaa bbbb cc dddd eeeee”
=TRIM(LEFT(B1,FIND(“■”,SUBSTITUTE(B1,” “,”■”,1)))) ⇒ aaa
=TRIM(MID(B1,FIND(“■”,SUBSTITUTE(B1,” “,”■”,1)),FIND(“■”,SUBSTITUTE(B1,” “,”■”,2))- FIND(“■”,SUBSTITUTE(B1,” “,”■”,1)))) ⇒ bbbb
=TRIM(MID(B1,FIND(“■”,SUBSTITUTE(B1,” “,”■”,2)),FIND(“■”,SUBSTITUTE(B1,” “,”■”,3))- FIND(“■”,SUBSTITUTE(B1,” “,”■”,2)))) ⇒ cc
=TRIM(MID(B1,FIND(“■”,SUBSTITUTE(B1,” “,”■”,3)),FIND(“■”,SUBSTITUTE(B1,” “,”■”,4))- FIND(“■”,SUBSTITUTE(B1,” “,”■”,3)))) ⇒ dddd
=TRIM(RIGHT(B1,LEN(B1)-FIND(“■”,SUBSTITUTE(B1,” “,”■”,LEN(B1)-LEN(SUBSTITUTE(B1,” “,””)))))) ⇒ eeeee
- SUBSTITUTE関数で、指定位置からのスペースを■に置換えます。(■は使われていない文字なら何でもOK)
- FIND関数で■の開始位置求めます。
- 最初の文字列はLEFT関数で文字列を抜き出し、TRIM関数で余分なスペースを取り除きます。
- 次の文字からはMID関数で文字列を抜き出し、TRIM関数で余分なスペースを取り除きます。
- 最後の文字列はMID関数が使えないので、RIGHT関数を用いて文字列を抜き出し、TRIM関数で余分なスペースを取り除きます。