セルの文字列と区切り記号をつなぐ (TEXTJOIN 関数)

Office 365 サブスクリプションの Excel 2016 (の最新版) で利用できる TEXTJOIN 関数について紹介します。

下図のように A 列から C 列までに入力されている文字列を「-」でつないで D 列に表示したいとします。
(これ、リボンのコマンド ボタンの位置をまとめている表だと思ってください・・・。)
T01.png


今までであれば、「&」(文字列演算子) を使って、結合したいセルを 1 つずつ指定してつないでいました。
(あまり私は使う機会はないけれど、CONCATENATE 関数でもできます) 
T02.png

TEXTJOIN 関数を使って、空白セルの処理も考えながら、同じ結果を得られますよ、というお話です。
T03.png

TEXTJOIN 関数は、指定した 1 つずつの文字列、1 つずつのセル、セル範囲の文字列を、“区切り記号” として指定した文字列を挿入しながら結合した結果を返す関数です。


構文はこんな感じ。
=TEXTJOIN (区切り記号,空白の場合の処理,文字列 1, [文字列 2],...)


区切り記号 (必須) ・・・文字列をつなぐときに使用する区切り記号を指定します。
            文字列は二重引用符で囲みます。
空白の場合の処理 (必須) ・・・ TRUE または FALSE を指定します。
               TRUE のとき、空のセルは無視されます。
文字列 1 (必須) ・・・ 結合する文字列、またはセル、セル範囲を指定します。
[文字列 2] (省略可能) ・・・結合する文字列は、最大で 252 まで指定できます。
 

ということで、下図のセル D2 数式は、「“-” という区切り記号を使って、セル範囲 A2 から C2 の文字列を結合しなさい。空白セルがあった場合は無視してください。」という数式でした。


セル範囲 A2 から C2 までの 3 つのセルの文字列が “-” で結合された結果が返っています。T04.png


なお、「空白の場合の処理」として TRUE を指定しているため、B 列のセルの値を消して空白にすると、空白が無視され、「タブ - コマンド」という結果が返ります。
T05.png

 


ポイントは、空白だった場合の処理を選べることと、セル範囲を指定できることでしょうか。
CONCATENATE 関数や「&」は、連続している (隣あっている) セルであっても 1 つずつ指定しなければならなかったので、必然的に数式が長くなりがちでしたが、セル範囲を指定できることで、とてもスマートにスムーズに指定できます。

空白だった場合の処理は、無視することがいつでもよいわけではないので、選べるというところがとても使いやすいです。

石田 かのこ