いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)セル内で改行する方法と改行の活用例

 Googleスプレッドシートで、セルの内部で改行を行う方法と、改行を利用した操作の例をいくつか紹介します。

  • ショートカットキー「Alt+Enter」または「Ctrl+Enter」を使ってセル内改行ができます。
  • 改行は式の中で「CHAR(10)」と表すことができます。これを利用して改行できるほか、さらに他の関数と併用して文字列から改行への置き換えや改行の削除などができます。

ショートカットキーで改行する方法

 まずはセル内を選択(ダブルクリック)して、改行を挿もうとする位置にカーソル(縦線)を合わせます。



 あとはショートカットキー「Alt+Enter」(Altキーを押しながらEnterキーを押す)か、または「Ctrl+Enter」によりカーソル位置に改行が挿まれます。



 さらにEnterキーでセルの編集を確定したところです。
 行の高さが自動調整され2行分に拡張されています。



 ところで改行を含む行を選択しても、ウインドウ上部の数式バーは(デフォルトで)1行分しかありませんので最初の1行しか確認できません。



 そこでですが、マウスポインタを数式バーの下辺に合わせると上下方向の矢印状に変化するので…



 下にドラッグすると数式バーが上下に広がり、改行を含むセルの値の全体が確認できます。また、数式バーをクリックして編集することもできます。
 もちろん全ての行の高さを調整してセルの内容全体を表示した方が見通しがいいですが、行の高さの設定に関係なく数式バーの方で内容を確認、編集することができます。

「CHAR(10)」を使って改行する方法

 例えば「=””」という式の「""」の中に「Alt+Enter」で改行を挿むとそれは「改行だけの文字列」になりますが、当然そこで改行されてしまうため、式の中ではとても扱いにくいものになります。
 そこでCHAR関数を使った「CHAR(10)」というものがよく用いられます。CHAR関数は指定した数値に対応する文字を返すもので、10という数値に対応する文字が「改行」であるというわけです。これなら式の中では改行されないので、キー入力した改行よりも取り扱いが楽になります。
 次の画像ではセルに「="東京都"&CHAR(10)&"世田谷区"」という値を入力しています。



 これを確定すると、数式バーではもちろんそのままですがセル上では改行を挿んで表現されます。



 こちらは3つのセルの文字列を、改行を挿んで結合する例です。

 B6セル

=B3&CHAR(10)&C3&CHAR(10)&D3

 


 さらにTEXTJOIN関数を使えば、指定範囲の文字列を一括して結合することができます。

 B6セル

=TEXTJOIN(CHAR(10),,B3:D3)

 第1引数(区切り文字)として「CHAR(10)」を指定しています。

活用例

特定の文字(列)を改行に置き換える

 SUBSTITUTE関数を使うことで、テキスト中の特定の文字(文字列)を改行に置き換えることができます。
 ここではテキスト中の「★」を改行に置き換えています。

 B6セル

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

 第2引数(置換元文字列)として「★」を、第3引数(置換先文字列)として「CHAR(10)」を指定しています。
 なおGoogleスプレッドシートオリジナルのREGEXREPLACE関数を使って正規表現にマッチするパターンを改行に置き換えることも可能です。ここでは触れませんが興味のある方は調べてみてください。

改行を削除する

関数を使う方法

 関数を使って改行をすべて取り除いてしまう方法です。
 ここでもSUBSTITUTE関数を使います。

 D3セル

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

 改行の置き換え先を空文字列("")にしてしまうことで改行が削除されます。

メニューを使う方法

 メニュー操作により改行を削除する方法です。
 関数を使う場合と異なり、指定した範囲(シート全体、ファイル全体も可)にある改行を直接取り除くことができます。ただし「CHAR(10)」による改行を削除できません(対応は後述)。
 ここではB3セルを対象とすることとします。そのB3セルを選択した状態でメニューから「編集」→「検索と置換」と選択します。



 ダイアログが現れますので「検索」欄に「\n」と入力します(これは正規表現における改行を表します)。
 また、対象範囲のプルダウンから適当なものを選びます(ここでは「特定の範囲」→B3セルが選択される)。
 そして「正規表現を使用した検索」にチェックを入れます。このとき「大文字と小文字の区別」に自動的にチェックが入りますが結果に影響しないのでそのままでいいです。
 最後に「すべて置換」をクリックします。先に「完了」をクリックすると何も起きないので要注意です。



 すると改行が取り除かれました。


 なお、この方法では「CHAR(10)」を使った改行が削除できませんが、いったん対象範囲をコピーしてその場で「値のみ貼り付け」を実行してから上記の操作をやれば削除できます。また、次の記事ではもうちょっと細かいところまでやっていますので参考まで。

www.officeisyours.com

改行だけの行を削除する

 ちょっとした応用になりますが、次の画像では余分な改行(改行だけの行)を取り除いています。

 D3セル

=TEXTJOIN(CHAR(10),,(SPLIT(B3,CHAR(10))))

 SPLIT関数を使って改行を区切り位置として文字列を分割し、今度はTEXTJOIN関数を使って改行を挿みつつ結合するという式です。
 それだと元の文字列に戻るだけにも思えますが、SPLIT関数で分割したときに「先頭や末尾にある改行」や「連続する改行」に対応する空白セルが出力されない(既定値)ので、TEXTJOINで結合した後にはそれらの改行が残らないというわけです。

改行を区切り位置として文字列を分割する

 SPLIT関数を使えば、文字列中の改行を区切り位置とみなして文字列を各セルに分割することができます。

 D3セル

=SPLIT(B3,CHAR(10))

 区切りとして「CHAR(10)」を指定しています。
 なお、メニューの「データ」→「テキストを列に分割」を使って文字列を分割する方法がありますが、改行を区切り位置として指定することができないようです。よってこのメニューで実行する必要がある場合は、上記の「検索と置換」を使って改行を適当な記号(文字列中で用いていないもの)に置き換えておく必要があります。



 また、縦方向に分割する場合はTOCOL関数を併用します。
 従来のFLATTEN関数でもいいですがTOCOLの方が少し短くなります。

 セル

=TOCOL(SPLIT(B3,CHAR(10)))