- Home »
- エクセル関数の技 »
- 文字列を分割する/文字を結合する技
- セル内の文字列を分割する方法をまとめて説明しています。
関数を使って氏名を苗字と名前に分ける方法や、区切り位置やフラッシュフィルを利用する方法を説明しています。
また、逆に関数で文字列を結合する方法もいくつか説明しています。
更新:2021/06/09;作成:2007/8/28
- 文字の位置を計算して、その位置から分割したり、文字列を探してその位置から分割したりできます。
文字の位置を捜す
FIND関数:=FIND(検索文字列,対象,開始位置)
文字列の左端から指定した文字数だけ取り出す
=LEFT(文字列,[文字数])
文字列の指定した位置から指定した文字数だけ取り出す
=MID (文字列,開始位置,文字数)
文字列の文字数を返します。半角文字と全角文字との区別はされません
=LEN(文字列)
文字列中から検索文字列を探し、置換文字列に置き換えます
=SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象)
- 名前などを分割するとき、ふりがな情報が必要なケースでは 区切り位置を利用します。
関数で取り出したものにはふりがな情報が欠落します。 - 名前の例で姓と名がスペースで区切られているケース
半角のスペースで区切られている場合
- B1セルに =LEFT(A1,FIND(" ",A1)-1) と入力して下方向へ数式をコピーします。
- FIND(" ",A1) と検索文字列に半角スペースを入力します。
文字列「井上 政夫」の半角スペースはの位置は 3 なので、姓を取り出すには左から半角スペースの前までの文字を取出せばよいので、FIND("
",A1)-1 と 1 を引きます。
- Microsoft365などのSpill(スピル)が使える場合は、=LEFT(A1:A4,FIND(" ",A1:A4)-1) と入力します。
- C1セルに =MID(A1,FIND(" ",A1)+1,LEN(A1)) と入力して、下方向へ数式をコピーします。
- 名前は半角スペースの次の位置から取出せばよいので、FIND(" ",A1)+1と1を加えます。
取出す文字数はLEN(A1)-FIND(" ",A1)と計算しても良いのですが、後ろの制限はないのでLEN(A1)とA1の文字数を使っています。
- Microsoft365などのSpill(スピル)が使える場合
C1セルに =MID(A1:A4,FIND(" ",A1:A4)+1,LEN(A1:A4)) と入力します。
全角のスペースで区切られている場合
- 半角スペースのケースと同様です。FIND(" ",A1)と検索する文字列に全角スペースを入れます。
- B1セル:=LEFT(A1,FIND(" ",A1)-1)
C1セル:=MID(A1,FIND(" ",A1)+1,LEN(A1))
半角スペースと全角スペースが混在して区切られている場合
- 半角スペースか全角スペースに統一してから、FIND関数で位置を調べて取り出します。
SUBSTITUTE(A1," "," ") として半角スペースに統一します。
- B1セル:=LEFT(A1,FIND(" ",SUBSTITUTE(A1," "," "))-1)
C1セル:=MID(A1,FIND(" ",SUBSTITUTE(A1," "," "))+1,LEN(A1))
- 氏名が漢字とひらがなおよびカタカナの全角文字列であるのなら、ASC関数を使うことも出来ます。
- B1セル:=LEFT(A1,FIND(" ",ASC(A1))-1)
C1セル:=MID(A1,FIND(" ",ASC(A1))+1,LEN(A1))
- FIND関数で検索する文字列がない場合はエラーとなります。
エラーを返したくない時は被検索文字列に検索文字列を付加してやればよいでしょう。
- B2セルには=FIND(" ",$A2)としてエラーが返っている例です。
C2セルでは=FIND(" ",$A2&" ") と検索する文字列を追加してエラーを回避しています。

- 区切り位置では半角スペースと全角スペースは区別されません。
- A1:A4セルを選択します。
姓と名の間のスペースは全角と半角が使われています。
- [データ]タブのデータツール グループにある[区切り位置]を選択します。
- 区切り位置指定ウィザードの1/3で「コンマやタブなどの区切り文字によってフィールドごとに聞ぎられたデータ」にチェックが入っているのを確認して、[次へ]ボタンをクリックします。
- ウィザードの2/3で「スペース」にチェックを入れて[完了]をクリックします。
データのプレビューに文字列が分割される状態が表示されます。
- A,B列に分割されました。
区切り位置では半角スペースと全角スペースは区別されないことが分かります。
- フラッシュフィルはExcel2013以降で使用できる機能です。
なお、ここに入力されている氏名は姓と名が半角スペースで区切られています。
混在しているケースでも姓と名の分割ができます。
- 分割したい文字(苗字)をH1セルに入力して、[データ]タブの[フラッシュフィル]をクリックします。
ショートカットキーは [Ctrl]+[E]です。
- I2セルには名前を入力して、[データ]タブの[フラッシュフィル]をクリックします。
- フラッシュフィルでは結合もできます。
結合後の文字列をC1セルに入力します。

↓
フラッシュフィルのショートカットキー [Ctrl]+[E] を打鍵します。
文字の結合ができました。
- &演算子を使ってスペースを挟んで結合する例です。
- C1セル:=A1&" "&B1 と入力して、下方向へ数式をコピーします。
- Microsoft365などSpill(スピル)が利用できる場合は、C1セルに =A1:A4&" "&B1:B4 と入力します。
- CONCATENATE関数を使う例です。
- C1セル:=CONCATENATE(A1," ",B1) と入力して、数式を下方向へコピーします。
- Microsoft365などSpill(スピル)が利用できる場合は、C1セルに =CONCATENATE(A1:A4," ",B1:B4) と入力します。
- CONCAT関数を使うこともできます。
このCONCAT関数はExcel2016(Office365),Excel2019で使用することができます。
C1セルには =CONCAT(A1:B1) と入力します。
なお、上記のCONCATENATE関数では =CONCATENATE(A1:B1) とすることはできません。

空白を間に挟むケースでは =CONCAT(A1," ",B1) と入力します。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数の技 »
文字列を分割する/文字を結合する技
PageViewCounter

Since2006/2/27