Excelで改行を削除する方法!SUBSTITUTEとCHAR(10)でセル内改行を一括削除!

Excelで改行を削除する方法!SUBSTITUTEとCHAR(10)でセル内改行を一括削除!
Excelでセル内の改行を削除したいときはないでしょうか。

けど、そんな中で悩むことは、

・セル内の改行を1件ずつ消すのが手間
・見た目の改行がどんな文字なのか分からない
・置換機能で改行を指定する方法が分からない

ですよね。

今回はそんなお悩みを解決する

・Excelで改行を削除する方法(SUBSTITUTE関数とCHAR(10))

についてまとめます!

完成イメージ

完成イメージ

上の画像が完成形です。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セルまでコピーしましょう。
実際の入力画面がこちらです。
SUBSTITUTE関数の入力画面
C2セルに数式を入れた状態

C2セルに数式を入れると、セルには計算結果が表示されます。

数式バーのSUBSTITUTE関数

数式バーを見ると、どんな式が入っているか確認できます。

引数のヒントが表示されている状態

入力中は引数のヒントが出るので、順番を確認しながら進められます。

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で狙い撃ちするのがおすすめです。
CLEAN関数との違いを確認した画面

置換機能(Ctrl+H)で改行を消す

数式を使わず、その場で改行を消したいときは置換機能が便利です。
Ctrl+Hで「検索と置換」を開き、「検索する文字列」に改行を指定します。
改行はキーボードから直接入力できないため、Ctrl+J を押して入力します。
検索する文字列に改行が入ったら、「置換後の文字列」は空のままで「すべて置換」をクリックします。
これで選択した範囲の改行が一括で消えます。
数式を残したくないときに向いている方法です。

タカヒロ

タカヒロ
改行の正体はCHAR(10)という制御文字です。
見えない文字なので、まずは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行にまとまりました。

改行が消えたか確認する方法
=LEN(セル) で文字数を数えると、改行1つ分(1文字)減っていることが分かります。
サンプルでは16文字 → 15文字になり、改行が1つ入っていたことが確認できました。

さいごに

今回は、

・Excelで改行を削除する方法(SUBSTITUTE関数とCHAR(10))

についてまとめました。

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



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。






コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA ImageChange Image