• 作成日 : 2025年8月25日

TEXTJOIN関数の使い方:エクセルで複数の文字列を区切り文字で結合する方法

TEXTJOIN関数は、複数のセルや範囲の文字列を指定した区切り文字で結合するエクセルの文字列操作関数です。住所の結合、メールアドレスリストの作成、CSVデータの生成、レポートの文章作成など、複数のデータを効率的に結合する必要がある様々な場面で活用されています。

Excel 2016以降で使用可能なこの関数は、従来のCONCATENATE関数では困難だった柔軟な文字列結合を実現します。

本記事では、TEXTJOIN関数の基本的な使い方から実務での応用例、空白セルの処理方法、動的な区切り文字の設定、そしてよくある使用上の注意点とその対策まで、わかりやすく解説します。

TEXTJOIN関数の使い方

TEXTJOIN関数とは

TEXTJOIN関数は、複数の文字列を指定した区切り文字で結合する関数です。この関数の最大の特徴は、範囲指定が可能で、空白セルを無視するオプションがあることです。従来のCONCATENATE関数や&演算子では、各セルを個別に指定する必要がありましたが、TEXTJOIN関数では範囲を一括指定できるため、大量のデータを効率的に結合できます。

たとえば、顧客の姓と名を結合したり、複数の商品名をカンマ区切りでリスト化したり、住所の各要素を結合したりする際に、簡潔な数式で実現できます。TEXTJOIN関数はExcel 2016以降のバージョンで利用可能で、Office 365では標準機能として搭載されています。

参考:TEXTJOIN 関数 – Microsoft サポート

基本構文

TEXTJOIN関数の構文は次のとおりです。

=TEXTJOIN(区切り文字, 空白を無視, テキスト1, テキスト2, …)

各引数について詳しく説明します。

  • 区切り文字:結合する文字列の間に挿入する文字を指定し、引用符(””)で囲みます。カンマ、スペース、ハイフンなど、任意の文字列を使用できます。
  • 空白を無視:TRUEまたはFALSEを指定します。TRUEの場合、空白セルをスキップします。FALSEの場合、空白セルも含めて結合します。
  • テキスト1, テキスト2, …:結合する文字列、セル参照、または範囲を指定します。最大252個まで指定可能です。

基本的な使用例

実際にTEXTJOIN関数を使用してみましょう。

単純な文字列の結合

=TEXTJOIN(” “, TRUE, “東京都”, “渋谷区”, “渋谷1-1-1″)

// 結果:”東京都 渋谷区 渋谷1-1-1”

セル範囲の結合

A1:A5に「りんご」「」「みかん」「」「ぶどう」

=TEXTJOIN(“、”, TRUE, A1:A5)

// 結果:”りんご、みかん、ぶどう”(空白セルは無視)

空白を含めた結合

=TEXTJOIN(“、”, FALSE, A1:A5)

// 結果:”りんご、、みかん、、ぶどう”(空白も区切り文字で表現)

複数範囲の結合

=TEXTJOIN(“-“, TRUE, A1:A3, C1:C3, E1:E3)

// 3つの範囲を結合

従来の結合方法との比較

TEXTJOIN関数の優位性を理解するため、従来の方法と比較します。

CONCATENATE関数での結合

=CONCATENATE(A1, “, “, A2, “, “, A3, “, “, A4, “, “, A5)

// 各セルと区切り文字を個別に指定する必要がある

&演算子での結合

=A1 & “, ” & A2 & “, ” & A3 & “, ” & A4 & “, ” & A5

// 同様に煩雑

TEXTJOIN関数

=TEXTJOIN(“, “, TRUE, A1:A5)

// シンプルで効率的

TEXTJOIN関数の利用シーン

住所データの結合

分割された住所要素を結合して完全な住所を作成します。

都道府県から番地までの結合:

都道府県:東京都(A2)

市区町村:渋谷区(B2)

町名番地:渋谷1-1-1(C2)

建物名:○○ビル5F(D2)

=TEXTJOIN(” “, TRUE, A2:D2)

// 結果:”東京都 渋谷区 渋谷1-1-1 ○○ビル5F”

郵便番号を含む住所フォーマット

=TEXTJOIN(” “, TRUE, “〒”&郵便番号, 都道府県, 市区町村, 番地)

メールアドレスリストの作成

複数のメールアドレスを適切な形式で結合します。

セミコロン区切りのメールリスト

=TEXTJOIN(“; “, TRUE, A:A)

// Outlookなどで使用可能な形式

BCCフィールド用のカンマ区切り

=TEXTJOIN(“, “, TRUE, メールアドレス範囲)

部門別メールリスト

=TEXTJOIN(“; “, TRUE, IF(部門=”営業”, メールアドレス, “”))

レポート・文書の作成

動的に変化するデータを含む文章を作成します。

売上レポートの文章生成

=”本日の売上は” & TEXTJOIN(“、”, TRUE,

IF(売上>0, 商品名&”:”&TEXT(売上,”#,##0円”), “”)) & “でした。”

在庫状況の報告文

=TEXTJOIN(“、”, TRUE, IF(在庫<10, 商品名&”(残り”&在庫&”個)”, “”))

& “の在庫が少なくなっています。”

CSVデータの生成

データベースや他システム用のCSV形式データを作成します。

カンマ区切りデータ:

=TEXTJOIN(“,”, FALSE, A2:F2)

// 1行分のCSVデータ

タブ区切りデータ:

=TEXTJOIN( CHAR (9), TRUE, データ範囲)

// TSV形式

引用符付きCSV:

=TEXTJOIN(“,”, TRUE, “””” & A2:F2 & “”””)

タグ・キーワードの管理

複数のタグやキーワードを結合して管理します。

ハッシュタグの生成:

=”#”&TEXTJOIN(” #”, TRUE, タグ範囲)

A1に「エクセル」、A2に「関数」、A3にTEXTJOINが入力されているとき

// 結果:”#エクセル #関数 #TEXTJOIN”

検索キーワードの結合:

=TEXTJOIN(” OR “, TRUE, キーワード範囲)

// 検索クエリの生成

TEXTJOIN関数の応用・他関数との組み合わせ

IF関数との条件付き結合

特定の条件を満たすデータのみを結合します。

条件付き結合(配列数式):

=TEXTJOIN(“, “, TRUE, IF(売上>100000, 商品名, “”))

// 売上10万円以上の商品のみ

複数条件での結合:

=TEXTJOIN(“, “, TRUE,

IF((カテゴリ=”食品”)*(在庫>0), 商品名, “”))

UNIQUE関数との組み合わせ

重複を除いた値の結合(Excel 365):

=TEXTJOIN(“, “, TRUE, UNIQUE(A:A))

ソート済みユニーク値:

=TEXTJOIN(“, “, TRUE, SORT(UNIQUE(A:A)))

TEXT関数での書式設定

数値や日付を適切な形式で結合します。

金額の結合:

=TEXTJOIN(” / “, TRUE, TEXT(金額範囲, “#,##0円”))

// 結果:”1,000円 / 2,500円 / 3,800円”

日付の結合:

=TEXTJOIN(” → “, TRUE, TEXT(日付範囲, “m/d”))

// 結果:”4/1 → 4/15 → 4/30″

FILTER関数との動的結合

条件に応じて動的に変化する結合(Excel 365):

=TEXTJOIN(“, “, TRUE, FILTER(商品名, 在庫>0))

// 在庫がある商品のみを結合

改行を含む結合

セル内改行を使用した縦方向の結合:

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

// セルの書式設定で「折り返して全体を表示」を有効に

SUBSTITUTE関数での後処理

結合後の文字列を整形します。

=SUBSTITUTE(TEXTJOIN(“,”, TRUE, A:A), “,,”, “,”)

// 連続するカンマを1つに

動的な区切り文字

IF関数を用いると、条件によって区切り文字を変更できます。

=TEXTJOIN(IF(条件, “、”, “, “), TRUE, データ範囲)

TEXTJOIN関数のよくあるエラーと対策

#NAME?エラーの対処

Excel 2016より前のバージョンで発生します。

対策1:代替方法の使用

// 旧バージョン用の代替

=CONCATENATE(A1, “, “, A2, “, “, A3)

対策2:VBAでユーザー定義関数を作成

文字数制限への対処

結合結果が32,767文字を超える場合:

=IF(LEN(TEXTJOIN(“,”, TRUE, A:A))>30000,

“データが多すぎます”,

TEXTJOIN(“,”, TRUE, A:A))

配列数式での注意点

条件付き結合では配列数式として入力:

=TEXTJOIN(“,”, TRUE, IF(条件, 値, “”))

// Ctrl+Shift+Enterで確定(Excel 365以外)

空白と空文字列の違い

空白セルと空文字列(””)の扱い:

// 空文字列も除外したい場合

=TEXTJOIN(“,”, TRUE, IF(LEN(A:A)>0, A:A, “”))

循環参照の回避

結合結果を同じ範囲に含めないよう注意:

誤:=TEXTJOIN(“,”, TRUE, A1:A10) をA5に入力

正:=TEXTJOIN(“,”, TRUE, A1:A4, A6:A10)をA5に入力

パフォーマンスの最適化

大量データでの処理速度改善:

// 列全体より必要な範囲のみ指定

非効率:=TEXTJOIN(“,”, TRUE, A:A)

効率的:=TEXTJOIN(“,”, TRUE, A1:A1000)

特殊文字の扱い

区切り文字に特殊文字を使用する場合:

改行:=TEXTJOIN( CHAR (10), TRUE, 範囲)

タブ:=TEXTJOIN( CHAR (9), TRUE, 範囲)

複数の文字列を柔軟に結合できるTEXTJOIN関数

TEXTJOIN関数は、指定した区切り文字を使って複数の文字列を一括で結合できるExcelの関数で、空白セルを無視するオプションや範囲指定の柔軟性が特長です。

住所データやメールリストの作成、タグやキーワードの結合、CSV出力など幅広い用途に適しており、従来のCONCATENATEや&演算子では煩雑だった作業を効率化できます。

特にIFやFILTER関数と組み合わせることで、条件に応じた動的な文字列処理や、レポート文章の自動生成にも活用でき、Excel 365ではUNIQUEやSORTとの連携も可能です。

最大結合数や文字数制限といった仕様にも配慮しながら、TEXTJOIN関数を使いこなすことで、業務の自動化とデータ整形の生産性が大きく向上します。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事