エクセルで文字列を分割・結合・取り出す方法|LEFT・MID・FIND・TEXTJOIN

エクセルで文字列を分割・結合・取り出す方法|LEFT・MID・FIND・TEXTJOIN

エクセルで、文字列を分けたり、つなげたりするには、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,”-“,””)消すときは、置換後を「””」にします。
ポイントポイント:エクセルの文字列は、全角の空白と半角の空白が別の文字です。FIND関数で探す空白は、元の文字列と同じ種類にそろえます。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

左・右・途中から取り出す(LEFT・RIGHT・MID)

コードの、先頭2文字(区分)は、LEFT関数で取り出します。末尾の4文字(番号)は、RIGHT関数です。

1
結果を出したいセル(E3)を選びます。
2
「=LEFT(」と入力します。
3
コードのセル(D3)をクリックして、「,2)」と入力します。
4
Enter キーを押して、下の行まで、コピーします。
LEFT関数の式
数式=LEFT(D3,2)
ひとことで左から文字を取り出す
D3
文字列です
2
取り出す文字数です
エクセルで文字列を分割した表(氏名を姓と名に、コードを区分と番号に分ける)
エクセルで文字列を分割した表(氏名を姓と名に、コードを区分と番号に分ける)

AB-1234 の、先頭2文字で、結果は AB です。末尾の4文字は、次の式で、1234 になります。

RIGHT関数の式
数式=RIGHT(D3,4)
ひとことで右から文字を取り出す
D3
文字列です
4
取り出す文字数です

真ん中の文字は、MID関数です。=MID(D3,4,4) で、4文字目から4文字を取り出して、1234 になります。取り出した結果は、数字に見えても、文字列として扱われます。

区切りの位置を探して、姓と名に分ける(FIND)

氏名を、姓と名に分けるには、まず、空白の位置を、FIND関数で探します。山田 太郎 の空白は、3文字目にあります。姓は、その1つ手前までを、LEFT関数で取り出します。

LEFT関数の構文
数式=LEFT(A3,FIND(" ",A3)-1)
ひとことで左から文字を取り出す
A3
文字列です
FIND(" ",A3)-1
取り出す文字数です

結果は 山田 です。名は、空白の次の文字から、MID関数で取り出します。

MID関数の構文
数式=MID(A3,FIND(" ",A3)+1,20)
ひとことで途中から文字を取り出す
A3
文字列です
FIND(" ",A3)+1
開始位置です
20
取り出す文字数です

結果は 太郎 です。最後の「20」は、十分に大きい文字数で、残りをすべて取り出せます。氏名の分割だけを、くわしく知りたいときは、姓と名に分割する方法を参照してください。

文字をつなげる(&・TEXTJOIN)

姓と名を、1つにつなげるには、「&」を使います。

=B3&C3

結果は 山田太郎 です。区切り文字を入れたり、空のセルを飛ばしたりするときは、TEXTJOIN関数が便利です。

TEXTJOIN関数の式
数式=TEXTJOIN("-",TRUE,E3,F3)
ひとことで区切り文字をはさんでつなげる
"-"
区切り文字です
TRUE
空白を無視するかです
E3
つなげる文字1です
F3
つなげる文字2です

区分と番号を、ハイフンでつないで、結果は AB-1234 です。2つ目の「TRUE」は、空のセルを無視する指定です。セル範囲をまとめて結合する方法は、セル範囲の文字列を結合する方法を参照してください。

文字数を数える・不要な文字を消す(LEN・SUBSTITUTE)

文字数は、LEN関数で数えます。山田 太郎 は、空白を含めて、=LEN(A3) で、結果は 5 です。特定の文字を消すには、SUBSTITUTE関数で、「消したい文字」を「空の文字」に置き換えます。

SUBSTITUTE関数の式
数式=SUBSTITUTE(D3,"-","")
ひとことで文字を置き換える
D3
文字列です
"-"
検索する文字です
""
置き換える文字です

AB-1234 から、ハイフンを消して、結果は AB1234 です。ハイフンの除去は、電話番号のハイフンを削除する方法でも説明しています。全角の空白を、半角にそろえるときも、同じ関数です。

SUBSTITUTE関数の構文
数式=SUBSTITUTE(A3," "," ")
ひとことで文字を置き換える
A3
文字列です
" "
検索する文字です
" "
置き換える文字です

結果は 山田 太郎 です。余分な空白をまとめて整えるなら、TRIM関数も使えます。文字の個数を数える方法は、特定の文字の個数を数える方法を参照してください。

文字列の分割・結合がおかしいときの確認表

症状考えられる原因対処
「#VALUE!」と表示されるFIND関数で、探す文字が見つからない空白の種類(全角・半角)を、元の文字列とそろえる。
姓が、1文字ずれる「-1」を付け忘れているLEFT関数の文字数に、「-1」を付ける。
名の最後が、欠ける取り出す文字数が、足りないMID関数の文字数を、十分に大きくする。
取り出した数字を、計算できない結果が、文字列になっている「VALUE関数」を付けるか、「*1」を掛ける。
先頭の「0」が、消える結合や取り出しの元が、数値になっている元のセルを、文字列にする。
結合した文字が、つながらない「&」の前後を、引用符で囲んでいない文字は、「”」で囲んで書く。
文字数が、見た目と合わない見えない空白が、入っているTRIM関数や、SUBSTITUTE関数で、整える。

文字列の分割・結合のよくある質問

文字列を、先頭から取り出す式は?

=LEFT(セル,文字数) です。右からなら、RIGHT関数を使います。

空白で区切られた文字を、分けるには?

FIND関数で、空白の位置を探して、LEFT関数とMID関数で、前後を取り出します。

複数のセルを、区切り文字を入れてつなげるには?

TEXTJOIN関数を使います。=TEXTJOIN("区切り",TRUE,範囲) で、空のセルを飛ばして、つなげられます。

あわせて読みたい:文字列の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

セル内で改行する方法を、基本から確認したいときは、エクセルのセル内改行(Alt+Enter・Mac・関数)もあわせてご覧ください。

改行ごとに、セルを分けたいときは、エクセルで改行ごとにセルを分割する方法もあわせてご覧ください。

電話番号の扱いをまとめて確認したいときは、エクセルで電話番号を扱う方法もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次