メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelでセルの内容を複数行に分割する方法(シナリオ+ツール比較)

Author Sun Last modified

このガイドでは、Excelでセルの内容を複数行に分割する方法を説明します。ターゲットとなるセルのみを分割するケース(他の列を無視)と、行内の他のデータを保持しながらセルを分割するケースという、2つの一般的なシナリオに対応します。両方の状況を効果的に処理するためのいくつかの方法が提供されており、組み込みのExcel関数からPower Query、VBA、サードパーティ製プラグインなどの高度なツールまで幅広くカバーしています。

2つの一般的な分割シナリオ

データの分割には、データセット内の他の列を保持する必要があるかどうかによって、いくつかの形式があります。ここでは、主な2つのアプローチを定義し、ニーズに合った最適な方法を選択できるようにします。

シナリオ1:ターゲットセルのみを分割(他の列を無視)

場合によっては、単一セル内の値だけが重要であり、同じ行の関連データを複製せずに読みやすくするために値を複数行に分割したいと考えるかもしれません。

A,B,C

結果:

A
B
C

ユースケース:他の列が関係ない軽いデータクリーニングや表示作業。

シナリオ2:セルを分割しつつ他の列データを保持

他にも、分割された各値を元の行のデータとペアにする必要があるケースがあります。基本的には、行を複数のエントリに展開することになります。

USA | A,B,C

結果:

USA | A
USA | B
USA | C

ユースケース:列間の関係を維持することが不可欠なデータ正規化。


いつセルを複数行に分割する必要がありますか?

セルを分割するためのステップバイステップの方法

一般的な問題


いつセルを複数行に分割する必要がありますか?

方法に入る前に、なぜセルを分割する必要があるのか理解することが重要です。この操作は、データクリーニング、再構築、または可視化ワークフローの一部としてよく行われます。

典型的な使用例には以下が含まれます:

  • 単一列内に複数の値がある場合:タグ、ID、住所などが一緒に保存されている場合。
  • ピボットテーブルやグラフ:正規化されたデータ形式でより良く動作します。
  • インポートデータのクリーンアップ:特にCRMからのエクスポートやアンケートツールの場合。
  • データ標準化:テーブルをデータベース対応および分析準備に整える。

セルを分割するためのステップバイステップの方法

これで自分のシナリオが分かったので、ビルトイン機能から高度な自動化まで、さまざまな方法を使って分割を行う方法を探ってみましょう。技術的な комфортと使用頻度に合った方法を選んでください。


方法1:Excelネイティブ機能(区切り位置+転置貼り付けオプション)

これは、Excelのビルトイン機能のみを使用したワンオフケース向けの簡単で手動の方法です。

適しているシナリオ:シナリオ1 ターゲットセルのみを分割(他の列を無視)

ステップ:

ステップ1. セルを選択します。

ステップ2. データ > 区切り位置 を選択します。

doc-method-1-select-text-to-column

ステップ3. 「区切り位置ウィザード」で、

  1. 「区切り文字」を選択し、「次へ」をクリックします。

    doc-method-1-text-to-column-select-delimited

  2. カンマを選択し、「次へ」をクリックします。

    doc-method-1-text-to-column-select-comma

  3. 出力先のセルを選択し、「完了」をクリックします。

    doc-method-1-text-to-column-select-destination-cell

これでセルがカンマで複数の列に分割されました。

doc-method-1-text-to-column

ステップ4. 分割されたセルを選択し、Ctrl + Cキーを押してコピーします。目的のセルを右クリックし、「貼り付けオプション」で転置アイコンを選択します。

doc-method-1-transpose-paste

コンテンツが行に転置されました。

doc-method-1-transpose-paste-result

メリット デメリット
  • インストール不要。
  • わかりやすい。
  • 自動更新されない。
  • 手動でスケーラブルではない。

方法2:TRANSPOSE(TEXTSPLIT) 関数 (Microsoft 365)

この方法は、TEXTSPLIT関数(区切り文字に基づいてテキストを分割)とTRANSPOSEを組み合わせて、分割された値を即座に行に垂直に表示します。

適しているシナリオ:シナリオ1 ターゲットセルのみを分割(他の列を無視)

ステップ:

ステップ1. 垂直リストを開始したい空白のセルに関数を入力します。

関数例:A1セルが分割されるターゲットセルです。

この場合、関数は次の通りです。

=TRANSPOSE(TEXTSPLIT(A1,","))</div)

ヒント:データの区切り文字に応じて「,」を「;」や「|」に変更できます。

ステップ2. Enterキーを押します。

doc-method-2-use-transpose-split-function

メリット デメリット
  • 完全に動的で、変更に伴って自動更新されます。
  • プラグインや手動操作は不要。
  • TEXTSPLITおよびダイナミック配列をサポートするExcelバージョンでのみ動作します(Excel 365)。

方法3:Power Query – 分割して行を展開(Microsoft 2016以降のバージョン)

Power Queryは、構造化された繰り返し可能な操作に理想的です。強力で、更新可能であり、大量のデータ変換に最適です。

適しているシナリオ:シナリオ1(ターゲットセルのみを分割)、シナリオ2(他の列データを保持しながらセルを分割)

ステップ:シナリオ1(ターゲットセルのみを分割)を例として

ステップ1. 範囲を選択し、データ > 取得と変換 > 表/範囲から を選択します。

an 

ステップ2. 「表の作成」でOKをクリックします。(選択した範囲にヘッダーがある場合は、「表にヘッダーがあります」をチェックしてください。)

doc-method-3-convert-to-table

ステップ3. Power Queryエディターで、「区切り文字による列の分割」を使用します。

doc-method-3-select-delimiter

ステップ4. 区切り文字を選択または入力し、「詳細」をクリックしてオプションを展開し、「行に分割」を選択してからOKをクリックします。

doc-method-3-select-delimiter-and-rows

ステップ5. 閉じて読み込む > 閉じて読み込む または 閉じて読み込む場所 を選択します。

doc-method-3-load

  • 閉じて読み込む

    機能:クエリ結果をデフォルトの場所に直接読み込みます。

    doc-method-3-close-load

  • 閉じて読み込む場所...

    機能:データの保存場所や方法をカスタマイズするロードオプションを提供します。定期的なレポートや大規模データセットに最適。

同じ手順がシナリオ2(他の列データを保持しながらセルを分割)にも適用されます - 結果を見てみましょう。

ターゲット範囲のセル:

doc-method-3-scenario-2-target-cells

結果:

result

注:Power Queryエディターウィンドウで、行に分割したいターゲット列のみを選択し、「区切り文字で分割」をクリックします。

メリット デメリット
  • 完全に自動化されています。
  • データとともにスケールします。
  • 少し学習が必要です。
  • 新しいデータに対しては更新が必要です。

ヒント:空白や特殊文字を修正するためにTrimとCleanのステップを追加します。


方法4:Kutoolsプラグイン – クリックで分割

もし頻繁にセルを分割する必要があり、GUIベースの解決策を好む場合、Kutoolsは優れたツールです。複雑な操作を数回のクリックで簡素化します。

適しているシナリオ:シナリオ1(ターゲットセルのみを分割)、シナリオ2(他の列データを保持しながらセルを分割)

ステップ:シナリオ1(ターゲットセルのみを分割)

ステップ1. ターゲットセルを選択します。

ステップ2. Kutools > 結合と分割 > セルの分割 へ移動します。

ステップ3. 「行に分割」を選択し、区切り文字を定義します。OKをクリックします。/p>

doc-method-4-kutools-select-rows-delimiter

ステップ4. 出力先のセルを選択します。OKをクリックします。

doc-method-4-kutools-select-destination

doc-method-4-kutools-result

今すぐダウンロード

ステップ:シナリオ2(他の列データを保持しながらセルを分割)

ステップ1. 分割したい列を選択します。

ステップ2. Kutools > 結合と分割 > データを行に分割 へ移動します。

doc-method-4-kutools-split-data-to-rows

ステップ3. 区切り文字を定義します。OKをクリックします。

doc-method-4-kutools-split-data-to-rows-select-delimiter

doc-method-4-kutools-split-data-to-rows-result

同じ手順がシナリオ2(他の列データを保持しながらセルを分割)にも適用されます - 結果を見てみましょう。

ターゲット範囲のセル:

doc-method-3-scenario-2-target-cells

結果:

result

メリット デメリット
  • 非常に使いやすい。
  • 少数のクリックで大量のデータを処理できる。
  • プラグインが必要(すべての機能が無料ではない)。
今すぐダウンロード

注:30日間の試用版はテストのためにすべての機能を利用できます。


方法5:VBAスクリプト – 完全なカスタム制御

プログラミング知識を持つユーザーにとって、VBAは究極の柔軟性を提供します。正確なデータレイアウトやビジネスルールに合わせてスクリプトを調整できます。

適しているシナリオ:シナリオ1(ターゲットセルのみを分割)、シナリオ2(他の列データを保持しながらセルを分割)

ステップ:

ステップ1. Alt + F11を押してVBAエディターを開きます。

ステップ2. 挿入 > モジュール をクリックします。

ステップ3. 下記のVBAをコピーして貼り付けます。

シナリオ1 ターゲットセルのみを分割

'Update by Extendoffice
Sub SplitCellToRows_Simple()
    Dim InputCell As Range
    Dim Values As Variant
    Dim i As Long

  
    Set InputCell = Range("A1") ' change A1 to your target cell

    Values = Split(InputCell.Value, ",") 
    For i = 0 To UBound(Values)
        InputCell.Offset(i, 1).Value = Trim(Values(i))
    Next i
End Sub

doc-method-5-split-to-rows-simple

シナリオ2 他の列データを保持しながらセルを分割

'Update by Extendoffice
Sub SplitRowsWithOtherColumns()
    Dim ws As Worksheet
    Dim LastRow As Long, i As Long
    Dim arr As Variant, j As Long
    Dim SplitVals As Variant
    Dim CurrentRow As Long

    Set ws = ActiveSheet
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    For i = LastRow To 2 Step -1
        If InStr(ws.Cells(i, 2).Value, ",") > 0 Then
            SplitVals = Split(ws.Cells(i, 2).Value, ",")

            For j = UBound(SplitVals) To 1 Step -1
                ws.Rows(i + 1).Insert Shift:=xlDown
                ws.Cells(i + 1, 1).Value = ws.Cells(i, 1).Value
                ws.Cells(i + 1, 2).Value = Trim(SplitVals(j))
            Next j

            ws.Cells(i, 2).Value = Trim(SplitVals(0))
        End If
    Next i
End Sub

doc-method-5-split-to-rows-complex

注:このVBAスクリプトは、データがA列からB列にあり、分割したい値がB列にある場合に特化して設定されています。

デメリット
  • 将来の使用のためにスクリプトを保存するには、マクロ有効ファイル(.xlsm)として保存する必要があります。

💡ヒント:

  • マクロを実行する前に必ずデータをバックアップしてください。
  • スクリプト内の「,」を実際の区切り文字(例えば、セミコロンの場合は「;」、パイプ文字の場合は「|」など)に置き換えて、データの形式に一致させます。

一般的な問題

  • 空白行または列:通常、末尾の区切り文字や隠れたスペースが原因です。
  • 結合セルエラー:開始前にセルの結合を解除します。
  • Power Queryが更新されない:ソースデータを変更した後は必ず「更新」をクリックしてください。
  • 間違った区切り文字:セミコロンとカンマの間違いが結果全体に影響を与えることがあります。

関連記事:

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得