いきなり答える備忘録

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

(Gスプレッドシート)改行をはさんで文字列を結合する

 Googleスプレッドシートで、文字列の間に改行を挿んで結合する方法についてです。

  • 改行は「CHAR(10)」で表すことができますので、式の中でこれを使って文字列を結合すれば改行を挿んだ結合になります。

手順

&演算子を用いる方法

f:id:accs2014:20200329121922p:plain:right:w600

 もっとも単純な方法です。
 画像ではB3:D3の3つのセルの文字列を、改行を挿んで結合するため、E3セルに次の式を入力しています。

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

 各セルの値を&とCHAR(10)でつないでいます。

f:id:accs2014:20200329121927p:plain:right:w600

 結果はこうなります。
 結合する文字列の数が多くなると入力が面倒になるのが難点です。また、空白セルがある場合に改行が続いてしまうため注意が必要で、これを避けるには下記のTEXTJOIN関数を用いる方法が適しています。

JOIN関数を用いる方法

f:id:accs2014:20200329121931p:plain:right:w600

 上記の例と同様にB3:D3の文字列を結合するため、E3セルに次のように入力します。

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

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

f:id:accs2014:20200329121934p:plain:right:w600

 結果はこうなります。
 対象となる文字列が多数になる場合でも簡単に参照できるため、入力が容易なのがメリットです。

f:id:accs2014:20200329121939p:plain:right:w600

 ちなみにこの式を下方にフィルコピーするとこうなります。
 最後の行に注意してください。&演算子を使った場合もそうですが、空白セルがある場合に改行が連続してしまいます。これを避ける場合は次の例のようにTEXTJOIN関数を用います。
 また、JOIN関数は複数行複数列(2行×2列など)の文字列を1つに結合することができないので、その場合もやはりTEXTJOIN関数を用いる必要があります。

TEXTJOIN関数を用いる方法

f:id:accs2014:20200329121943p:plain:right:w600

 上記の例と同様にB3:D3の文字列を結合するため、E3セルに次のように入力します。

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

 TEXTJOIN関数の第1引数(区切り文字)としてCHAR(10)を指定し、さらに第2引数(空白を無視する)としてTRUEを指定しています。

f:id:accs2014:20200329121947p:plain:right:w600

 結果はこうなります。
 これだけならJOIN関数と変わりませんが……

f:id:accs2014:20200329121951p:plain:right:w600

 下方にフィルコピーするとこうなります。
 空白セルがあっても改行が連続せず、空白行が詰められているのがわかります。

 なお、JOIN関数とTEXTJOIN関数の詳細の比較については次の記事をご覧ください。

www.officeisyours.com