Excel でセル内で改行した文字列を 1行ずつ、個別セルに分けることはできますか?
「TEXTSPLIT」関数なら「改行」区切りの文字列を分離できます。
![]()
Excel のセル内で改行する方法は 20年前に紹介しましたが、基本的には現在も変わっていません。
- Excel のセル内で改行する方法
- パソコントラブルQ&A(2006/4/5)
要するに
- セル内の長い文字列で、折り返したい部分にカーソルを合わせ、
「Alt」キーを押しながら「Enter」キーを押す
という有名な方法で「セル内での改行」ができます。
そんな改行された文字列を 1行ずつ、個別のセルに分けたいときは「TEXTSPLIT」関数を使えば可能です。
たとえば「A1」セルに、「Alt + Enter」で 3行に改行した文字列
やまだたろう
山田太郎
東京都
があった場合、「B1」セルに「TEXTSPLIT」関数を使った
=TEXTSPLIT(A1,CHAR(10))
と言う計算式を入力すると以下のようになります。
![]()
今回使った「TEXTSPLIT」関数の省略できない最小限の書式は
TEXTSPLIT(text,col_delimiter)
であり、引数はそれぞれ
- text :分割する文字列
- col_delimiter :列間で文字列を分割するポイントを示す文字
を意味しており、先程の
=TEXTSPLIT(A1,CHAR(10))
という式で「A1」セル内の文字列を「改行コード CHAR(10)」を使って分割して、列セルに順番に並べて表示することができる、というわけです。
![]()
表示されている文字列をそのまま入力したいときは、数式によって表示されているセルを選択後に「コピー」して、そのまま上書きするように「値を貼り付け」します。
![]()
これで数式は消えて、文字列だけが残ります。
![]()
規則的に「Alt + Enter」で 3行に改行した文字列が入力されたセルが縦に複数並んでいる場合は「フラッシュフィル」でも分離できます。
先頭のセルだけ手入力で分離して、
![]()
以下は「フラッシュフィル」により自動的に分離した文字列データを一斉に挿入することが可能です。
![]()
◆◇◆
逆に「B1」「C1」「D1」に「やまだたろう」「山田太郎」「東京都」という文字列があって、
![]()
「A1」に改行のある 2行の文字列にまとめる式は、これも「改行コード」の「CHAR(10)」を使って
=B1&CHAR(10)&C1&CHAR(10)&D1
となります。
ただ、このままだとセルの高さが 1行分しかないので、自動で 3行表示にはならないため、
![]()
「A1」を選択して「折り返して全体を表示する」を実行して、幅を調整することで「A1」を 3行表示できます。
![]()
あるいは「A1」の文字列を縦方向に分離する計算式は以下の通り。
=TEXTSPLIT(A1,,CHAR(10))
![]()
書式は
TEXTSPLIT(text,col_delimiter,[row_delimiter])
となり、「row_delimiter」は文字列を分割して、テキストを下の行に書き込むポイントを示す文字であり、省略可能です。
第2引数の「col_delimiter」を空欄にして、第3引数「row_delimiter」に「改行コード」の「CHAR(10)」を指定しているわけです。
理解を深めるための「パソコン用語解説」
記事の情報は公開時あるいは更新時のもので、最新情報はリンク先など情報元の公式ページでご確認ください。
