関数を使って決まった文字で文を区切る
関数で決まった位置より前や後を取り出すことができます。
私がいじりたかったのは住所録。
ビル名が必要なかったので
「省きたいな」
と、思いました。
この住所録は番地とビル名の間が、全角スペースで区切られていたので、その全角スペースを目印にすれば、区切ることができそうなのでチャレンジしました。
ただ、ビル名の入力が無いもの(番地で終わっているもの)もあったので、それにも対応させています。
A1に入力されている内容
東京都千代田区雪ん子町1-1-1 雪ん子ビル
スペースの前を取り出す
=IF(COUNTIF(A1,"* *"),LEFT(A1,FIND(" ",A1)-1),A1)
=IF(COUNTIF(A1,"* *"),
A1にスペースが含まれているか判断
LEFT(A1,FIND(" ",A1)-1),
スペースが含まれていたら、スペースの一文字前(-1文字目)までを表示
A1)
スペースが含まれていなかったらA1そのままを表示
スペースの後
=IF(COUNTIF(A1,"* *"),MID(A1,FIND(" ",A1)+1,LEN(A1)-FIND(" ",A1)),"")
=IF(COUNTIF(A1,"* *"),
A1にスペースが含まれているか判断
MID(A1,FIND(" ",A1)+1,LEN(A1)-FIND(" ",A1)),
スペースが含まれていたら、A1のスペースの一文字後(+1文字目)から語尾までを表示
ちょっとややこしいので詳しく。
MID関数の作りは
MID(文字列, 開始位置, 文字数)
なので
- MID(A1,
A1の
- FIND(" ",A1)+1,
A1のスペースの一文字後(+1文字目)
- LEN(A1)-FIND(" ",A1))
LEN(A1)・・・A1のトータル文字数
FIND(" ",A1))・・・スペースは何文字目か=先頭からスペース(スペースを含む)までの文字数
↓↓↓
LEN(A1)-FIND(" ",A1))
トータル文字数からスペースまでの文字数をマイナスする=スペース以降の文字数(取り出す文字数)
"")
スペースが含まれていなかったら何も表示しない
応用
=IF(COUNTIF(A1,"* *"),LEFT(A1,FIND(" ",A1)-1),A1)
を
=IF(COUNTIF(A1,"* *"),LEFT(A1,FIND(" ",A1)-1),A1)
とすれば、半角スペースの一文字前まで。
=IF(COUNTIF(A1,"* *"),LEFT(A1,FIND(" ",A1)-1),A1)
を
=IF(COUNTIF(A1,"* *"),LEFT(A1,FIND(" ",A1)),A1)
とすれば全角スペースまで取り出せます。