TEXTJOIN関数:区切り文字を使い文字列を結合する
TEXTJOIN 関数は Excel で用意されている関数の一つで、引数に指定した複数の文字列を区切り文字を間に挟みながら結合し一つの文字列にして返します。ここでは Excel における TEXTJOIN 関数の使い方について解説します。
※ Excel では TEXTJOIN 関数の他に文字列を結合する方法がいくつか用意されています。詳しくは「文字列演算子(&)を使った文字列の結合」を参照されてください。
※ Excel の対応バージョン : 365 web 2021 2019
(Last modified: )
TEXTJOIN関数の定義
TEXTJOIN
関数は引数に指定した複数の文字列を区切り文字を挟みながら結合し、一つの文字列として返します。
1 番目の引数に区切り文字を表す文字列または文字列が含まれるセルを指定します。セル範囲を指定することもできます。
2 番目の引数に空の文字列または空のセルがあった場合に無視するかどうかを指定します。 TRUE の場合は無視して区切り文字を挿入しません。 FALSE の場合は区切り文字を挿入します。値を省略した場合は TRUE を指定したものとみなされます。
3 番目以降の引数に文字列または文字列が含まれるセルを指定します。文字列を指定する場合はダブルクォーテーションで囲んで指定してください。最大で 252 個の引数を指定できます。文字列だけでなく数値や日付の値を指定することもできます。またセル範囲を指定して連続するセルをまとめて結合することもできます。
例えば区切り文字として "-", 空のセルの処理は FALSE , 3 番目以降の引数として "03" , "1234" , "5678" を指定した場合、結果として "03-1234-5678" になります。
=TEXTJOIN("-",FALSE,"03","1234","5678") --> 03-1234-5678
日付や時刻の値を引数に指定することもできますが、日付の値は内部的に保管されているシリアル値として結合されるのでご注意ください。
TEXTJOIN関数の使い方
それでは実際に TEXTJOIN
関数を使ってみます。 Excel のシートに結合の対象となる文字列を次のように入力しました。
取得した文字列を表示する E3 セルを選択し、次のように入力しました。 TEXTJOIN
関数で今回は 3 つセルに入力されている文字列を結合するため、 B3, C3, D3 セルを指定しました。また区切り文字として "," 、空のセルの処理は FALSE としています。
=TEXTJOIN(",",FALSE,B3,C3,D3)
Enter
キーを押すと、 E3 セルには次のように表示されます。
B3, C3, D3 セルに入力されている文字列を区切り文字 "," を間に挟みながら結合し 1 つの文字列にしてから E3 セルに表示しました。
同じように E4 セルから E7 セルに対しても CONCAT
関数を入力しました。
空のセルを無視する
もし空のセルの処理として TRUE を指定した場合はどのようになるのかを確認します。対象のデータを次のように変更しました。 C3 セルおよび D5 セルが空となっています。
最初に空のセルの処理として FALSE を指定して B 列から D 列までを結合してみます。この場合は空のセルがあってもそのまま結合します。
=TEXTJOIN(",",FALSE,B3,C3,D3)
E3 セルは "山田 一郎,,東京都" 、 G3 セルは "西田 五郎,27," のように空のセルであっても空のまま結合されました。
次に空のセルの処理として TRUE を指定して B 列から D 列までを結合してみます。この場合は空のセルがあった場合はセルそのものがなかった物として結合します。
=TEXTJOIN(",",TRUE,B3,C3,D3)
E3 セルは "山田 一郎,東京都" 、 G3 セルは "西田 五郎,27" のように空のセルは無視されて結合されました。
セル範囲を引数に指定する
TEXTJOIN
関数では引数にセル範囲を指定することができます。連続している複数のセルを結合する場合にはセル範囲で指定した方が簡潔に記述できます。例として取得した文字列を表示する E3 セルを選択し、次のように入力しました。
=TEXTJOIN(",",FALSE,B3:D3)
Enter
キーを押すと、 E3 セルには次のように表示されます。一つ一つ引数を記述した場合と同じ結果となりました。
セル範囲については「セル範囲を指定する」を参照されてください。
数値や日付と結合する場合の注意点
TEXTJOIN
関数では文字列だけでなく数値や日付の値なども結合することができますが、いずれに場合もセルに設定されている表示形式が反映されない値として結合されるため注意が必要です。例として Excel のシートに結合の対象となる文字列を次のように入力しました。
D3 セルに TEXTJOIN
関数を入力し、文字列が入力された B3 セルと数値が入力された C3 セルの値を結合しました。
=TEXTJOIN(" ",FALSE,B3,C3)
Enter
キーを押すと D3 セルには次のように表示されました。 "売上 8,520" ではなく "売上 8520" と結合されています。 C3 セルに設定されていた表示形式が反映されず、値として保管されている 8520 と結合されたためです。
同じように D4 セルと D5 セルに TEXTJOIN
関数を入力し、文字列と日付や時刻の値を結合しました。
日付や時刻の値と結合する場合は、表示されていた値ではなく日付と時刻が内部的に値を保管するのに使用しているシリアル値が結合されています。 2020/9/14 を表すシリアル値は 44088 で、 12:04:38 を表すシリアル値は 0.503217592592593 です。
※ 日付や時刻に関するシリアル値については「Excelにおける日付と時刻のシリアル値とは」を参照されてください。
日付や時刻の値を文字列に変換してから結合する
表示形式が設定された数値や、シリアル値として保存されている日付や時刻の値を表示されたまま結合したい場合には、いったん TEXT
関数を使って数値や日付の値を文字列に変換する必要があります。
例えば表示形式が設定された数値を文字列に変換するため、 D3 セルに次のように入力しました。
=TEXT(C3,"#,###0")
Enter
キーを押すと、 D3 セルには次のように表示されます。 C3 セルに入力されていた数値を指定した表示形式を使った文字列に変換しました。
では TEXTJOIN
関数を使って B3 セルと D3 セルの値を結合してみます。
=TEXTJOIN(" ",FALSE,B3,D3)
表示形式が設定された状態で結合することができました。
次に日付や時刻などシリアル値で保管されている値を文字列に変換してから結合してみます。 D4 セルに次のように入力しました。
=TEXT(C4,"yyyy/m/d")
Enter
キーを押すと、 D4 セルには次のように表示されます。 C4 セルに入力されていた日付の値を指定した表示形式を使った文字列に変換しました。
また D5 セルに次のように入力しました。
=TEXT(C5,"h:mm:ss")
Enter
キーを押すと、 D5 セルには次のように表示されます。 C5 セルに入力されていた時刻の値を指定した表示形式を使った文字列に変換しました。
では TEXTJOIN
関数を使って B4 セルと D4 セル、そして B5 セルと D5 セルの値を結合してみます。
日付や時刻の値を文字列に変換したあとで結合することができました。
※ TEXT
関数の使い方については「TEXT関数:対象の数値に指定した表示形式を設定した文字列を取得する」を参照されてください。
TEXTJOIN関数の便利な利用方法
TEXTJOIN
関数の便利な利用方法を下記の記事で紹介しています。
-- --
Excel における TEXTJOIN 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。