エクセルで、文字列を分けたり、つなげたりするには、LEFT・RIGHT・MID関数(取り出す)、FIND関数(区切りの位置を探す)、「&」やTEXTJOIN関数(結合する)を使います。たとえば、氏名の姓だけを取り出すなら、=LEFT(A3,FIND(" ",A3)-1) です。
この記事では、左・右・途中から取り出す、区切りで分割する、結合する、文字数を数える、不要な文字を消す、空白をそろえる方法を、1つの表を使って説明します。下の練習ツールで、氏名やコードを書き換えて、結果の変わり方を試せます。
文字列の分割・結合・取り出し|やりたいこと別の式
| やりたいこと | 式(例) | ポイント |
|---|---|---|
| 左から、文字を取り出す | =LEFT(D3,2) | 左から、指定した文字数だけ取り出します。 |
| 右から、文字を取り出す | =RIGHT(D3,4) | 右から、指定した文字数だけ取り出します。 |
| 途中から、文字を取り出す | =MID(D3,4,4) | 4文字目から、4文字を取り出します。 |
| 区切りで、姓と名に分ける | =LEFT(A3,FIND(“ ”,A3)-1) | FIND関数で、空白の位置を探します。 |
| 文字をつなげる | =B3&C3 | 「&」で、セルや文字をつなげます。 |
| 区切り文字を入れてつなげる | =TEXTJOIN(“-“,TRUE,E3,F3) | 空のセルを、飛ばしてつなげられます。 |
| 文字数を数える | =LEN(A3) | 空白も、1文字として数えます。 |
| 特定の文字を消す・置き換える | =SUBSTITUTE(D3,”-“,””) | 消すときは、置換後を「””」にします。 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
左・右・途中から取り出す(LEFT・RIGHT・MID)
コードの、先頭2文字(区分)は、LEFT関数で取り出します。末尾の4文字(番号)は、RIGHT関数です。

AB-1234 の、先頭2文字で、結果は AB です。末尾の4文字は、次の式で、1234 になります。
真ん中の文字は、MID関数です。=MID(D3,4,4) で、4文字目から4文字を取り出して、1234 になります。取り出した結果は、数字に見えても、文字列として扱われます。
▶ この式(E3)を、上の練習ツールで試す / この式(F3)を、上の練習ツールで試す
区切りの位置を探して、姓と名に分ける(FIND)
氏名を、姓と名に分けるには、まず、空白の位置を、FIND関数で探します。山田 太郎 の空白は、3文字目にあります。姓は、その1つ手前までを、LEFT関数で取り出します。
結果は 山田 です。名は、空白の次の文字から、MID関数で取り出します。
結果は 太郎 です。最後の「20」は、十分に大きい文字数で、残りをすべて取り出せます。氏名の分割だけを、くわしく知りたいときは、姓と名に分割する方法を参照してください。
▶ この式(B3)を、上の練習ツールで試す / この式(C3)を、上の練習ツールで試す
文字をつなげる(&・TEXTJOIN)
姓と名を、1つにつなげるには、「&」を使います。
=B3&C3
結果は 山田太郎 です。区切り文字を入れたり、空のセルを飛ばしたりするときは、TEXTJOIN関数が便利です。
区分と番号を、ハイフンでつないで、結果は AB-1234 です。2つ目の「TRUE」は、空のセルを無視する指定です。セル範囲をまとめて結合する方法は、セル範囲の文字列を結合する方法を参照してください。
▶ この式(I3)を、上の練習ツールで試す / この式(I4)を、上の練習ツールで試す
文字数を数える・不要な文字を消す(LEN・SUBSTITUTE)
文字数は、LEN関数で数えます。山田 太郎 は、空白を含めて、=LEN(A3) で、結果は 5 です。特定の文字を消すには、SUBSTITUTE関数で、「消したい文字」を「空の文字」に置き換えます。
AB-1234 から、ハイフンを消して、結果は AB1234 です。ハイフンの除去は、電話番号のハイフンを削除する方法でも説明しています。全角の空白を、半角にそろえるときも、同じ関数です。
結果は 山田 太郎 です。余分な空白をまとめて整えるなら、TRIM関数も使えます。文字の個数を数える方法は、特定の文字の個数を数える方法を参照してください。
▶ この式(I5)を、上の練習ツールで試す / この式(I6)を、上の練習ツールで試す / この式(I7)を、上の練習ツールで試す
文字列の分割・結合がおかしいときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#VALUE!」と表示される | FIND関数で、探す文字が見つからない | 空白の種類(全角・半角)を、元の文字列とそろえる。 |
| 姓が、1文字ずれる | 「-1」を付け忘れている | LEFT関数の文字数に、「-1」を付ける。 |
| 名の最後が、欠ける | 取り出す文字数が、足りない | MID関数の文字数を、十分に大きくする。 |
| 取り出した数字を、計算できない | 結果が、文字列になっている | 「VALUE関数」を付けるか、「*1」を掛ける。 |
| 先頭の「0」が、消える | 結合や取り出しの元が、数値になっている | 元のセルを、文字列にする。 |
| 結合した文字が、つながらない | 「&」の前後を、引用符で囲んでいない | 文字は、「”」で囲んで書く。 |
| 文字数が、見た目と合わない | 見えない空白が、入っている | TRIM関数や、SUBSTITUTE関数で、整える。 |
文字列の分割・結合のよくある質問
文字列を、先頭から取り出す式は?
=LEFT(セル,文字数) です。右からなら、RIGHT関数を使います。
空白で区切られた文字を、分けるには?
FIND関数で、空白の位置を探して、LEFT関数とMID関数で、前後を取り出します。
複数のセルを、区切り文字を入れてつなげるには?
TEXTJOIN関数を使います。=TEXTJOIN("区切り",TRUE,範囲) で、空のセルを飛ばして、つなげられます。
あわせて読みたい:文字列の関連記事
- Excelで文字列を抽出する方法まとめ|LEFT・RIGHT・MID
- Excelで氏名を姓と名に分割する方法|LEFT・MID・FIND
- Excelで姓と名を結合する方法|TEXTJOIN関数でスペース区切り
- Excelで特定の文字の個数を数える方法|LEN・SUBSTITUTE
- Excelで電話番号のハイフンを削除する方法|SUBSTITUTE
練習用ファイル:練習用Excelファイル(.xlsx・無料)
セル内で改行する方法を、基本から確認したいときは、エクセルのセル内改行(Alt+Enter・Mac・関数)もあわせてご覧ください。
改行ごとに、セルを分けたいときは、エクセルで改行ごとにセルを分割する方法もあわせてご覧ください。
電話番号の扱いをまとめて確認したいときは、エクセルで電話番号を扱う方法もあわせてご覧ください。
