はじめに
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に頼らずとも、関数だけで対応できるケースも多いため、ぜひ一度試してみてください。
少しでも参考になれば幸いです。