TEXTJOIN 関数:構文、例とエラーの解決
2026-10-13 更新 · 無料 · Excel と Google Sheets に対応
構文
=TEXTJOIN(区切り文字, 空のセルを無視, テキスト1, [テキスト2], ...)クイック回答
TEXTJOIN は選んだ区切り文字で複数の値を 1 つのセルに結合します:=TEXTJOIN(", ", TRUE, A2:A8) なら 1 列が 1 セルの「Doe, Smith, Lee」になります。TRUE は空セルをスキップ、FALSE は空きスロットを残します——結果はテキストなので、数値として計算には使えません。
構文
=TEXTJOIN(区切り文字, 空のセルを無視, テキスト1, [テキスト2], ...)| 引数 | 意味 |
|---|---|
| 区切り文字 | 値と値の間に置くテキスト:", " ならコンマ+空白のリスト、"-" ならコード、CHAR(10) ならセル内改行。引用符で囲むか、セル参照で指定します。 |
| 空のセルを無視 | TRUE は空セルをスキップして隙間を残しません;FALSE は空きスロットを残します。既定値がないため、必ず TRUE か FALSE を書きます。 |
| テキスト1, [テキスト2], ... | 結合する値:単一セル、範囲全体、またはその混合——テキスト引数は最大 252 個。A2:A8 のような範囲は全セルを順に結合します。 |
地域設定によっては、引数がコンマではなくセミコロンで区切られます:=TEXTJOIN(", "; TRUE; A2:A8)。コンマを小数点として使う国ではこれが標準です。
基本例
=TEXTJOIN(", ", TRUE, A2:A8)定番の使い方:1 列全体が「Doe, Smith, Lee」という読めるリスト 1 つに折りたたまれ、TRUE が途中の空セルを捨てます。サマリー、メールの宛先行、生の範囲が 1 行 1 値でダラダラ並ぶあらゆる場面に最適です。
=TEXTJOIN(CHAR(10), TRUE, B2:B10)本物の改行で 1 つのセルに結合します——住所ブロック、チェックリスト、ミニレポートに。対象セルの「折り返して全体を表示する」をオンにしないと、改行が 1 長行に見えます。
=TEXTJOIN("-", TRUE, A2, B2, C2)部品からコードやキーを作ります:SKU、注文番号、スラッグ化したタイトルなど。各部品の間にちょうど 1 つのハイフンが入るので、区切り文字を手打ちする必要はもうありません。
=TEXTJOIN(", ", FALSE, A2:A8)同じリストを FALSE で:空セルは自分の位置を保ち、欠落は「, ,」と表示されます——リスト内の位置自体に意味があり、隙間を見せ続けたいときにちょうど良い指定です。
TEXTJOIN の結果はテキストです——合計も平均も数値としての照合もできない 1 つの値です。結合結果を計算に使うなら、元のセルを残すか、VALUE で数値に戻してください。
よくあるエラーと修正方法
| 症状 | 最も一般的な原因 | 修正方法 |
|---|---|---|
| #NAME? | TEXTJOIN のスペルミス——または Excel が 2019 より古い・Microsoft 365 でない(関数が存在しない)、または Excel が別の言語版で関数名がローカライズされている(UNIRCADENAS、JOINDRE.TEXTE、TEXTVERKETTEN)。 | =TEXT と入力してオートコンプリートで関数の存在を確認します。なければ Office を更新するか、対応する言語版の Excel でファイルを開きます。 |
| #VALUE! | 結合結果が 32,767 文字を超えました——セルのハードリミットです。長いテキストの巨大範囲は黙ってこのエラーに溢れます。 | 範囲を複数の TEXTJOIN セルに分けて(A2:A500、A501:A1000…)それらを結合するか、元テキストを短くします。 |
| リストが 1 長行に潰れる | 改行は入っているのにセルが表示していない:CHAR(10) には対象セルの「折り返して全体を表示する」が必要です。 | セルを選択して折り返しをオンに——CHAR(10) の改行がすぐ本物の新しい行として表示されます。 |
| 「, ,」のような隙間が出る | 空のセルを無視が FALSE になっており、空セルが出力内に位置を保っています。 | 第 2 引数を TRUE に変えます。隙間自体がデータ問題の兆候なら、先に空白を整えます。 |
| 区切り文字が先頭や末尾に出る | 第 1 引数に範囲や間違ったテキストを渡した:=TEXTJOIN(A2:A8, TRUE, ...) はセルを区切り文字として使っており、末尾に空白付きの区切り文字は最後に 1 つ見えてしまいます。 | 区切り文字の文字列を引用符付きで第 1 引数に置きます——=TEXTJOIN(", ", TRUE, A2:A8)——余分な空白がないかも確認します。 |
見えない空白も結合リストを壊します:「Doe 」は「Doe , Smith」のように区切り文字の前に隙間を残します。元の範囲を先に整えれば、結合リストはぴったり揃います。
TEXTJOIN と CONCAT・CONCATENATE の比較
| TEXTJOIN | CONCAT / CONCATENATE | |
|---|---|---|
| 区切り文字 | 引数 1 つで結合全体をカバー——値ごとの間に自動で入る | なし——1 つ 1 つの間をすべて手打ち |
| 空セル | 空のセルを無視の引数 1 つでスキップと保持を切り替え | 空セルは空文字列として結合——隙間が出て事前の掃除が必要 |
| 範囲 | 範囲全体を直接受け取る:=TEXTJOIN(", ", TRUE, A2:A8) | 単一セルとリテラルのみ——範囲を渡すとスピルエラー、または区切りなしで連結 |
| 使えるバージョン | Excel 2019 以降・Microsoft 365(Google Sheets も対応) | 全バージョン——CONCAT は 2016 から、CONCATENATE は最初期から(Google Sheets も対応) |
=CONCATENATE(A2, " ", B2)旧式の書き方:区切り文字をすべて手打ちで、3 セルの結合ですでに 2 つ必要です。既知の 2〜3 セルならこれで十分ですが、1 列全体なら TEXTJOIN+空のセルを無視のほうが短く、空セルに強く、1 年後に読んでも分かりやすいです。
Google Sheets での TEXTJOIN
Google Sheets は Excel と同じ 3 つの引数・同じ挙動の TEXTJOIN をサポートしており、上の数式はそのまま貼り付けられます。
- コンマを小数点に使う地域設定(ヨーロッパとラテンアメリカの多く)では、引数の区切りにセミコロンを入力します:=TEXTJOIN(", "; TRUE; A2:A8)。Excel も同じ挙動です。
- Sheets には JOIN もあり、TEXTJOIN と似ていますが空セルを自動で無視します——TRUE/FALSE を覚える必要がありません。
- 逆の操作もあります:SPLIT は 1 つのセルを複数に分割し、TEXTJOIN の鏡像です。
- Excel 同様、出力はテキストです:上限は 32,767 文字、文字列に結合された数値は数値ではなくなります。
制限と上級テクニック
- TEXTJOIN はデータ型を消します:日付・通貨・小数は表示テキストのまま結合され、結果は二度と計算に使えません。数値が大事なら元のセルを残します。
- TRUE は空文字列 "" だけのセルも吞み込みます——掃除済みデータには便利ですが、空文字列自体に意味があった場合は危険です。
- 区切り文字は値と値の間だけに現れます——最初の値の前や最後の値の後には決して付きません。先頭や末尾に区切り文字が見えたら、引数の順番が間違っています。
- 数千行の結合は編集のたびに再計算されます:非常に大きな範囲では、ライブ数式の代わりに Power Query や値としての一回貼り付けを検討しましょう。
- TEXTSPLIT は逆の操作です:1 セルを列や行に戻します。リストの受け渡しには結合、解凍には分割を。
TEXTJOIN はプレゼンテーション層として扱います:まず値を整えてから結合する。結合リストの出来栄えは、食わせるセルの出来栄えそのもの——元を磨けば、結果に手直しは要りません。
関連ツール
関連関数
よくある質問
Excel の TEXTJOIN は何をしますか?
複数のテキスト値を 1 つのセルに結合し、間に選んだ区切り文字を置きます:=TEXTJOIN(", ", TRUE, A2:A8) なら 1 列が「Doe, Smith, Lee」に。TRUE 引数で途中の空セルをスキップします。
どの Excel バージョンに TEXTJOIN がありますか?
Excel 2019 以降と Microsoft 365 です。Excel 2016 以前には関数が存在せず——#NAME? がサインです——CONCATENATE か & 演算子で代用します。
改行で値を結合するには?
区切り文字に CHAR(10) を使います:=TEXTJOIN(CHAR(10), TRUE, A2:A8)。各値が 1 つのセル内で自分の行に落ちます——「折り返して全体を表示する」をオンにしないと改行が 1 長行に隠れます。
TEXTJOIN が #VALUE! を返すのはなぜ?
結合された文字列が 32,767 文字——1 セルのハードリミット——を超えたからです。範囲を複数の TEXTJOIN に分けて結果を結合するか、元テキストを削ります。
TEXTJOIN と CONCAT の違いは?
CONCAT は区切りなしで値を貼り付け、単一セルしか受け取りません;TEXTJOIN は値ごとの間に区切り文字を入れ、スイッチ 1 つで空セルをスキップできます。リストや範囲では、TEXTJOIN が CONCAT と CONCATENATE の両方を置き換えます。
TEXTJOIN で空セルを無視するには?
第 2 引数を TRUE にします:=TEXTJOIN(", ", TRUE, A2:A8)。空白は出力に隙間を残しません。FALSE は空きスロットを残します——位置に意味があり、隙間を見せたいときに使います。
TEXTJOIN は Google Sheets で使えますか?
はい——同じ名前・同じ 3 つの引数・同じ挙動です。コンマを小数点に使う地域設定でのみセミコロンになります。Sheets には空白を自動で無視する JOIN と、逆の操作の SPLIT もあります。
自分のファイルで試す準備はできましたか?
Excelの列を結合を開く — 無料