「Excelのセルの中にある改行を、カンマやスペースに置き換えたい」「大量のセル内改行をまとめて消したい…」
こんな悩みはありませんか?
よくある使用場面
- CSVファイル用にデータを1行にまとめたい
- 住所データの改行をスペースに変更したい
- 複数行のコメントを1行の文章にしたい
- データベース用に改行を特定の区切り文字に変更したい
- 他のアプリケーションへのデータ移行準備
ExcelではAlt + Enter
で入力した**セル内改行(改行コード)**がよく使われますが、後からデータを加工するときに「改行を別の文字に置換したい」場面はよくあります。
この記事では、以下の内容を初心者の方でも分かるようにやさしく解説します:
- Excelのセル内改行を一括置換する基本方法
- 様々な置換パターンと応用テクニック
- SUBSTITUTE関数を使った高度な置換方法
- よくあるトラブルと解決法
Excelの改行コードについて理解しよう

セル内改行とは
Excelでは以下のような改行が存在します:
セル内改行(ラインフィード)
Alt + Enter
で入力される改行- セルの中で複数行に分かれて表示される
- 文字コード:LF(Line Feed)= CHARコード10
通常の改行との違い
- Wordの改行:CRLF(CR+LF)
- Webの改行:LFまたはCRLF
- Excelのセル内改行:LF
改行の確認方法
数式バーでの確認
- 改行を含むセルを選択
- 数式バーを見ると、改行部分で文字が折り返されて表示される
- F2キーを押すと編集モードで改行位置が確認できる
LEN関数での確認
=LEN(A1)
改行も1文字としてカウントされます。
基本的な置換方法|検索と置換機能
手順1:置換ダイアログを開く
操作方法
- 置換したいセルまたはセル範囲を選択
Ctrl + H
を押して「検索と置換」ダイアログを開く- または「ホーム」タブ →「検索と選択」→「置換」をクリック
手順2:改行コードを検索条件に設定
重要なポイント
- 「検索する文字列」の入力欄にカーソルを置く
Ctrl + J
を押す- 画面上は何も表示されないが、これが改行コード(LF)
注意点
Ctrl + J
を押しても文字は見えませんが正常です- この状態で次のステップに進んでください
- 間違って他の文字を入力しないよう注意
手順3:置換後の文字列を指定
よくある置換パターン
カンマに置換
置換後の文字列:,
例
変更前:田中太郎
東京都渋谷区
03-1234-5678
変更後:田中太郎,東京都渋谷区,03-1234-5678
スペースに置換
置換後の文字列: (半角スペース)
改行を削除(詰めて1行にする)
置換後の文字列:(空欄)
特定の区切り文字に置換
置換後の文字列:| (パイプ記号)
置換後の文字列:; (セミコロン)
置換後の文字列:/ (スラッシュ)
手順4:置換を実行
実行オプション
- 置換:1つずつ確認しながら置換
- すべて置換:該当するすべてを一括置換
範囲の指定
- 選択したセル範囲のみ:事前にセル範囲を選択
- シート全体:何も選択せずに実行
- ブック全体:「オプション」→「検索対象」で「ブック」を選択
SUBSTITUTE関数を使った高度な置換
基本的な書式
=SUBSTITUTE(対象セル, CHAR(10), 置換文字)
CHAR(10)の説明
- CHARコード10 = ラインフィード(LF)
- Excelのセル内改行に対応
実用的な数式例
改行をカンマに置換
=SUBSTITUTE(A1, CHAR(10), ",")
改行をスペースに置換
=SUBSTITUTE(A1, CHAR(10), " ")
改行を削除
=SUBSTITUTE(A1, CHAR(10), "")
改行を改行+スペースに置換(インデント追加)
=SUBSTITUTE(A1, CHAR(10), CHAR(10) & " ")
複数の文字を同時に置換
改行とタブを同時にスペースに置換
=SUBSTITUTE(SUBSTITUTE(A1, CHAR(10), " "), CHAR(9), " ")
改行を置換してさらに連続スペースを1つにまとめる
=TRIM(SUBSTITUTE(A1, CHAR(10), " "))
条件付きの置換
改行が存在する場合のみ置換
=IF(FIND(CHAR(10), A1, 1) > 0, SUBSTITUTE(A1, CHAR(10), ","), A1)
エラー処理を含む置換
=IFERROR(SUBSTITUTE(A1, CHAR(10), ","), A1)
高度なテクニック
改行の数をカウント
=LEN(A1) - LEN(SUBSTITUTE(A1, CHAR(10), ""))
この数式で、セル内の改行が何個あるかを確認できます。
特定の位置の改行のみ置換
最初の改行のみをカンマに置換
=SUBSTITUTE(A1, CHAR(10), ",", 1)
2番目の改行のみを置換
=SUBSTITUTE(A1, CHAR(10), ",", 2)
改行で文字列を分割
1行目を取得
=LEFT(A1, FIND(CHAR(10), A1 & CHAR(10)) - 1)
2行目を取得
=MID(A1, FIND(CHAR(10), A1) + 1, FIND(CHAR(10), A1 & CHAR(10), FIND(CHAR(10), A1) + 1) - FIND(CHAR(10), A1) - 1)
配列数式での一括処理
Excel 365やExcel 2021では、配列数式で複数セルを一度に処理できます:
=SUBSTITUTE(A1:A100, CHAR(10), ",")
実用的な応用例

CSVデータの準備
目的:改行を含むデータをCSV形式に変換
元データ例
田中太郎
〒123-4567
東京都渋谷区1-2-3
変換後
田中太郎,〒123-4567,東京都渋谷区1-2-3
使用する数式
=SUBSTITUTE(A1, CHAR(10), ",")
アンケート結果の整理
目的:複数行回答を1行にまとめる
元データ例
商品について
・品質が良い
・価格が適正
・デザインが気に入った
変換後
商品について ・品質が良い ・価格が適正 ・デザインが気に入った
使用する数式
=SUBSTITUTE(A1, CHAR(10), " ")
データベース用の前処理
目的:改行をセミコロンに変更
使用する数式
=SUBSTITUTE(A1, CHAR(10), "; ")
HTMLタグでの置換
目的:改行を<br>
タグに変換
使用する数式
=SUBSTITUTE(A1, CHAR(10), "<br>")
よくある問題と解決法
Ctrl + Jが効かない場合
原因と対処法
原因1:NumLockの状態
- NumLockがオフになっている場合に発生
- NumLockをオンにして再試行
原因2:他のアプリケーションのショートカットと競合
- 他のソフトウェアが同じキーを使用している
- 一時的に他のアプリを終了して試行
原因3:Excelのバージョンによる違い
- 古いバージョンで動作が異なる場合がある
- メニューから「検索と置換」を開いて手動で改行文字を入力
代替方法
方法1:SUBSTITUTE関数を使用
=SUBSTITUTE(A1, CHAR(10), "置換文字")
方法2:VBAマクロを使用
Sub ReplaceLineBreaks()
Dim cell As Range
For Each cell In Selection
cell.Value = Replace(cell.Value, Chr(10), ",")
Next cell
End Sub
期待通りに置換されない場合
改行コードの種類を確認
Windows形式(CRLF)
=SUBSTITUTE(SUBSTITUTE(A1, CHAR(13), ""), CHAR(10), ",")
Mac形式(CR)
=SUBSTITUTE(A1, CHAR(13), ",")
すべての改行形式に対応
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, CHAR(13) & CHAR(10), ","), CHAR(10), ","), CHAR(13), ",")
置換後の表示が崩れる場合
セルの高さ調整
自動調整
- 対象の行を選択
- 行番号の境界線をダブルクリック
手動調整
- 「ホーム」→「書式」→「行の高さ」
- 適切な数値を入力
テキスト折り返し設定の確認
- セルを選択
- 「ホーム」→「折り返して全体を表示」を確認
- 必要に応じて設定を変更
大量データでの処理が遅い場合
効率化のコツ
段階的な処理
- 小さな範囲で動作確認
- 徐々に範囲を拡大
- 最終的に全体を処理
計算方法の変更
- 「数式」→「計算方法の設定」→「手動」
- 処理実行
- F9キーで再計算
- 処理完了後「自動」に戻す
外部データとの連携
テキストファイルからの取り込み
改行コードを考慮した取り込み
手順
- 「データ」→「テキストから」
- ファイル形式で「区切り記号付き」を選択
- 区切り文字で「その他」にチェックし、改行文字を指定
他のアプリケーションとの連携
Wordからのコピー
Wordの段落記号対応
=SUBSTITUTE(SUBSTITUTE(A1, CHAR(13), ""), CHAR(10), " ")
Webページからのコピー
HTMLの改行タグ対応
=SUBSTITUTE(SUBSTITUTE(A1, "<br>", CHAR(10)), "<BR>", CHAR(10))
マクロによる自動化
基本的な改行置換マクロ
Sub ReplaceLineBreaksWithComma()
Dim cell As Range
Dim selectedRange As Range
Set selectedRange = Selection
For Each cell In selectedRange
If Not IsEmpty(cell.Value) Then
cell.Value = Replace(cell.Value, Chr(10), ",")
End If
Next cell
MsgBox "改行をカンマに置換しました。"
End Sub
条件付き置換マクロ
Sub ConditionalReplaceLineBreaks()
Dim cell As Range
Dim userInput As String
userInput = InputBox("置換後の文字を入力してください", "改行置換", ",")
If userInput <> "" Then
For Each cell In Selection
If InStr(cell.Value, Chr(10)) > 0 Then
cell.Value = Replace(cell.Value, Chr(10), userInput)
End If
Next cell
End If
End Sub
よくある質問(Q&A)
Q. 置換後に元に戻したい場合は?
A. 以下の方法で元に戻せます:
Ctrl + Z(元に戻す)
- 置換直後であれば元に戻し可能
- 複数回実行していても段階的に戻せる
逆変換の数式
=SUBSTITUTE(A1, ",", CHAR(10))
Q. 改行と改段落の違いは?
A. Excelでは以下のような区別があります:
改行(ソフトリターン)
- Alt + Enterで入力
- 同じ段落内での行替え
- CHARコード10(LF)
改段落(ハードリターン)
- Excelでは通常使用されない
- Wordなどでの段落区切り
- CHARコード13+10(CRLF)
Q. 特定の行だけ置換したい場合は?
A. 以下の方法で部分的な置換が可能です:
SUBSTITUTE関数の回数指定
=SUBSTITUTE(A1, CHAR(10), ",", 1) ' 1番目の改行のみ
条件付きの置換
=IF(改行数 > 2, SUBSTITUTE(A1, CHAR(10), ","), A1)
Q. 改行を含むセルを検索したい
A. 以下の方法で改行を含むセルを見つけられます:
検索機能を使用
- Ctrl + F
- 検索ボックスでCtrl + J
- 「すべて検索」で一覧表示
数式での判定
=IF(FIND(CHAR(10), A1) > 0, "改行あり", "改行なし")
Q. CSVファイルで改行が問題になる場合は?
A. CSVファイルでは改行が特別な意味を持つため注意が必要です:
対処法
- 改行をカンマやスペースに置換してからCSV出力
- 改行を含むセルをダブルクォートで囲む
- TSV(タブ区切り)形式を使用
変換例
="""" & SUBSTITUTE(A1, """", """""") & """"
効率的なワークフロー

改行置換の推奨手順
ステップ1:データの確認
- 改行を含むセルの特定
- 改行コードの種類確認
- 置換後のイメージ確認
ステップ2:テスト実行
- 小さな範囲で動作確認
- 結果の検証
- 問題がなければ本実行
ステップ3:本実行と確認
- 全範囲での置換実行
- 結果の全体確認
- 必要に応じて微調整
作業効率化のコツ
テンプレート化
- よく使う置換パターンをテンプレートとして保存
- マクロボタンで一発実行できるように設定
バックアップの作成
- 大量データの処理前には必ずバックアップ
- 元に戻せる状態を確保
段階的な処理
- 複雑な置換は段階的に実行
- 中間結果を確認しながら進める
まとめ
Excelでセル内の改行を置換する方法は、用途に応じて選択することが重要です:
基本的な置換方法
- 検索と置換機能:Ctrl + H → Ctrl + Jで改行を指定
- SUBSTITUTE関数:=SUBSTITUTE(セル, CHAR(10), “置換文字”)
- VBAマクロ:大量データや複雑な処理に対応
よく使用される置換パターン
- 改行 → カンマ:CSVデータ作成時
- 改行 → スペース:1行テキスト化
- 改行 → 削除:データの簡略化
- 改行 → 特定記号:データベース用の区切り
使い分けのコツ
- 単純な一括置換:検索と置換機能
- 条件付き置換:SUBSTITUTE関数
- 複雑な処理:VBAマクロ
- 元データ保持:数式での変換
トラブル回避のポイント
- 改行コードの種類(LF、CR、CRLF)を確認
- 小さな範囲でテスト実行
- バックアップを必ず作成
- 処理後の表示設定を調整
応用の可能性
- データクレンジング作業の効率化
- 異なるシステム間のデータ移行
- レポート作成での書式統一
- 自動化による作業時間短縮
コメント