スプレッドシートのTEXTJOIN関数の使い方|区切り文字付き結合

スポンサーリンク

TEXTJOIN関数の基本的な使い方(スプレッドシート)

Googleスプレッドシートで「カンマ区切りのリストを作りたい」「空白セルを飛ばして名前を繋ぎたい」と思ったことはありませんか?

CONCATENATE関数や&演算子でも結合はできます。でも区切り文字をいちいち手で入れるのは面倒ですよね。セルが増えるほど数式が長くなって読みにくくなります。

そんなときに使うのがTEXTJOIN関数です。区切り文字を1か所で指定するだけで、まとめて結合してくれます。空白セルのスキップ機能もついているので、データに抜けがあっても安心ですよ。

読み方と語源

TEXTJOIN関数の読み方は「テキストジョイン」です。TEXT(文字列)とJOIN(結合する)を組み合わせた名前です。名前のとおり「文字列を結合する関数」と覚えてください。

構文と引数の説明

TEXTJOIN関数の構文はこちらです。

=TEXTJOIN(区切り文字, 空白を無視, テキスト1, [テキスト2, ...])
引数必須/省略可説明
区切り文字必須テキスト間に挿入する文字列(”,”や” “など)
空白を無視必須TRUEで空白セルをスキップ、FALSEでそのまま結合
テキスト1必須結合したい文字列、セル参照、またはセル範囲
テキスト2, …省略可追加で結合したい文字列やセル範囲(最大252個)

第1引数の区切り文字には空文字””も指定できます。区切りなしで結合したい場合に使ってください。

基本的な書き方の例

A1〜A4に「田中」「佐藤」「鈴木」「高橋」と入っている場合を見てみましょう。

=TEXTJOIN(", ", TRUE, A1:A4)
→ 「田中, 佐藤, 鈴木, 高橋」

カンマ+スペースを区切り文字に指定するだけで、きれいなリストが完成します。CONCATENATE関数なら=CONCATENATE(A1, ", ", A2, ", ", A3, ", ", A4)と書く必要がありますよね。TEXTJOINなら1か所で済むので数式がスッキリしますよ。

空白セルを無視するオプション(TRUE/FALSE)の違い

TEXTJOIN関数の第2引数はTRUEかFALSEを指定します。これが空白セル処理のカギです。違いを実例で確認してみましょう。

TRUEの場合(空白をスキップ)

A1〜A5に「東京」「」「大阪」「」「福岡」と入っている場合です。A2とA4が空白セルです。

=TEXTJOIN("/", TRUE, A1:A5)
→ 「東京/大阪/福岡」

空白セルが無視されて、区切り文字「/」が連続しません。データに抜けがあっても見た目がきれいに仕上がります。

FALSEの場合(空白もそのまま結合)

同じデータでFALSEを指定した場合です。

=TEXTJOIN("/", FALSE, A1:A5)
→ 「東京//大阪//福岡」

空白セルの位置にも区切り文字が入ります。結果として「/」が2つ連続してしまいます。

TRUE/FALSE 比較表

設定空白セルの扱い結果の例おすすめの場面
TRUEスキップする東京/大阪/福岡名簿・リスト・住所など
FALSEそのまま結合東京//大阪//福岡空白位置を残したい場合

実務ではTRUEを使うことがほとんどです。FALSEが必要になるのは「空白の位置を明示的に残したい」という特殊なケースだけですよ。

TEXTJOIN関数の実務パターン集

カンマ区切りのリストを作る

メールの宛先一覧やタグリストを作るときに便利です。A列にメールアドレスが入っている場合はこう書きます。

=TEXTJOIN(", ", TRUE, A1:A10)

セルが10個でも20個でも、数式は変わりません。CONCATENATE関数では区切り文字を毎回手入力する必要があるので、数が多いほどTEXTJOINの便利さを実感できますよ。

複数列を1つの文字列にまとめる

A列に都道府県、B列に市区町村、C列に番地が入っている住所データの場合です。

=TEXTJOIN("", TRUE, A2:C2)

区切り文字に空文字””を指定すると、区切りなしで結合できます。住所の場合はスペースを入れたくないので、この書き方がぴったりです。

マンション名(D列)が空のレコードがあっても大丈夫です。

=TEXTJOIN("", TRUE, A2:D2)
→ D列が空なら「東京都渋谷区1-2-3」
→ D列があれば「東京都渋谷区1-2-3ABCマンション101」

TRUEを指定しているので、空白セルは自動でスキップされます。

条件付きで結合する(IF + TEXTJOIN)

IF関数と組み合わせると、条件に合うデータだけを結合できます。これはTEXTJOIN関数の応用テクニックです。

A列に名前、B列に部署が入っているとします。「営業部」のメンバーだけをカンマ区切りで結合する数式です。

=TEXTJOIN(", ", TRUE, IF(B2:B10="営業部", A2:A10, ""))

IF関数が「営業部なら名前を返し、違えば空文字を返す」という配列を作ります。TEXTJOINはその結果からTRUEで空文字をスキップして結合します。

Googleスプレッドシートは自動で配列を展開するので、特別な操作は不要です。Ctrl+Shift+Enterを押す必要もありませんよ。

IF + TEXTJOIN の活用場面

部署別の名前リスト、カテゴリ別の商品一覧、担当者別のタスク一覧など、フィルタリング+結合のパターンに幅広く使えます。

CONCATENATE・CONCAT・&演算子との違い

4方法比較表

スプレッドシートの文字列結合方法を表にまとめました。

方法セル範囲区切り文字空白スキップ引数上限
TEXTJOIN対応自動(第1引数で指定)対応(第2引数で制御)252
CONCAT対応手動(毎回指定)不可なし
CONCATENATE非対応手動(毎回指定)不可30
& 演算子非対応手動(毎回指定)不可なし

TEXTJOINだけが区切り文字の自動挿入と空白スキップに対応しています。

どれを使うか ── 判断フロー

次の基準で選んでみてください。

  • セルが2〜3個でシンプルに結合 → & 演算子
  • セル範囲をまとめて区切りなしで結合 → CONCAT
  • 区切り文字を自動で入れたい → TEXTJOIN
  • 空白セルをスキップしたい → TEXTJOIN
  • 古いExcelファイルとの互換性が必要 → CONCATENATE

区切り文字か空白スキップのどちらかが必要なら、迷わずTEXTJOINを選んでください。CONCATENATE関数の基本を学んだあとのステップアップとしてぴったりです。CONCAT関数との違いも合わせて確認しておくと使い分けに迷わなくなりますよ。

よくあるエラーと対処法

エラー・症状原因対処法
#VALUE! エラー結合結果が32,767文字を超えた結合する範囲を分割する
区切り文字が2つ連続する第2引数がFALSEで空白セルがあるTRUEに変更して空白をスキップ
数値がシリアル値になる日付セルをそのまま渡したTEXT関数で書式変換してから結合
結果が空になる指定範囲のセルがすべて空データの入力範囲を確認する

日付の書式変換はこう書きます。

=TEXTJOIN("/", TRUE, TEXT(A2, "yyyy"), TEXT(B2, "m"), TEXT(C2, "d"))

日付の表示形式は結合時に失われます。TEXT関数で明示的に指定するのを忘れないでくださいね。結合後のスペース処理にはTRIM関数も覚えておくと便利ですよ。

まとめ

TEXTJOIN関数は、区切り文字を1か所で指定できる文字列結合の決定版です。

おさらいです。

  • 第1引数で区切り文字を一括指定(カンマ、スペース、スラッシュなど)
  • 第2引数でTRUEを指定すれば空白セルを自動スキップ
  • セル範囲に対応しているので、セルが増えても数式は変わらない
  • IF関数との組み合わせで条件付き結合もできる
  • 実務ではTRUE指定がほとんど。迷ったらTRUEで大丈夫

CONCATENATE関数や&演算子から始めた方も、区切り文字や空白処理が必要になったらTEXTJOINに切り替えてみてください。数式がスッキリして管理もラクになりますよ。

タイトルとURLをコピーしました