はじめに
Excelを使っていると、スペースや記号で区切られた文字列から、特定の部分だけを取り出したいという場面がよくあります。
私自身、「姓と名がスペースで区切られている文字列から、それぞれを分けて取得したい」と思い、
Excel関数でどう実現できるのかを調べてみました。
その結果、LEFT・MID・FIND関数を組み合わせることで、スペース前後の値をそれぞれ取得する方法がわかりましたので、紹介します。
想定するケース:セルに「姓+スペース+名」
今回は、以下のようなセルの内容を例にして説明します。
セルA1:森 太郎
このように、「姓(森)」と「名(太郎)」の間に全角スペースが入っている文字列から、それぞれを取り出す方法です。
姓(スペース前の文字列)を取得する方法
まずは、姓(=スペースの前の文字列)を取り出す関数です。
=LEFT(A1,FIND(" ",A1)-1)
解説
FIND(" ",A1):全角スペースの位置を取得します-1:スペースの手前までを対象にするために1文字分引いていますLEFT(A1, 数値):指定した文字数分だけ、文字列の左側から取得します
この数式をセルに入力すると、「森」という文字だけを取り出すことができます。
名(スペース後の文字列)を取得する方法
次に、名(=スペースの後の文字列)を取り出す関数です。
=MID(A1,FIND(" ",A1)+1,LEN(A1))
解説
FIND(" ",A1)+1:スペースの直後から取り出すため、1文字分加えますLEN(A1):文字列の長さを取得し、それを抽出文字数として指定しますMID(文字列, 開始位置, 文字数):指定位置から文字列を抽出します
この数式を使えば、「太郎」の部分だけを抜き出すことが可能です。
応用:ハイフンなど他の記号でも応用可能
今回の例では全角スペース( " " )を使いましたが、
区切り文字が ハイフン( - )やスラッシュ( / ) などの場合でも同じ関数構造で応用できます。
たとえば、「A1に 123-456 が入っている」場合:
=LEFT(A1,FIND("-",A1)-1)→123=MID(A1,FIND("-",A1)+1,LEN(A1))→456
区切り文字に応じて、FIND()の第1引数だけを変更すればよいという仕組みです。
まとめ
Excelで文字列を分割して処理したいとき、LEFT・MID・FIND関数の組み合わせは非常に強力です。
文字列の構造が単純であれば、セルの内容を関数だけで柔軟に分解・加工することが可能です。
複雑な処理をVBAに頼らずとも、関数だけで対応できるケースも多いため、ぜひ一度試してみてください。
少しでも参考になれば幸いです。
