- 作成日 : 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関数を使いこなすことで、業務の自動化とデータ整形の生産性が大きく向上します。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
Excel帳票とは?利用できる機能や帳票作成ツールを解説
請求書、見積書、報告書、勤怠表など、多くの企業では帳票をExcelで作成・管理しています。本記事では、Excel帳票とは何か、その概要から活用事例、最新のExcel機能やExcelと連携できる帳票ツールについて解説します。加えて、帳票作成時…
詳しくみるIMSUB関数の使い方:複素数の減算を計算する方法
IMSUB関数は、2つの複素数の差を計算する関数です。電気工学での回路解析、信号処理、制御工学、物理学の波動計算など、複素数演算が必要な技術計算で活用されます。例えば、交流回路でのインピーダンスの差を計算したり、信号の位相差を解析したり、振…
詳しくみるエクセルで二乗を計算・表示する方法をわかりやすく解説
エクセルは数値計算を簡単に行える強力なツールです。本記事では、エクセルを使って数値の二乗を計算し、表示する方法について詳しく解説します。基本的な計算方法から、関数を活用した効率的な手法まで、段階を追って説明しますので、初心者の方でもスムーズ…
詳しくみるエクセルでセルを塗りつぶすショートカットキーを解説
Microsoft Excelを使用する際、データの可視化や整理が求められる場面は多くあります。その際、セルを色で塗りつぶすことで、重要な情報や項目を強調することが可能です。この記事では、Excelでセルを塗りつぶすためのショートカットキー…
詳しくみるHOUR関数の使い方:時刻データから時間を抽出する方法
HOUR関数は、時刻データから「時」の部分だけを取り出す関数です。勤怠管理での労働時間計算、スケジュール管理での時間帯別集計、24時間営業の売上分析など、時間に関するデータ処理で頻繁に使用されます。例えば、「14:30:45」という時刻から…
詳しくみるGETPIVOTDATA関数の使い方:ピボットテーブルからデータを自在に取り出す
GETPIVOTDATA関数は、ピボットテーブルから特定のデータを抽出できるエクセルの便利な関数です。ピボットテーブルのレイアウトが変更されても、指定した条件のデータを確実に取得できるため、レポート作成やダッシュボード構築に役立ちます。複雑…
詳しくみる