Excel。複数セルの内容ごとに改行して、一つのセルにまとめたい。
<TEXTJOIN+CHAR関数>
複数のセルに入力されているデータを、次のように、一つのセルにまとめたいのですが、セルごとの区切りがわかるように、改行してまとめたいわけです。
今回のように、結合する件数が少なければ、CONCAT関数をつかう、あるいは、「&(アンパサンド)」で、文字結合する方法があります。
ただ、問題になってくるのが、単純に結合するのではなくて、セルとセルの間には、改行した状態にしたいわけです。
また、件数が多い場合は、数式を作るのも面倒になってきます。
では、A5には、どのような数式を設定したのかというと、
=TEXTJOIN(CHAR(10),TRUE,B1:D1)
という数式です。
数式を説明していきます。
最初のTEXTJOIN関数は、文字結合を行うことができる関数です。
このTEXTJOIN関数の引数がCONCAT関数や「&(アンパサンド)」よりも効率がいいことがわかります。
最初の引数は、区切り文字です。
改行で区切りたいわけですね。
改行は、CHAR関数はJISコードで割り振られた文字コードを設定することができます。改行は、10番なので、「CHAR(10)」とします。
2つ目の引数は、空白があったらどうするのか。
範囲内に空白があった場合は、無視したいので、「TRUE」を設定します。
最後の引数は、結合したい文字の範囲です。
よって「B1:D1」
これで数式としては完成ですが、このあと、ちょっとした処理をしないといけません。
実行すると、文字が結合されただけのようにしかみえません。
そこで、「折り返して全体を表示する」をクリックすると、改行で区切られていることがわかります。
なお、行幅が広がらない時は、広げてあげる必要があります。
今回紹介したTEXTJOIN関数は、新しい関数です。
新しい関数を色々使ってみると、今までよりも、簡単でわかりやすい数式を作れるかもしれませんので、試してみるといいかもしれませんね。