Microsoft ExcelのTEXTJOIN関数(テキストジョイン)は、文字と文字の間に特定の区切り文字を追加するときに役立つ関数です。
TEXTJOIN関数は、Microsoft 365、Excel2019以降のバージョンで利用できる新関数です。
この関数を使えば、例えば、「080」「8888」「8888」という3つのセルに「-」などの区切り文字を追加して「080-8888-8888」という文字の結合を行うことができます。
この記事では、TEXTJOIN関数の使い方と、IF関数と組み合わせるなどの事例を紹介します。
TEXTJOIN関数とは?
TEXTJOIN関数の読み方は、「テキストジョイン」です。
TEXTJOIN関数とは、文字と文字の間に指定した区切り文字を追加して結合する関数です。
TEXT(テキスト)が「文字」、JOIN(ジョイン)が「結合」を意味していることからも、どんな関数なのかイメージしやすいと思います。
例えばこの関数を使うと、「-」(ハイフン)などの区切り記号をはさんで、B列からD列の文字を結合することができます。(例:『060』『7777』『8888』⇒『060-7777-8888』)
TEXTJOIN関数とCONCAT関数の違いは?
文字と文字を結合する関数といえば、CONCAT関数(コンカット)とイメージする人が多いと思います。
それでは、TEXTJOIN関数とCONCAT関数の違いは何なのでしょうか?
TEXTJOIN関数は、「文字と文字を結合し、連続した同じ区切り文字を文字間に追加」する関数です。
一方、CONCAT関数は、「文字と文字を結合」する関数です。
そのため、CONCATで連続した区切り記号を追加したい場合は、下の書式のように、引数に区切り文字を複数回指定する必要があります。
=CONCAT(B3,"-",C3,"-",D3)
そのため、『TEXTJOIN関数は連続した区切り文字を追加して文字を結合する時に使い、CONCAT関数は普通の文字結合のときに使う』と覚えましょう。
CONCAT関数の使い方は、こちらのリンク記事を参考にしてください。
TEXTJOIN関数が使えない場合
TEXTJOIN関数が使えるようになったのは、Excel2019のバージョンからです。
そのため、TEXTJOIN関数が使えるエクセルのバージョンは、以下のとおりです。
TEXTJOIN関数が使えるバージョン
Excel2019、Excel2021、Microsoft365(サブスク)
そのため、TEXTJOIN関数が使えない場合は、「&」演算子やCONCAT関数、CONCATENATE関数を使用します。
下の記事で、文字と文字を結合する方法を紹介しているので、参考にしてください。
TEXTJOIN関数の書式と引数
TEXTJOINN関数の書式(構文)と引数を紹介します。
=TEXTJOIN(区切り文字,空のセルの処理,文字列1,文字列2・・・)
第1引数「区切り文字」:結合時に挿入したい区切り文字をダブルクォーテーションを挟んで指定します。(例:「” ”)」「”,”」「”-”」)
第2引数「空のセルの処理」:論理値「TRUE」もしくは「FALSE」を指定します。次の引数[文字列]で空白のセルを指定した場合、「TRUE」は無視され、「FALSE」は空白の文字列も結合して区切り記号を挿入します。(例:TRUE,FALSE)
第3引数「文字列」:結合する文字列を指定します。「B3:D3」のようなセルの指定方法も可能です。第4引数も同じ使い方です。(例:B3、B3:D3)
TEXTJOIN関数の使い方
それでは、実際にTEXTJOIN関数を使って文字列を結合する手順を紹介します。
手順1.TEXTJOIN関数の第1引数を指定
TEXTJOIN関数を挿入して、第1引数「区切り文字」に挿入したい区切り文字をダブルクォーテーションを挟んで指定します。
=TEXTJOIN("-",
手順2.TEXTJOIN関数の第2引数を指定
TEXTJOIN関数の第2引数「空のセルの処理」に「TRUE」か「FALSE」を入力します。特に空白セルの結合の処理を気にしないのであれば、「TRUE」を入力してください。(FALSEを使った事例は、下の見出しで紹介)
=TEXTJOIN("-",TRUE,
手順3.TEXTJOIN関数の結合する文字列を指定
TEXTJOIN関数の第3引数以降に「結合する文字列」を指定します。
=TEXTJOIN("-",TRUE,B3,C3,D3)
手順4.TEXTJOIN関数の確定
Enterキーを押してTEXTJOIN関数を確定します。そうすると、『060』『7777』『8888』の文字の間に区切り文字「-」が挿入され、『060-7777-8888』となります。
あとは、下のセルにもTEXTJOIN関数をコピペすれば完成です。
TEXTJOIN関数の事例を紹介
TEXTJOIN関数の事例を紹介します。
上記では、基本的な使い方を紹介しましたが、応用編の実例も解説します。
事例1:区切り文字を追加せずに文字を結合する
TEXTJOIN関数を使って、空白スペースをはさんで文字を結合する方法を紹介します。
関数の第2引数「区切り文字」を「” ”」と入力します。ダブルクォーテーションの間にスペース(全角or半角)を入力することで、スペースを区切り文字として利用します。
=TEXTJOIN(" ",TRUE,B3,C3,D3)
事例2:文字の間に空白を挿入する
TEXTJOIN関数を連続した区切り文字を挿入せずに、文字を結合して使用する方法を紹介します。
関数の第2引数「区切り文字」を「””」とダブルクォーテーションだけを入力することで、下の図のように、区切り文字なしで文字結合ができます。
=TEXTJOIN("",TRUE,B3,C3,D3)
事例3:先頭や末尾に別の文字を追加する
TEXTJOIN関数で結合した文字の前後に別の文字を追加することもできます。
下の数式のように、「&」演算子を使用して、追加したい文字列とTEXTJOIN関数の数式の間に&を挿入します。そうすると、下の図のように、「=」や「(」「)」などの別の文字を先頭や末尾に追加できます。
="="&TEXTJOIN("+",,B3,C3,D3)
="("&TEXTJOIN("+",,B4,C4,D4)&")"
事例4:第2引数「FALSE」を使う
TEXTJOIN関数の第2引数「空のセルの処理」で、「TRUE」ではなく「FALSE」を使うとどうなるか解説します。
第2引数は、空白セルを結合しようとしないかぎり、「TRUE」「FALSE」どちらを選んでも結果は同じです。
空白セルがある場合、第2引数を「TRUE」で文字を結合すると、下の図のように、空白セルは無いものと見なして、文字が結合されます。
=TEXTJOIN("-",TRUE,B3,C3,D3)
一方、第2引数を「FALSE」で文字を結合すると、下の図のように、空白セルも一つの文字と見なされて、区切り文字が連続でつながって、文字が結合されます。
=TEXTJOIN("-",FALSE,B3,C3,D3)
事例5:IF関数と組み合わせて結合する文字を変える
TEXTJOIN 関数はIF関数を組み合わせることで、条件に一致したセルの文字だけを結合することができます。
今回は説明用に、下の表のF2セルとF3セルに、男性の名前リストと女性の名前リストをそれぞれ入力する方法を紹介します。
カンマを挟んで男性の名前リストをF2セルに入力するために、以下のTEXTJOIN関数を挿入します。
TEXTJOIN関数の第3引数にIF関数を挿入し、C列が男性であればB列の氏名が表示されるような論理式と値を設定します。
=TEXTJOIN(",",TRUE,IF(C3:C8="男性",B3:B8,""))
同様に、結合された女性の名前リストを表示させるため、下のTEXTJOIN関数を挿入します。
=TEXTJOIN(",",TRUE,IF(C3:C8="女性",B3:B8,""))
そうすると、F2セルとF3セルに、男性の名前リストと女性の名前が結合されて表示されます。
(おまけ)TEXTSPLIT関数は文字を分割する関数
TEXTJOIN関数の真逆の機能を持つTEXTSPLIT関数という関数があります。
TEXTSPLIT関数は、キーとなる文字を指定して文字を分割する関数です。
以下の記事でTEXTSPLIT関数の詳しい使い方を紹介しているので、興味のある方はのぞいてみてください。