KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

区切り文字でテキスト文字列を複数行に分割する - 3 の簡単なテクニック

著者Xiaoyang変更日

通常、「区切り文字による列の分割」機能を使えば、コンマやピリオド、セミコロン、スラッシュなどの特定の区切り文字に基づいて、セルの内容を複数列に簡単に分割できます。 しかし場合によっては、こうした区切り文字で区切られたセルの内容を**複数行に分割**し、他の列のデータを以下スクリーンショットのように**繰り返す必要**が出てきます。 Excel でこのような作業を効率よく処理する方法はあるでしょうか? 本チュートリアルでは、Excel でこの作業をスピーディーかつ正確に完了させるための、いくつかの効果的な方法をご紹介します。

テキストを複数の行に分割

動画:区切り文字でテキスト文字列を複数行に分割する

 


方法 A:VBA コードで区切り文字付きテキストを複数行に分割する

このセクションでは、特定の区切り文字で区切られたセルの内容を分割するのに役立つ2 つの VBA コードをご紹介します。

コンマ、スペース、セミコロンなどで区切られたテキストを分割する

コンマ、スペース、セミコロン、スラッシュなど、一般的な区切り文字で区切られたテキスト文字列を分割するには、以下のコードが役立ちます。次の手順に従ってください。

注:このコードは元に戻す(Undo)操作に対応していませんので、実行前に必ずデータをバックアップすることをおすすめします。

ステップ1:VBA モジュールエディターを開き、コードをコピーする

1。使用したいシートをアクティブにして、「Alt」+「F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2。開いたウィンドウで、「挿入」>「標準モジュール」をクリックし、新しい空白モジュールを作成します。

3。次に、以下のコードを空のモジュールにコピー&ペーストしてください。

VBA コード:特定の区切り文字(コンマ、ピリオド、スペースなど)でテキストを分割する

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

ステップ2:コードを実行して結果を取得する

1。コードを貼り付けたら、「F5」キーを押して実行してください。すると、プロンプトボックスが表示され、分割したい区切り文字付きテキストを含むセルを選択するよう促されます(スクリーンショット参照)。

区切り文字を含むセルを選択するVBAコード

2。次に、「OK」をクリックすると、データを分割する際に使用する区切り文字を入力するプロンプトボックスが表示されます。ここではコンマとスペース(,)を入力しています(スクリーンショット参照)。

データを分割するための区切り文字を入力するVBAコード

3。最後に、「OK」ボタンをクリックします。これにより、選択したテキスト文字列がコンマに基づいて行に分割され、他の関連列のデータが以下のスクリーンショットのように繰り返されていることを確認できます。

選択されたテキスト文字列が行に分割されました

改行で区切られたテキストを分割する

セルの内容が改行で区切られている場合は、別の VBA コードを使って複数行に簡単に分割できます。

注:このコードは元に戻す(Undo)操作に対応していませんので、実行前にデータのバックアップを強くおすすめします。

ステップ1:VBA モジュールエディターを開き、コードをコピーする

1。「Alt」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2。開いたウィンドウで、「挿入」>「標準モジュール」をクリックし、新しい空白モジュールを作成します。

3。次に、以下のコードを空のモジュールにコピー&ペーストしてください。

VBA コード:改行でテキストを分割する

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

ステップ2:コードを実行して結果を取得する

1。コードを貼り付けたら、「F5」キーを押して実行してください。表示されたボックスで、分割したいセルを選択します(スクリーンショット参照)。

分割する範囲を選択するVBAコード

2。次に、「OK」ボタンをクリックすると、選択したセルのデータが以下のスクリーンショットのように行に分割されます。

選択されたセル内のデータが行に分割されました

方法 B:Kutools for Excel で10 秒で区切り文字付きテキストを複数行に分割する

「Kutools for Excel」がすでにインストール済みであれば、「複数行に分割する」機能を使えば、任意の区切り文字を指定してテキスト文字列を簡単に複数行に分割できます。以下の手順に従って操作してください。

Kutools for Excelには複雑なタスクを合理化する高度な機能が300 以上搭載されており、創造性と効率性を高めます。AI 機能を統合することで、Kutools は正確にタスクを自動化し、データ管理を簡単に行えるようにします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

ステップ1:複数行に分割する機能を選択する

「Kutools」>「結合と分割」>「複数行に分割する」をクリックしてください(スクリーンショット参照)。

Tabs > 結合と分割 > データを行に分割 をクリック

ステップ2:分割対象のデータセルと区切り文字を指定する

表示されたダイアログボックスで、以下のオプションを設定してください。

  • 1)。「範囲(単一列)」テキストボックスから、分割したいセルのリストを選択します。
  • 2).次に、データを区切る区切り文字を選択します。「その他」を選択し、テキストボックスにコンマとスペース(,)を入力してください。
  • 3).最後に、「OK」ボタンをクリックしてください。
ダイアログボックスでデータセルと分割用の区切り文字を指定

これで、区切り文字付きテキストを含む選択セルが、指定した区切り文字に基づいて複数行に変換されました(スクリーンショット参照)。

選択されたセルが複数の行に変換されました

ヒント:元のデータに戻したい場合は、Ctrl + Z を押して「元に戻す(Undo)」操作を行ってください。

使いやすいですか?この機能にご興味をお持ちなら、こちらをクリックして、30 日間の無料トライアルを今すぐダウンロードしてください。


方法 C:Power Query で区切り文字付きテキストを複数行に分割する

Office 365 または Excel 2016 以降をご利用の場合、「Power Query」は区切り文字付きテキストを複数の行や列に分割するのに役立つ強力なツールです。特に、元のデータが変更された際に分割結果を自動で更新したい場合に便利です。次の手順に従って操作を完了してください。

ステップ1:Power Query にデータテーブルを読み込む

1。使用したいデータ範囲を選択し、「データ」>「テーブルから」をクリックしてください(スクリーンショット参照)。

ヒント:Excel 2019 および Office 365 では、「データ」タブの「テーブル/範囲から」をクリックしてください。

データ > テーブルから をクリック

2。「テーブルの作成」ダイアログボックスが表示されたら、「OK」ボタンをクリックして、テーブルを作成してください(スクリーンショット参照)。

OKボタンをクリックしてテーブルを作成

3。これで、データが表示された「Power Query エディター」ウィンドウが開きます(スクリーンショット参照)。

Power Queryエディター ウィンドウにデータが表示されます

ステップ2:Power Query で変換操作を行う

1。分割したい列を選択し、「ホーム」>「列の分割」>「区切り文字で」をクリックしてください(スクリーンショット参照)。

ホーム > 列の分割 > 区切り文字で をクリック

2. 「区切り文字で列を分割」ダイアログボックスで:

コンマ、スペース、セミコロンなどでテキスト文字列を分割するには、次のように操作してください。

  • 1).「区切り文字の選択または入力」ドロップダウンリストから、データの区切り文字をお選びください。
  • 2).「分割位置」セクションで、「区切り文字が出現するたびに分割」を選択します。
  • 3).次に、「詳細オプション」をクリックしてセクションを展開し、「分割先」で「行」を選択してください。
  • 4).最後に、「OK」をクリックしてこのダイアログボックスを閉じてください。
ダイアログボックスで、コンマ、スペース、セミコロンなどでテキストを分割するオプションを指定

改行を使ってテキスト文字列を複数行に分割するには、次のように操作します。

  • 1).「区切り文字の選択または入力」ドロップダウンリストから「カスタム」を選びましょう。
  • 2).「特殊文字の挿入」ドロップダウンから「改行記号」をクリックすると、「カスタム」下のテキストボックスに自動的に「#(lf)」が挿入されます。
  • 3).「分割位置」セクションで、「区切り文字の各出現位置」を選択してください。
  • 4)。次に、「詳細オプション」をクリックしてセクションを展開し、「Split into」の下にある「Rows」を選択してください。
  • 5)。最後に、「OK」をクリックしてこのダイアログボックスを閉じてください。
ダイアログボックスで、改行でテキストを分割するオプションを指定

3。これで、データの選択が以下のスクリーンショットのように複数行に分割されました。

選択されたデータが複数の行に分割されました

ステップ3:Power Query の結果をExcel テーブルに出力する

1。次に、ワークシートにデータを出力する必要があります。「ホーム」>「閉じて読み込む」>「閉じて読み込む/閉じて読み込み先」をクリックしてください(ここでは「閉じて読み込む」を選択します。スクリーンショットをご参照ください)。

ホーム > 閉じて読み込む をクリックしてデータを読み込み

ヒント:「閉じて読み込む」をクリックすると、データは新しいワークシートに出力されます。「閉じて読み込み先」オプションを選択すれば、データを必要な他のシートに出力できます。

2。最終的にデータは新しいワークシートに読み込まれます(スクリーンショットをご参照ください)。

データが新しいワークシートに読み込まれました

ヒント:元のテーブルのデータを頻繁に更新する必要があってもご安心ください。結果テーブルを右クリックして「更新」を選択すれば、最新の結果が自動的に反映されます。


関連記事:

  • セルの値を複数の列に分割
  • Excel では、セル内の値をコンマやスペース、ピリオド、改行などの特定の区切り文字で複数の列に分割したい場合、通常は「テキストを列に分割」機能を使い、ステップごとに処理できます。本記事では、セルの値をもっと簡単・スピーディーに複数の列または行に分割できる便利なテクニックをいくつかご紹介します。
  • セルを複数の行または列に分割
  • セミコロンなどの特定の文字で区切られた複数の内容が1 つのセルに含まれている場合、Excel でこれを素早く複数の行または列に分割する方法はありますか?
  • 大文字小文字でテキスト文字列を分割
  • Excel では通常、「テキストを列に分割」機能を使い、固定幅や区切り文字に基づいてテキストを分割しますが、大文字と小文字でテキストを分割したことはありますか? たとえば、あるデータリストを大文字・小文字に基づいて2 つの列に分けたい場合——一方の列には小文字を含む文字列を、もう一方の列には大文字を含む文字列を配置するといったケースです(下記スクリーンショット参照)。 この操作は「テキストを列に分割」機能ではサポートされていませんが、Excel で大文字・小文字に基づいてテキストを素早く分割するテクニックをご紹介します。
  • 数値を個別の桁に分割
  • 下記スクリーンショットのように数値を個別の桁に分割したい場合は、どのようにすればよいでしょうか?本記事では、そのための2 つの方法をご紹介します。