2/16/2023

Excel。複数セルの内容ごとに改行して、一つのセルにまとめたい。【put together】

Excel。複数セルの内容ごとに改行して、一つのセルにまとめたい。

<TEXTJOIN+CHAR関数>

複数のセルに入力されているデータを、次のように、一つのセルにまとめたいのですが、セルごとの区切りがわかるように、改行してまとめたいわけです。


今回のように、結合する件数が少なければ、CONCAT関数をつかう、あるいは、「&(アンパサンド)」で、文字結合する方法があります。


ただ、問題になってくるのが、単純に結合するのではなくて、セルとセルの間には、改行した状態にしたいわけです。


また、件数が多い場合は、数式を作るのも面倒になってきます。


では、A5には、どのような数式を設定したのかというと、

=TEXTJOIN(CHAR(10),TRUE,B1:D1)


という数式です。


数式を説明していきます。

最初のTEXTJOIN関数は、文字結合を行うことができる関数です。


このTEXTJOIN関数の引数がCONCAT関数や「&(アンパサンド)」よりも効率がいいことがわかります。


最初の引数は、区切り文字です。


改行で区切りたいわけですね。

改行は、CHAR関数はJISコードで割り振られた文字コードを設定することができます。改行は、10番なので、「CHAR(10)」とします。


2つ目の引数は、空白があったらどうするのか。

範囲内に空白があった場合は、無視したいので、「TRUE」を設定します。

最後の引数は、結合したい文字の範囲です。

よって「B1:D1」


これで数式としては完成ですが、このあと、ちょっとした処理をしないといけません。


実行すると、文字が結合されただけのようにしかみえません。


そこで、「折り返して全体を表示する」をクリックすると、改行で区切られていることがわかります。

なお、行幅が広がらない時は、広げてあげる必要があります。


今回紹介したTEXTJOIN関数は、新しい関数です。


新しい関数を色々使ってみると、今までよりも、簡単でわかりやすい数式を作れるかもしれませんので、試してみるといいかもしれませんね。