Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

【Excel】区切り位置機能で改行を区切り記号として使う方法を解説

Excelでは、1つのセルの中に名前や住所など複数行のテキストを入力することがあります。このようなセル内の改行は、実は「区切り位置」機能の区切り記号として活用できます。区切り記号に改行を指定すれば、1つのセルに入力された複数行のデータを、それぞれ別の列へ自動的に分割できるのです。

本記事では、Excelの区切り位置機能で改行を区切り記号として使う方法を、具体的な手順とともにわかりやすく解説します。

改行を区切り記号として使う2つの方法

区切り位置機能で改行を区切り記号として使用するには、主に以下の2つの方法があります。

  • 方法1: データタブの「区切り位置」ウィザードを使用する
  • 方法2: VBAマクロを使用する

どちらの方法も難しい操作はなく、初心者の方でも簡単に実行できます。それでは、順番に見ていきましょう。

方法1:データタブの「区切り位置」ウィザードを使う

まずは、リボンのデータタブから「区切り位置」機能を使う基本的な方法です。ここでは、氏名・番地・都市名が改行で区切られた住所データを例に、3つの列へ分割する手順を紹介します。

ステップ1:セル内に改行付きのテキストを入力する

  • まず、セルB5を選択します。
  • 名前の「Elijah Williams」と入力します。
  • Alt + Enterキーを押すと、同じセル内で改行され、新しい行が始まります。
  • 続けて住所の「187 Clousson Road」と入力します。
  • 再度Alt + Enterを押して改行し、都市名を入力します。

このように、Alt + Enterを押すたびにセル内で改行されます。すべての行を入力し終えると、1つのセルに複数行のテキストが格納された状態になります。

  • 残りのセル(B6~B8)も同じ手順で入力します。

ステップ2:分割先の列を用意する

  • 分割後のテキストを配置するための空き列(例:C列~E列)を用意しておきます。

ステップ3:区切り位置ウィザードを実行する

  • 分割したいセル範囲(B5~B8)を選択します。
  • リボンのデータタブをクリックします。
  • データツールグループにある区切り位置を選択します。

すると、「区切り位置指定ウィザード」のダイアログボックスが表示されます。

  • 区切り記号によって区切られたデータ」を選択します。
  • 次へをクリックします。
  • 区切り記号の指定画面で、「その他」にチェックを入れます。
  • 「その他」の横にある空欄ボックスをクリックし、Ctrl + Jを押します。
  • ボックス内に小さな点(改行コード)が表示されれば成功です。
  • 次へをクリックします。
  • 最終画面で、表示先(出力先)を変更します。
  • 完了をクリックします。

これで、改行ごとにデータが別々の列へ分割され、氏名・番地・都市名がきれいに整理された表が完成します。

方法2:VBAマクロで改行を区切り記号として使う

次に、VBAコードを使って同じ処理を自動化する方法です。繰り返し作業を行う場合や、大量のデータを処理する場合に便利です。

VBAを使用する前に、リボンに開発タブを表示しておく必要があります。「開発タブの表示方法」を参考に設定してください。

ステップ1:VBEでモジュールを作成する

  • リボンの開発タブをクリックします。
  • コードグループからVisual Basicを選択します。

Visual Basicエディター(VBE)が開きます。

  • 上部の挿入タブをクリックし、標準モジュールを選択します。

モジュールのコードウィンドウが表示されるので、以下のコードを入力します。

Sub SplitLines()
Selection.TextToColumns Destination:=Range("C5:F8"), DataType:=xlDelimited, Other:=True, OtherChar:=vbLf
End Sub

このコードでは、選択したセル範囲に対してTextToColumnsメソッドを実行し、区切り文字としてvbLf(ラインフィード=改行コード)を指定しています。

ステップ2:マクロを実行する

  • Visual Basicウィンドウを閉じます。
  • 分割したいセル範囲(B5~B8)を選択します。
  • リボンの開発タブをクリックします。
  • コードグループからマクロを選択します。

マクロダイアログボックスが表示されます。

  • マクロ名の一覧からSplitLinesを選択します。
  • 実行をクリックします。

マクロが実行されると、改行を基準にデータが各列へ自動的に分割されます。

関数を使って改行でセルを分割する方法

区切り位置機能を使わずに、LEFTMIDRIGHTなどの関数を組み合わせて、改行を基準にセルを分割することも可能です。元データを変更せずに結果だけを別の場所に表示したい場合に有効な方法です。

ここでも、改行を含むテキストが入力されたデータセットを例に説明します。

1行目(氏名)を取り出す:LEFT関数

  • セルC5を選択し、以下の数式を入力します。

=LEFT(B5, SEARCH(CHAR(10),B5,1)-1)

🔎 数式の解説

SEARCH(CHAR(10),B5,1)は、セルB5内で最初の改行文字(CHAR(10))が何文字目にあるかを返します。LEFT関数はその位置の1つ前までの文字列、つまり改行より前のテキスト(氏名部分)を抽出します。「-1」は改行位置自体を含めないために必要です。

  • Enterキーを押して数式を確定します。
  • フィルハンドルを下方向にドラッグして、他の行にも数式をコピーします。

2行目(番地)を取り出す:MID関数

  • セルD5を選択し、以下の数式を入力します。

=MID(B5, SEARCH(CHAR(10),B5) + 1, SEARCH(CHAR(10),B5,SEARCH(CHAR(10),B5)+1) - SEARCH(CHAR(10),B5) - 1)

🔎 数式の解説

MID関数は、テキストの中間部分を抽出する関数です。引数には「対象のテキスト」「開始位置」「抽出する文字数」を指定します。

  • SEARCH(CHAR(10),B5) + 1: 最初の改行の次の位置を開始位置として返します。
  • SEARCH(CHAR(10),B5,SEARCH(CHAR(10),B5)+1) – SEARCH(CHAR(10),B5) – 1: 最初の改行から2つ目の改行までの文字数、つまり中間テキスト(番地部分)の長さを計算します。

これらの値をもとに、MID関数が中間のテキストを返します。

  • Enterキーを押して数式を確定し、フィルハンドルを下にドラッグします。

3行目(都市名)を取り出す:RIGHT関数

  • セルE5を選択し、以下の数式を入力します。

=RIGHT(B5,LEN(B5) - SEARCH(CHAR(10), B5, SEARCH(CHAR(10), B5) + 1))

🔎 数式の解説

RIGHT関数は、テキストの右端から指定した文字数分の文字列を返します。

  • LEN(B5): セルB5のテキスト全体の文字数を返します。
  • SEARCH(CHAR(10), B5, SEARCH(CHAR(10), B5) + 1): 最後の改行位置までの文字数を返します。

この2つの差が「最後の改行以降の文字数」となり、RIGHT関数がその文字数分だけ右側からテキスト(都市名部分)を抽出します。

  • Enterキーを押して数式を確定し、フィルハンドルを下にドラッグすれば完成です。

注意点

  • セル内で改行を作る際は、必ずAlt + Enterを使用してください。単にスペースを空けただけでは改行とは認識されず、区切り位置機能で正しく分割できません。
  • 区切り位置ウィザードの「その他」欄には、必ずCtrl + Jで改行コードを入力してください。直接「/」などの記号を打ち込んでも意図した結果になりません。

まとめ

本記事では、Excelの区切り位置機能で改行を区切り記号として使用する方法を、ウィザード操作・VBAマクロ・関数の3つのアプローチから解説しました。手順はやや多いですが、一つひとつ丁寧に進めれば誰でも同じ結果を得られます。途中でつまずいた場合は、該当の手順を何度か読み返してみてください。

さらにExcelの便利なテクニックを学びたい方は、ぜひ他の関連記事もチェックしてみてください。ご不明な点があれば、コメント欄からお気軽にお問い合わせください。

関連記事

  • Excelで改行(CR/LF)を区切り記号として区切り位置機能を使う方法
  • 上書きせずにテキストを列へ変換する方法
  • 日付データを区切り位置機能で分割する簡単な手順
  1. Excelの数式でテキストを自動的に列に分割する3つの方法

    Excelでデータを管理していると、1つのセルに入力されたテキストを複数の列に分割して整理したい場面がよくあります。「区切り位置」ウィザードやVBAマクロを使う方法もありますが、数式を使えば元データを変更せずに自動的に分割でき、データを更新しても結果が自動で反映されるという大きなメリットがあります。この記事では、Excelの数式でテキストを自動的に列に分割するための3つのシンプルな方法を、具体的な手順とともにわかりやすく解説します。 数式でテキストを列に自動分割する3つの方法 ここからは、Excelの数式を使ってテキストを列に分割する3つの方法を順番に紹介します。目的やデータの形式に応じて、最

  2. Excelで列データを区切り文字付きテキストに変換する5つの方法

    Excelのシートで、縦方向(列)に入力されたリストを横並びのテキストとして整理したい場面はよくあります。その際、各項目をつなぐために区切り文字が必要になります。最も一般的なのはカンマ(,)ですが、セミコロンなどを使う場合もあります。残念ながら、Excelには列を区切り文字付きテキストへ一発で変換する専用機能は用意されていません。そこで本記事では、5つの簡単な方法で列データを区切り文字付きテキストに変換する手順を詳しく解説します。 Excelで列を区切り文字付きテキストに変換する5つの方法 この記事では、以下の5つのアプローチを順番に紹介します。 TEXTJOIN関数を使う方法 CONCAT