TEXTJOIN関数の使い方|区切り文字を入れて範囲をまとめて連結

執筆者:

カテゴリ:

TEXTJOINは、区切り文字を入れながら、複数のセルをまとめて連結する関数です。

CONCATENATE& と違い、範囲をそのまま渡せて、空欄を自動で飛ばせます。 文字列連結の場面では、まずこれを検討してください。

書式

=TEXTJOIN(区切り文字, 空欄を無視するか, 文字列1, [文字列2], ...)
引数 内容
区切り文字 間に入れる文字。不要なら ""
空欄を無視するか TRUE=空欄を飛ばす / FALSE=空欄も区切り文字を入れる
文字列 セル、範囲、直接入力のいずれも可

第2引数はほぼ TRUE で使います。

基本の使い方

A
1 東京
2 大阪
3 (空欄)
4 名古屋
=TEXTJOIN(", ", TRUE, A1:A4)

結果:東京, 大阪, 名古屋

空欄が飛ばされているので、東京, 大阪, , 名古屋 のような区切り文字の連続が起きません。

第2引数を FALSE にすると空欄も1件として扱われます。

=TEXTJOIN(", ", FALSE, A1:A4)   → 東京, 大阪, , 名古屋

列の位置を揃えたいときだけ FALSE を使ってください。

CONCATENATEとの違い

CONCATENATE TEXTJOIN
範囲をそのまま渡す 不安定 できる
区切り文字 手で挟む 引数で指定
空欄を飛ばす できない できる

TEXTJOINで置き換えられない場面はほぼありません。

条件に合うものだけ連結する

TEXTJOINが最も活きる使い方です。FILTER と組み合わせます。

A B
1 東京 山田
2 大阪 鈴木
3 東京 佐藤

東京の担当者だけを並べます。

=TEXTJOIN("、", TRUE, FILTER(B1:B3, A1:A3="東京"))

結果:山田、佐藤

「1対多」の関係を1セルにまとめられるのがこの組み合わせの価値です。VLOOKUP は1件しか返せませんが、これなら該当を全部つなげられます。

支店ごとに一覧を作るなら、UNIQUE と組み合わせます。

E2:  =UNIQUE(FILTER(A1:A100, A1:A100<>""))
F2:  =TEXTJOIN("、", TRUE, FILTER($B$1:$B$100, $A$1:$A$100=E2))

F2を下にコピーすれば、支店別の担当者一覧が完成します。

改行で連結する

CHAR(10) を区切り文字にします。

=TEXTJOIN(CHAR(10), TRUE, A1:A10)

セルの書式で「折り返し」を有効にしないと、改行が見えません。 数式が正しくても1行に見えるので、まず書式を確認してください。

重複を除いて連結する

UNIQUE を挟みます。

=TEXTJOIN("、", TRUE, UNIQUE(FILTER(A1:A100, A1:A100<>"")))

並べ替えてから連結する

SORT を挟みます。

=TEXTJOIN("、", TRUE, SORT(FILTER(A1:A100, A1:A100<>"")))

FILTER → UNIQUE → SORT → TEXTJOIN の順で重ねると、「条件に合うものを、重複なしで、並べ替えて、1セルにまとめる」が1本の数式で書けます。

=TEXTJOIN("、", TRUE, SORT(UNIQUE(FILTER(B1:B100, A1:A100="東京"))))

日付や数値を連結する

そのまま渡すと内部の数値が出ます。TEXT で書式を指定してください。

=TEXTJOIN("、", TRUE, ARRAYFORMULA(TEXT(A1:A10, "m/d")))

ARRAYFORMULA で包むことで、範囲の全要素に TEXT が効きます。

注意点

結果の文字数に上限があります。 1セルに入る文字数(約5万文字)を超えるとエラーになります。数千件を連結するような使い方はできません。

元データが変わると結果も変わります。 これは利点でもありますが、「その時点の一覧」を保存したいなら、結果をコピーして値貼り付けしてください。

エラーの対処

#VALUE! が出る

  • – 区切り文字が指定されていない("" でも必ず書く)
  • – 第2引数が抜けている

引数が3つ必要な点を確認してください。

空欄が飛ばされない

第2引数が FALSE になっています。TRUE にしてください。

なお、数式が返した ""(空文字)は空欄として扱われるので、TRUE なら飛ばされます。

結果が長すぎて切れる

文字数の上限に達しています。FILTER で件数を絞るか、複数セルに分割してください。

Excelとの違い

TEXTJOINはExcelにもあります(Microsoft 365 / Excel 2019以降)。書式・挙動ともに同じです。

Excel 2016以前では使えません。その場合は CONCATENATE& で書くか、作業列を使った方法になります。

条件付き連結(FILTER との組み合わせ)は、ExcelでもFILTER関数が使える環境(365/2021以降)なら同じ書き方ができます。

まとめ

  • – 書式は =TEXTJOIN(区切り文字, TRUE, 範囲)
  • 範囲をそのまま渡せて、空欄を自動で飛ばせる
  • CONCATENATE の上位互換。基本はこちらを使う
  • FILTER と組み合わせると条件付き連結ができる
  • FILTER → UNIQUE → SORT → TEXTJOIN で1対多の一覧が1本の数式に
  • – 改行は CHAR(10)。セルの折り返し設定も必要

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です