Excelでセル内の改行を削除したいときはないでしょうか。
けど、そんな中で悩むことは、
・見た目の改行がどんな文字なのか分からない
・置換機能で改行を指定する方法が分からない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
完成イメージ
上の画像が完成形です。B列・D列のセル内改行が、C列では「、」に置き換わり、E列では削除されて1行にまとまりました。
セル内の改行(Alt+Enterで入れた改行)は、見た目は分かっても正体が分からないと消しにくいものです。
実は改行の正体は CHAR(10) という制御文字で、これを指定して置き換えるのがポイントです。
今回は
・SUBSTITUTE関数でセル内の改行だけを削除する方法(=SUBSTITUTE(A2,CHAR(10),””))
をゴールにします。
住所や備考に入った改行が、数式1つでスッと消せるようになります。
なお、改行を「、」に置き換える方法や、CLEAN関数との違い、置換機能(Ctrl+H)、うまくいかないときの対処法(トラブルシュート)もあわせてご紹介します。
早速実装して試してみましょう!
もくじ
STEP1. 改行を含むデータを用意する
まずは改行を削除したいデータを用意します。
A列が顧客名、B列が住所、D列が備考です。
B列とD列には、セルの中で Alt+Enter を押して入れた改行が含まれています。
C列とE列は、これから数式で改行を消して表示するための空欄です。
この空欄を、これから自動で埋めていきましょう。

下の表をコピーして、Excelのシートに貼り付けるとそのまま試せます。
| 顧客名 | 住所(改行あり) | 改行を削除した住所 | 備考(改行あり) | 改行を削除した備考 |
| 佐藤 太郎 | 東京都千代田区 丸の内1-1-1 |
定期便を希望 午前中の指定あり |
||
| 鈴木 花子 | 大阪府大阪市北区 梅田2-2-2 |
領収書が必要 宛名は会社名 |
||
| 高橋 一郎 | 愛知県名古屋市中村区 名駅3-3-3 |
初回のみ電話連絡 以降はメール希望 |
||
| 田中 美雪 | 福岡県福岡市博多区 博多駅前4-4-4 |
置き配を希望 玄関前に置いてほしい |
||
| 伊藤 健司 | 北海道札幌市中央区 大通西5-5-5 |
不在時は宅配ボックス 再配達は可 |
||
| 渡辺 あゆみ | 神奈川県横浜市西区 みなとみらい6-6-6 |
法人契約 請求書払いを希望 |
||
| 山本 大輔 | 兵庫県神戸市中央区 三宮町7-7-7 |
土日祝のみ受け取り 平日は不可 |
||
| 中村 さくら | 京都府京都市中京区 烏丸御池8-8-8 |
ギフト包装を希望 のし対応も可 |
||
| 小林 悠太 | 埼玉県さいたま市大宮区 桜木町9-9-9 |
時間帯の指定あり 19時以降を希望 |
||
| 加藤 恵 | 広島県広島市中区 紙屋町10-10-10 |
電話番号が変更済み 登録の更新が必要 |
※ 数式で求める列は空にしています。すでに値が入っている列はそのまま残して試せます。
このように、セルの中で2行に折り返しているのが改行が入っている状態です。
STEP2. 改行の正体は CHAR(10)
まずは、セル内の改行がどんな文字なのかを確認しておきましょう。
改行の正体は、文字コード 10番 の制御文字です。
この文字は、エクセルの関数 CHAR(10) で表せます。
シートの下に、確認用の数式を用意しました。
「文字数(改行込み)」と「改行を除いた文字数」を比べると、1文字分だけ多いことが分かります。
つまり改行は、目には見えませんがれっきとした1文字として数えられているのです。
だからこそ、その1文字を指定して置き換えるのが近道になります。

STEP3. SUBSTITUTE関数で改行を削除する
次に、C2セルに改行を削除する数式を入れます。
C2セルを選んで、次の数式を入力します。
=SUBSTITUTE(B2,CHAR(10),"")SUBSTITUTEは「文字列の中の指定した文字を置き換える」関数です。
検索する文字に CHAR(10) を指定し、置換後の文字を “”(空) にすると、改行だけを取り除けます。
入力したら、C2セルの数式をC11セルまでコピーしましょう。
実際の入力画面がこちらです。


C2セルに数式を入れると、セルには計算結果が表示されます。
数式バーを見ると、どんな式が入っているか確認できます。
入力中は引数のヒントが出るので、順番を確認しながら進められます。
STEP4. 実行結果を確認する
C列に、改行が消えた住所が表示されました。
B列では2行に折り返されていた住所が、C列では1行にまとまっています。
同じように、D列の備考もE列で改行を削除しましょう。
E2セルに
=SUBSTITUTE(D2,CHAR(10),"")と入力して、E11セルまでコピーします。
STEP5. 改行を「、」に置き換える
改行を消すのではなく、区切り文字に置き換えたいこともあります。
その場合は、置換後の文字に「、」を指定するだけです。
C2セルの数式を次のように書き換えてみましょう。
=SUBSTITUTE(B2,CHAR(10),"、")住所の改行が「、」に変わり、1行の文章として読めるようになりました。
削除と置換は、3つ目の引数を変えるだけなのでカンタンですね。

STEP6. CLEAN関数との違い
「CLEAN関数でも改行は消せるのでは?」と思った方もいるかもしれません。
結論から言うと、CLEAN関数でもCHAR(10)の改行は削除できます。
ただしCLEANは、表示されない制御文字(文字コード0〜31)をまとめて削除する関数です。
そのため、改行だけを狙って消したい場面ではSUBSTITUTEのほうが分かりやすいです。
また、全角スペースはCLEANでも消えません。
シートの下の確認用の数式では、どちらも文字数が変わっていません。
消したい文字が決まっているなら、SUBSTITUTEで狙い撃ちするのがおすすめです。

置換機能(Ctrl+H)で改行を消す
数式を使わず、その場で改行を消したいときは置換機能が便利です。
Ctrl+Hで「検索と置換」を開き、「検索する文字列」に改行を指定します。
改行はキーボードから直接入力できないため、Ctrl+J を押して入力します。
検索する文字列に改行が入ったら、「置換後の文字列」は空のままで「すべて置換」をクリックします。
これで選択した範囲の改行が一括で消えます。
数式を残したくないときに向いている方法です。
見えない文字なので、まずはLEN関数で文字数を数えると「入っている」ことが分かりますよ。
3つの方法の比較
改行を消す方法はいくつかあります。
向いている場面で使い分けると迷いません。
| 方法 | できること | 向いている場面 |
| SUBSTITUTE関数 | 指定した文字(改行)だけを削除・置換 | 数式で自動処理したいとき |
| CLEAN関数 | 制御文字(文字コード0〜31)をまとめて削除 | 見えない制御文字も一緒に消したいとき |
| 置換機能(Ctrl+H) | セルの値を直接置き換える | その場で1回だけ手早く直したいとき |
うまくいかないときの対処法(トラブルシュート)
実際に試すと、思ったように動かないこともあるかもしれません。
よくあるつまずきと対処法をまとめました。
| 症状 | 原因 | 対処 |
| 改行が消えない | 改行がCHAR(10)ではなく、別の文字(全角スペースなど)になっている |
=CODE(MID(セル,位置,1))で文字コードを確認し、その文字をSUBSTITUTEで指定する |
| 置換機能で改行を入力できない | 検索欄に改行を直接打てない | 「検索する文字列」で Ctrl+J を押して改行を入れる |
| 「、」に置換したら区切りが増えた | 元の文字列にすでに「、」が含まれている | 置換後の文字を「/」など別の記号にする |
| 数式を入れたのに見た目が変わらない | セルの折り返しがONのままで、行の高さも固定されている | 折り返しを解除し、行の高さをダブルクリックで自動調整する |
| 文字列が数値に変わらない | SUBSTITUTEの戻り値は文字列になる | 数値として扱いたいときは
=VALUE(SUBSTITUTE(...))で数値化する |
関数の説明
今回使う3つの関数の概要です。
どれも文字列の整理でよく使う関数なので、違いを押さえておきましょう。
SUBSTITUTE関数(サブスティテュート)
| 書式 | =SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象]) |
| できること | 文字列の中の指定した文字を、別の文字に置き換えます。 |
| 戻り値 | 置き換え後の文字列 |
| こんなときに | 改行(CHAR(10))を削除したり、「、」に置き換えたりしたいとき。 |
| 注意 | 戻り値は文字列になります。数値として扱いたいときは VALUE で数値化します。 |
=SUBSTITUTE(B2,CHAR(10),"")CHAR関数(チャー)
| 書式 | =CHAR(文字コード) |
| できること | 文字コードに対応する文字を返します。改行は文字コードの 10 です。 |
| 戻り値 | 該当する文字(改行は CHAR(10)) |
| こんなときに | 改行のように、キーボードから直接指定できない文字を数式で扱いたいとき。 |
| 注意 | 見た目には何も表示されない文字なので、LEN で数えると1文字として数えられます。 |
=CHAR(10)CLEAN関数(クリーン)
| 書式 | =CLEAN(文字列) |
| できること | 文字列から表示されない制御文字(文字コード0〜31)を取り除きます。 |
| 戻り値 | 制御文字を除いた文字列 |
| こんなときに | 他のシステムから取り込んだデータの見えないゴミを取りたいとき。 |
| 注意 | 改行(CHAR(10))は消せますが、全角スペースは消えません。改行だけを狙うならSUBSTITUTEを使います。 |
=CLEAN(B2)完成
C列とE列に、改行を取り除いた文字列が入りました。
2行に折り返されていた住所や備考が、どちらも1行にまとまっています。
思ったとおりに動きましたか?
数式で作っておけば、元データを書き換えても自動で追従します。
毎回の改行削除の作業が、ぐっとラクになりますね。


住所と備考の両方から改行が消えて、1行にまとまりました。
サンプルでは16文字 → 15文字になり、改行が1つ入っていたことが確認できました。
さいごに
今回は、
についてまとめました。
改行の正体は CHAR(10) という制御文字です。
これを指定して置き換えるだけで、セル内の改行をきれいに削除できます。
まずは今回のサンプル表で一度試してみましょう。
「、」への置換やCLEAN関数との使い分けも、あわせて覚えておくと便利ですよ。
また、他にも便利なExcelの時短テクニックがありますので、よろしければご参照頂ければと思います。













コメントを残す