(Excel)改行をはさんで文字列を結合する方法

 Excelで、文字列の間に改行を入れてつつ結合する方法についてです。

「&CHAR(10)&」でつなぐ方法

 はじめに、やりたいことの確認です。
 各行のB~D列には3つの文字列が記録されています。そこで3つの文字列の間(2か所)に改行をはさんだものを、E列に表示させるものとします。
 (各セル内の文字列の位置は「上揃え」にしています)

 


 まずE3セルに次の数式を入力します。

 E3セル

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

 3つのセルの文字列を「&CHAR(10)&」でつないでいます。「CHAR(10)」は改行を意味する文字コードです。
 ただしこれだけでは実際に改行として表示されないので注意してください。



 そこで「ホーム」タブにある「折り返して全体を表示する」のアイコンをクリックすると…

 



 「CHAR(10)」が改行として表示され、セル内に3行の文字列として表示されました。

 


 あとはE6セルまでフィルコピー(E3セル右下の小さい四角をダブルクリック、またはE6までドラッグ)すれば完了です。

 


 なお、「折り返して全体を表示する」のアイコンをクリックする部分ですが、「セルの書式設定」のダイアログ(「ホーム」タブで「書式」→「セルの書式設定」と選択)で「折り返して全体を表示する」のチェックを入れても同じ結果となります。

TEXTJOIN関数を使う方法

 次の画像ではTEXTJOIN関数を使った数式を利用して、上記例と同様の結果を得ています。
 上記例と同様に、「ホーム」の「折り返して全体を表示する」のアイコンをクリックするなどして改行表示させる必要があるので注意してください。

 E3セル(E6までフィルコピー)

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

 TEXTJOIN関数は、複数の文字列の間に区切り文字(第1引数)を挿んだ結果を得る関数です。区切り文字として「CHAR(10)」を指定することで各文字列の間に改行を挿んだ結果を得ています。
 TEXTJOIN関数を利用できるバージョンは限られますが、最初の例のように1つ1つの文字列の間に「&CHAR(10)&」を挿むことなく1つの引数として指定するだけで済むのがメリットです。