複数のセルに分かれた文字列を、カンマやハイフンで区切りながら1つにまとめたい。そんな場面、実務でよくありますよね。1つずつ「&」でつなげていくのは面倒ですし、セルが増えるほど数式が長くなってしまいます。
そこで活躍するのがTEXTJOIN関数です。区切り文字を1か所で指定するだけで、複数の文字列をまとめて結合してくれます。
この記事では、基本の書き方から実務で使える活用パターン、よくあるエラーの対処法まで解説します。
この記事は次のような人におすすめ
– 複数のセルの文字列をカンマやハイフンで区切って結合したい
– 空白セルが混ざっていても、区切り文字が連続しないようにしたい
– CONCAT関数や&演算子との違いを知りたい
TEXTJOIN関数とは?
TEXTJOIN関数は、指定した区切り文字を挟みながら複数の文字列を1つに結合する関数です。読み方は「テキストジョイン」で、Text(文字列)+ Join(結合する) がそのまま名前の由来になっています。
TEXTJOIN関数は Excel 2019 / Microsoft 365 以降で使用できます。
Excel 2016以前をお使いの場合
TEXTJOIN関数は使えません。代わりにCONCAT関数や&演算子で区切り文字を手動で挟む方法で対応してください。
TEXTJOIN関数の最大の特徴は2つあります。1つ目は「区切り文字を第1引数で指定できる」こと。2つ目は「空白セルを自動で無視できる」ことです。
たとえば郵便番号の「123」と「4567」をハイフン区切りで結合すると「123-4567」になります。CONCAT関数や&演算子では区切り文字を1つずつ手動で挟む必要がありますが、TEXTJOIN関数なら一発で指定できます。
TEXTJOIN関数の書き方(構文と引数)
基本構文
=TEXTJOIN(区切り文字, 空の文字列を無視, テキスト1, [テキスト2], ...)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 区切り文字 | 必須 | 文字列の間に挿入する区切り文字。"," や "-" など |
| 空の文字列を無視 | 必須 | TRUE = 空白セルを無視 / FALSE = 空白もそのまま結合 |
| テキスト1 | 必須 | 結合したい文字列、セル参照、またはセル範囲 |
| テキスト2, … | 省略可 | 追加で結合したい文字列。最大252個まで指定可能 |
第1引数の「区切り文字」には、どんな文字列でも指定できます。カンマ "," やハイフン "-" はもちろん、スラッシュ "/" やスペース " " なども使えます。区切り文字が不要なら空文字 "" を指定してください。
第2引数の「空の文字列を無視」は、TRUEにしておくのがおすすめです。空白セルがあったときに区切り文字が連続してしまうのを防いでくれます。
結合結果の文字数上限
結合した文字列が32,767文字(セルの文字数上限)を超えると #VALUE! エラーになります。通常の業務ではまず超えることはありませんが、大量データを結合する場合は注意してください。
TEXTJOIN関数の基本的な使い方
カンマ区切りで結合する
A1に「東京」、B1に「大阪」、C1に「名古屋」と入力されている場合を考えてみましょう。
=TEXTJOIN(",", TRUE, A1, B1, C1)
結果: 東京,大阪,名古屋
3つのセルの値がカンマで区切られて1つの文字列になります。&演算子で書くと =A1&","&B1&","&C1 となり、数式が長くなりますよね。
セル範囲を指定して結合する
A1:A5に「営業部」「企画部」「総務部」「人事部」「経理部」と入力されている場合、範囲でまとめて指定できます。
=TEXTJOIN("・", TRUE, A1:A5)
結果: 営業部・企画部・総務部・人事部・経理部
セルが増えても数式を修正する必要がありません。範囲を広げるだけで対応できます。
空白セルを無視する/しないの違い
A1に「りんご」、B1が空白、C1に「みかん」と入力されている場合で比較してみましょう。
TRUE(空白を無視)の場合:
=TEXTJOIN(",", TRUE, A1, B1, C1)
結果: りんご,みかん
FALSE(空白を無視しない)の場合:
=TEXTJOIN(",", FALSE, A1, B1, C1)
結果: りんご,,みかん
TRUEにすると空白セルを飛ばしてくれるので、区切り文字が連続しません。データに空白が混ざる可能性がある場合は、TRUEを指定しておくのが安心です。
TEXTJOIN関数の実務活用パターン
パターン1: 郵便番号をハイフン区切りで結合する
A列に上3桁、B列に下4桁が入力されている郵便番号を「123-4567」形式にまとめます。
=TEXTJOIN("-", TRUE, A2, B2)
結果: 123-4567
住所録の整理やラベル印刷のデータ準備で使えるパターンです。
パターン2: 姓名をスペース区切りで結合する
A列に姓、B列に名が入力されている名簿で、フルネームを作成します。
=TEXTJOIN(" ", TRUE, A2, B2)
結果: 田中 太郎
CONCAT関数でも同じことができますが、区切り文字(スペース)を引数で指定できるぶんTEXTJOIN関数のほうがシンプルです。
パターン3: IF関数と組み合わせて条件に合う値だけを結合する
商品リスト(A2:A10)と在庫フラグ(B2:B10に「あり」「なし」)がある場合に、在庫ありの商品名だけをカンマ区切りで一覧にします。
=TEXTJOIN(",", TRUE, IF(B2:B10="あり", A2:A10, ""))
配列数式について
Excel 2019ではCtrl+Shift+Enterで確定する必要があります。Microsoft 365ではそのままEnterで確定できます。
IF関数で条件に合わないセルを空文字にし、TEXTJOIN関数のTRUEで空文字を無視することで、条件に合う値だけを結合できます。
パターン4: 日付をスラッシュ区切りで結合する
年(A2)、月(B2)、日(C2)が別々のセルに数値で入力されている場合に、「2026/3/17」形式の文字列を作成します。
=TEXTJOIN("/", TRUE, A2, B2, C2)
結果: 2026/3/17
日付として計算に使いたい場合
この結果は文字列です。日付として計算に使いたいときはDATE関数を使ってください。
パターン5: 複数列の値を改行区切りで結合する
A2:A5に入力されたメモを改行区切りで1セルにまとめます。
=TEXTJOIN(CHAR(10), TRUE, A2:A5)
CHAR(10)は改行コードです。セルの書式設定で「折り返して全体を表示する」をオンにすると、セル内で改行された状態で表示されます。
報告書やメール本文の下書きをExcelでまとめるときに便利です。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 結合結果が32,767文字を超えている | 結合するセル数を減らすか、複数回に分けて結合する |
| #VALUE! | 区切り文字に255文字以上の文字列を指定している | 区切り文字は短い文字列にする |
| #NAME? | 関数名のスペルミス(TEXTJOINのスペル間違い) | 数式の関数名を確認する |
| #NAME? | Excel 2016以前で使用している | Excel 2019以降、またはMicrosoft 365にアップグレードする |
| 空白が連続する | 第2引数をFALSEにしている | TRUEに変更して空白セルを無視する |
| 区切り文字が入らない | 第1引数に空文字 "" を指定している | "," や "-" など区切り文字を指定する |
#NAME? エラーが出る場合
TEXTJOIN関数はExcel 2019以降で使用できます。Excel 2016以前のバージョンでは #NAME? エラーになります。その場合はCONCAT関数や&演算子で代用してください。
CONCAT関数・&演算子との違い・使い分け
文字列結合3つの方法を比較
| 比較項目 | TEXTJOIN関数 | CONCAT関数 | &演算子 |
|---|---|---|---|
| 区切り文字の指定 | 第1引数で一括指定 | 手動で挟む | 手動で挟む |
| 空白セルの無視 | 第2引数で設定可能 | 不可 | 不可 |
| セル範囲の指定 | 可能(A1:A10) | 可能(A1:A10) | 不可(1つずつ指定) |
| 対応バージョン | Excel 2019以降 | Excel 2019以降 | 全バージョン |
| 数式のシンプルさ | 最もシンプル | シンプル | セルが多いと長くなる |
使い分けの目安
- 区切り文字が必要 → TEXTJOIN関数を使う
- 区切り文字が不要で単純に結合 → CONCAT関数を使う
- 2〜3個のセルを手軽に結合 → &演算子を使う
- Excel 2016以前 → &演算子かCONCATENATE関数を使う
TEXT系の関連関数
TEXTJOIN関数のほかにも、Excelには文字列を操作する関数がたくさんあります。
| 関数名 | 機能 | 使い分けの目安 |
|---|---|---|
| CONCAT関数 | 文字列を単純に結合 | 区切り文字が不要なとき |
| CONCATENATE関数 | CONCATの旧版 | Excel 2016以前 |
| TEXTSPLIT関数 | 文字列を区切り文字で分割 | TEXTJOINの逆操作 |
| TEXTAFTER関数 | 区切り文字より後ろを抽出 | 特定位置から後ろが欲しいとき |
| TEXTBEFORE関数 | 区切り文字より前を抽出 | 特定位置から前が欲しいとき |
| SUBSTITUTE関数 | 文字列を置換 | 特定の文字を別の文字に変えたいとき |
| TRIM関数 | 余分なスペースを削除 | 結合前にスペースを整理したいとき |
| LEN関数 | 文字数を数える | 結合後の文字数を確認したいとき |
TEXTJOINとTEXTSPLITは逆の関係
TEXTJOIN関数が「区切り文字で結合」なら、TEXTSPLIT関数は「区切り文字で分割」です。セットで覚えておくと、文字列の結合・分割がスムーズに切り替えられます。
まとめ
TEXTJOIN関数のポイントを整理しておきましょう。
- TEXTJOIN関数は 区切り文字を指定して文字列を結合 する関数
- 第2引数をTRUEにすると 空白セルを自動で無視 できる
- セル範囲(A1:A10)をまとめて指定可能
- IF関数と組み合わせれば 条件に合う値だけを結合 できる
- 区切り文字が不要ならCONCAT関数、2〜3個なら&演算子が手軽
区切り文字付きの文字列結合は実務で使う場面が多い操作です。TEXTJOIN関数を使いこなして、作業を効率化してみてください。
関連記事
- CONCAT関数の使い方
- CONCATENATE関数の使い方
- TEXTSPLIT関数の使い方
- TEXTAFTER関数の使い方
- TEXTBEFORE関数の使い方
- SUBSTITUTE関数の使い方
- TRIM関数の使い方
- TEXT関数の使い方
- LEN関数の使い方
- IF関数の使い方
- DATE関数の使い方
- SUM関数の使い方
- VALUE関数の使い方
- IFERROR関数の使い方
関数一覧
どちらの関数一覧からでも各関数の解説記事へアクセスできます。
