エクセルで、セルの中の改行ごとに、文字を別のセルに分けるには、「データ」タブの「区切り位置」が、いちばん手軽です。関数で分けるなら、=TRIM(MID(SUBSTITUTE($A3,CHAR(10),REPT(" ",50)),1,50)) のように、改行を長い空白に置き換えて、取り出します。
この記事では、改行ごとにセルを分ける関数、区切り位置での分割、TEXTSPLIT関数、自動で改行する設定、Enterキーのあとに移動する方向を、1つの表を使って説明します。下の練習ツールで、文字を書き換えて、結果の変わり方を試せます。改行の入れ方は、セル内改行の方法を参照してください。
改行ごとにセルを分ける|やりたいこと別の方法
| やりたいこと | 方法・式(例) | ポイント |
|---|---|---|
| 改行ごとに、横のセルに分ける(手軽) | 「データ」→「区切り位置」 | 区切り文字に、Ctrl + J を指定します。 |
| 改行ごとに、関数で分ける | =TRIM(MID(SUBSTITUTE($A3,CHAR(10),REPT(” “,50)),1,50)) | 「1」を、51、101 に変えて、次の行を取ります。 |
| Microsoft 365 で、1つの式で分ける | =TEXTSPLIT(A3,CHAR(10)) | 横に、自動で広がります。 |
| いちばん最後の行を、取り出す | =TRIM(RIGHT(SUBSTITUTE(A3,CHAR(10),REPT(” “,50)),50)) | 行数が、決まっていないときに便利です。 |
| 行数を、数える | =LEN(A3)-LEN(SUBSTITUTE(A3,CHAR(10),””))+1 | 改行の数に、1を足します。 |
| 分けた行を、またつなぐ | =TEXTJOIN(“、”,TRUE,B3:D3) | 空のセルは、飛ばされます。 |
| 文字が長くて、自動で改行したい | 「折り返して全体を表示する」 | 列の幅に合わせて、自動で折り返します。 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
関数で、改行ごとにセルを分ける
関数で分けるときは、まず、改行を、50個の空白に置き換えます。そうすると、各行が、50文字ごとの間隔で、離れます。そこから、MID関数で、必要な位置の50文字を取り出して、TRIM関数で、余分な空白を、取り除きます。

1行目は 山田 になります。2行目は、開始位置を「51」に、3行目は「101」に変えます。山田・営業部・東京が、3つのセルに、分かれます。横にコピーするときは、開始位置を、(COLUMN()-2)*50+1 のように、列番号から作ると、式を、1つにそろえられます。
▶ この式(B3)を、上の練習ツールで試す / この式(C3)を、上の練習ツールで試す / この式(D3)を、上の練習ツールで試す
最後の行や、2行目だけを取り出す
行数が決まっていないときは、いちばん最後の行を、RIGHT関数で取り出します。
山田・営業部・東京の、最後の行は 東京 です。2行目だけなら、=TRIM(MID(SUBSTITUTE(A3,CHAR(10),REPT(" ",50)),51,50)) で、結果は 営業部 です。1行目だけなら、=LEFT(A3,FIND(CHAR(10),A3)-1) でも、山田 を取り出せます。
▶ この式(I3)を、上の練習ツールで試す / この式(I4)を、上の練習ツールで試す / この式(I5)を、上の練習ツールで試す
「区切り位置」で、改行ごとに分ける
式を使わずに、データそのものを、分けたいときは、「区切り位置」を使います。元のセルが、書き換わるので、先に、コピーをとっておきます。
Ctrl + J は、改行を、入力するキーで、欄には、何も表示されません。区切り位置の、くわしい使い方は、区切り位置の使い方を参照してください。
Microsoft 365 なら、TEXTSPLIT関数が便利
Microsoft 365 などの、新しいバージョンなら、TEXTSPLIT関数で、1つの式で、分けられます。
山田・営業部・東京が、横に、自動で広がります。縦に分けるときは、列の区切りを、省略して、行の区切りに、CHAR(10) を指定します(=TEXTSPLIT(A3,,CHAR(10)))。古いバージョンでは、使えないので、その場合は、前の関数の方法を使います。
▶ この式(I6)を、上の練習ツールで試す / この式(I7)を、上の練習ツールで試す / この式(E3)を、上の練習ツールで試す
自動で改行する・Enterのあとに移動する
文字が長いときに、セルの幅に合わせて、自動で改行するには、「ホーム」タブの「折り返して全体を表示する」を、オンにします。列の幅を変えると、改行の位置も、自動で変わります。
Enter キーを押したあとに、移動する方向は、設定で変えられます。「ファイル」→「オプション」→「詳細設定」の、「Enterキーを押したら、セルを移動する」の、方向を選びます。「下」にすれば、入力のあとに、下のセルへ、移動します。
改行ごとに分けられないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「区切り位置」で、分かれない | Ctrl + J を、入力していない | 「その他」の欄で、Ctrl + J を押す。 |
| 行が、欠ける | 1行が、50文字を超えている | 式の「50」を、大きくする。 |
| 2行目以降が、空になる | 開始位置が、同じになっている | 1・51・101 のように、50ずつ、増やす。 |
| 「#NAME?」と表示される | TEXTSPLIT関数が、使えないバージョン | SUBSTITUTE関数を使った式に、する。 |
| 分けたあと、文字が、ずれる | 元のセルを、直接、分けた | 先に、元のデータを、コピーしておく。 |
| 自動で、折り返されない | 折り返しが、オフになっている | 「折り返して全体を表示する」を、オンにする。 |
| 値を変えても、結果が変わらない | 計算方法が「手動」になっている | 「数式」タブの「計算方法の設定」を「自動」にする。 |
改行ごとの分割のよくある質問
改行ごとに、セルを分けるには?
「データ」タブの「区切り位置」で、区切り文字に、Ctrl + J を指定するのが、手軽です。関数なら、SUBSTITUTE関数とMID関数の、組み合わせを使います。
Microsoft 365 で、1つの式で、分けるには?
=TEXTSPLIT(A3,CHAR(10)) です。結果が、横に、自動で広がります。
1行を、複数行に、分けるには?
縦に分けるときは、=TEXTSPLIT(A3,,CHAR(10)) です。古いバージョンでは、INDEX関数と、行番号の組み合わせで、作れます。
あわせて読みたい:改行・文字の分割の関連記事
- エクセルのセル内改行|Alt+Enter・Mac・関数(CHAR(10))・できない原因
- エクセルで改行を削除・置換する方法|SUBSTITUTE・CLEAN・Ctrl+J・一括
- Excelの区切り位置の使い方
- エクセルで文字列を分割・結合・取り出す方法|LEFT・MID・FIND・TEXTJOIN
- Excelで氏名を姓と名に分割する方法|LEFT・MID・FIND
練習用ファイル:練習用Excelファイル(.xlsx・無料)
