- Home »
- エクセル関数の技 »
- 文字列を分割する/文字を結合する技
- セル内の文字列を分割する方法をまとめて説明しています。
関数を使って氏名を苗字と名前に分ける方法や、区切り位置やフラッシュフィルを利用する方法を説明しています。
また、逆に関数で文字列を結合する方法もいくつか説明しています。
更新:2025/4/7;作成:2007/8/28
- 文字の位置を計算して、その位置から分割したり、文字列を探してその位置から分割したりできます。
文字の位置を捜す
FIND関数:=FIND(検索文字列,対象,開始位置)
文字列の左端から指定した文字数だけ取り出す
=LEFT(文字列,[文字数])
文字列の指定した位置から指定した文字数だけ取り出す
=MID (文字列,開始位置,文字数)
文字列の文字数を返します。半角文字と全角文字との区別はされません
=LEN(文字列)
文字列中から検索文字列を探し、置換文字列に置き換えます
=SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象)
- 名前などを分割するとき、ふりがな情報が必要なケースでは 区切り位置を利用します。
関数で取り出したものにはふりがな情報が欠落します。 - 名前の例で姓と名がスペースで区切られているケース
半角のスペースで区切られている場合
TEXTSPLIT関数を使う(Excel for Microsoft365,Excel2024)
- TEXTSPLIT関数はExcel for Microsoft365,Excel2024で使用できます。
TEXTSPLIT関数で引数に半角スペースを入れると、文字列を区切ることができます。
TEXTSPLIT関数の詳細な使い方は 指定した区切り文字で分割するTEXTSPLIT関数の使い方 をご覧ください。
C1セルに =TEXTSPLIT(A1," ") と入力して、下方向へ数式をコピーします。
TEXTBEFOR関数とTEXTAFTER関数を使う(Excel for Microsoft365,Excel2024)
- TEXTBEFOR関数とTEXTAFTER関数はExcel for Microsoft365,Excel2024で使用できます。
TEXTBEFOR関数とTEXTAFTER関数で半角スペースの前後の文字列を取り出すことができます。
TEXTBEFOR関数とTEXTAFTER関数の詳細な使い方は 区切り文字の前後の文字列を取り出すTEXTBEFORE関数・TEXTAFTER関数の使い方 をご覧ください。
C1セルに =TEXTBEFORE(A1:A4," ") と入力します。
E1セルに =TEXTAFTER(A1:A4," ") と入力します。
LEFT関数,MID関数とFIND関数を使う
- C1セルに =LEFT(A1,FIND(" ",A1)-1) と入力して下方向へ数式をコピーします。
- FIND(" ",A1) と検索文字列に半角スペースを入力します。
文字列「井上 政夫」の半角スペースはの位置は 3 なので、姓を取り出すには左から半角スペースの前までの文字を取出せばよいので、FIND("
",A1)-1 と 1 を引きます
A1セルに =LEFT(A1,FIND(" ",A1)-1) と入力して、下方向へ数式をコピーします。
- Microsoft365などのSpill(スピル)が使える場合は、
=LEFT(A1:A4,FIND(" ",A1:A4)-1) と入力します。
- D1セルに =MID(A1,FIND(" ",A1)+1,LEN(A1)) と入力して、下方向へ数式をコピーします。
- 名前は半角スペースの次の位置から取出せばよいので、FIND(" ",A1)+1と1を加えます。
取出す文字数はLEN(A1)-FIND(" ",A1)と計算しても良いのですが、後ろの制限はないのでLEN(A1)とA1の文字数を使っています。
- Microsoft365などのSpill(スピル)が使える場合
D1セルに =MID(A1:A4,FIND(" ",A1:A4)+1,LEN(A1:A4)) と入力します。
全角のスペースで区切られている場合
- 引数に全角スペースを入れます。
- C1セルに =TEXTSPLIT(A1," ") と入力して、下方向へ数式をコピーします。
F1セルには =TEXTBEFORE(A1:A4," ") と入力しています。
H1セルには =TEXTAFTER(A1:A4," ") と入力しています。
- 半角スペースのケースと同様です。FIND(" ",A1)と検索する文字列に全角スペースを入れます。
- B1セル:=LEFT(A1,FIND(" ",A1)-1)
C1セル:=MID(A1,FIND(" ",A1)+1,LEN(A1))

半角スペースと全角スペースが混在して区切られている場合
TEXTSPLIT関数を使う(Excel for Microsoft365,Excel2024)
- 区切り文字を配列で指定します。
C1セルに =TEXTSPLIT(A1,{" "," "}) と入力して、下方向へ数式をコピーします。
TEXTBEFOR関数とTEXTAFTER関数を使う(Excel for Microsoft365,Excel2024)
- 区切り文字を配列で指定します。
C1セルに =TEXTBEFORE(A1:A4,{" "," "}) と入力します。
E1セルに =TEXTAFTER(A1:A4,{" "," "}) と入力します。
LEFT関数,MID関数とFIND関数を使う
- 半角スペースか全角スペースに統一してから、FIND関数で位置を調べて取り出します。
SUBSTITUTE(A1," "," ") として半角スペースに統一します。
- C1セル:=LEFT(A1,FIND(" ",SUBSTITUTE(A1," "," "))-1)
E1セル:=MID(A1,FIND(" ",SUBSTITUTE(A1," "," "))+1,LEN(A1))
- スピルが利用できる場合
C1セル:=LEFT(A1:A4,FIND(" ",SUBSTITUTE(A1:A4," "," "))-1)
E1セル:=MID(A1:A4,FIND(" ",SUBSTITUTE(A1:A4," "," "))+1,LEN(A1:A4))

- 氏名が漢字とひらがなおよびカタカナの全角文字列であるのなら、ASC関数を使うことも出来ます。
- C1セル:=LEFT(A1,FIND(" ",ASC(A1))-1)
E1セル:=MID(A1,FIND(" ",ASC(A1))+1,LEN(A1))
- スピルが利用できる場合
B1セル:=LEFT(A1:A4,FIND(" ",ASC(A1:A4))-1)
C1セル:=MID(A1:A4,FIND(" ",ASC(A1:A4))+1,LEN(A1:A4))

- FIND関数で検索する文字列がない場合はエラーとなります。
エラーを返したくない時は被検索文字列に検索文字列を付加してやればよいでしょう。
A1,A3,A4セルは半角スペースが入力されていますが、A2セルには入力されていません。
=FIND(" ",A1)でエラーとなります。
- C1セルには=FIND(" ",A1)としてエラーが返っている例です。
E1セルでは=FIND(" ",A1&" ") と検索する文字列を追加してエラーを回避しています。
- スピルが利用できる場合
C1セルには=FIND(" ",A1:A4)
E1セルでは=FIND(" ",A1:A4&" ")

- 区切り位置では半角スペースと全角スペースは区別されません。
- A1:A4セルを選択します。
姓と名の間のスペースは全角と半角が使われています。

- [データ]タブのデータツール グループにある[区切り位置]を選択します。

- 区切り位置指定ウィザードの1/3で「コンマやタブなどの区切り文字によってフィールドごとに聞ぎられたデータ」にチェックが入っているのを確認して、[次へ]ボタンをクリックします。
- ウィザードの2/3で「スペース」にチェックを入れて[次へ]をクリックします。
データのプレビューに文字列が分割される状態が表示されます。
- ウィザードの3/3で表示先に C1 と入力して[完了]をクリックします。
- C,D列に文字列が分割されました。
区切り位置では半角スペースと全角スペースは区別されないことが分かります。
- フラッシュフィルはExcel2013以降で使用できる機能です。
なお、ここに入力されている氏名は姓と名が半角スペースで区切られています。
混在しているケースでも姓と名の分割ができます。
- 分割したい文字(苗字)をO1セルに入力して、[データ]タブの[フラッシュフィル]をクリックします。
ショートカットキーは [Ctrl]+[E]です。
下図はExcelの表示幅を広くしていますので、フラッシュフィルのボタンが大きく表示されています。
- O2セル以降にスペース文字の前の文字列(姓)が表示されました。
- P1セルには名前を入力して、[データ]タブの[フラッシュフィル]をクリックします。
- P2セル以降にスペース文字の後ろの文字列(名)が表示されました。
- フラッシュフィルでは結合もできます。
結合後の文字列をQ1セルに入力します。
[データ]タブの[フラッシュフィル]をクリックします。
Q2セル以降に文字の結合ができました。
- &演算子を使ってスペースを挟んで結合する例です。
- C1セル:=A1&" "&B1 と入力して、下方向へ数式をコピーします。
Microsoft365などSpill(スピル)が利用できる場合は、C1セルに =A1:A4&" "&B1:B4 と入力します。
- CONCATENATE関数を使う例です。
- C1セル:=CONCATENATE(A1," ",B1) と入力して、数式を下方向へコピーします。
Excel for Microsoft365,Excel2021以降でSpill(スピル)が利用できる場合は、
C1セルに =CONCATENATE(A1:A4," ",B1:B4) と入力します。
- CONCAT関数を使うこともできます。
このCONCAT関数はExcel for Microsoft365,Excel2019以降で使用することができます。
空白を間に挟むケースでは =CONCAT(A1," ",B1) と入力します。
- TEXTJOIN関数を使うこともできます。
このTEXTJOIN関数はExcel for Microsoft365,Excel2019以降で使用することができます。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数の技 »
文字列を分割する/文字を結合する技
PageViewCounter

Since2006/2/27