(Gスプレッドシート)改行を置換・削除する方法

 Googleスプレッドシートで、セル内の改行を別の文字(文字列)に置き換えたり削除する方法について紹介します。

SUBSTITUTE関数を使う方法

 次の画像ではC3セルに数式を入力し、B3セル内の文字列内の改行を「★」に置き換えた結果を得ています。

 C3セル

=SUBSTITUTE(B3,CHAR(10),"★")

 SUBSTITUTE関数はある文字列(第1引数)に含まれる特定の文字(第2引数)を、別の特定の文字(第3引数)に置き換える関数です。
 ここでは第2引数を「CHAR(10)」としています。「CHAR(10)」は改行を表しており、これにより改行を別の文字に置き換えることができます。
 なお、第3引数を「CHAR(10)」とすれば、別の文字列を改行に置き換えることができます。



 次の画像ではSUBSTITUTE関数を使って改行を削除しています。

 C3セル

=SUBSTITUTE(B3,CHAR(10),"")

 第3引数(置換先)を空文字列("")とすることで改行を削除できます。

REGEXREPLACE関数を使う方法

 ここでもC3セルに数式を入力し、B3セル内の文字列内の改行を「★」に置き換えた結果を得ています。

 C3セル

=REGEXREPLACE(B3,CHAR(10),"★")

 REGEXREPLACE関数はSUBSTITUTE関数と同様に、文字列中の特定の文字(第2引数)を、別の特定の文字(第3引数)に置き換える関数です。
 ここでも第2引数を「CHAR(10)」することで改行を別の文字(★)に置き換えています。



 置換先を「""」にすれば改行を削除できます。
 これもSUBSTITUTE関数の例と同じです。

 C3セル

=REGEXREPLACE(B3,CHAR(10),"")

 


 なお、REGEXREPLACE関数では正規表現を利用することができます。正規表現では改行を「¥n」(¥はバックスラッシュで表示されます)と表すことができます。次の画像ではこれを利用して改行を置き換えています。

 C3セル

=REGEXREPLACE(B3,"\n","★")

CLEAN関数を使う方法(削除のみ可)

 次の画像ではC3セルに数式を入力し、B3セル内の文字列内の改行を削除した結果を得ています。

 C3セル

=CLEAN(B3)

 CLEAN関数は文字列中の「印刷できない文字」を削除する関数です。
 改行は(セル内の文字配置に影響するものの)形のある文字ではないのでCLEAN関数により削除されます。

「検索と置換」メニューを使う方法

 メニュー操作で改行を置換・削除する方法です。
 ここではB3セル内の改行を「★」に置き換えるものとします。
 まずは対象範囲(B3セル)を選択します。

 


 そのままメニューから「編集」→「検索と置換」と選択します。
 ショートカット「Ctrl+H」でもOKです。

 


 ダイアログが現れますので次のようにします。

  1. 「検索」欄に「¥n」(¥はバックスラッシュで表示されます)と入力
  2. 「置換後の文字列」欄に「★」と入力(改行を削除する場合はここに何も入力しない
  3. 「検索」のプルダウンから「特定の範囲」を選択(その右のボックス内にある田のアイコンをクリックして対象範囲を選び直すこともできます)
  4. チェックボックスのうち「正規表現を使用した検索」にチェックを入れる(「大文字と小文字の区別」にもチェックが入りますが、この例では結果に影響しません)
  5. 「すべて置換」をクリック

 最後の「すべて置換」と間違えて「完了」をクリックすると何も起きませんので注意してください。



 「すべて置換」をクリックしたところです。
 セル内の改行が「★」に置き換えられたことがわかります。

 補足ですが、セル内の改行がキー操作ではなく「CHAR(10)」により行われている場合はこの方法で置換・削除できません。
 つまりB3セルの値が「="東京都"&CHAR(10)&"港区"&CHAR(10)&"南青山"」のような数式である場合はうまくいきません。
 このような場合は上記ダイアログ中の「検索」欄に「CHAR¥(10¥)&」と入力し、(「正規表現を使用した検索」のほかに)「数式内も検索」にもチェックを入れて「すべて置換」を実行してみてください。

備考

 セル内の余分な行(改行だけの行)を削除する方法について、次の記事で紹介しています。

(Gスプレッドシート)セル内の改行だけの行を削除する - いきなり答える備忘録