Excel関数 逆引き集 | 文字列を結合 → TEXTJOIN

Excel
スポンサーリンク

概要

TEXTJOIN は「たくさんの文字列を、区切り文字を挟みながら一気にくっつける」ための関数です。
カンマ区切りの一覧や、「氏名+部署+会社名」を 1 セルにまとめたいときに使います。

特徴は次の 2 点です。
区切り文字(例:”, ” や “/”)を自動で間に入れてくれること。
空白セルを無視するかどうかを TRUE/FALSE で選べることです。


TEXTJOIN の基本構文と考え方

TEXTJOIN の書式

基本の書き方はこうです。

=TEXTJOIN(区切り文字, 空白を無視するか, 文字列1, [文字列2] , …)

区切り文字
結合したい文字列と文字列の間に入れる文字です。
例:「, 」「 / 」「・」「 」など。空文字 "" を入れれば「つなぐだけ」で区切りなしになります。

空白を無視するか
TRUE を指定すると空白セルは飛ばしてくれます。
FALSE だと空白も「空の要素」として扱われ、区切り文字だけが連続で出ることがあります。

文字列1, 文字列2, …
結合したいセルや範囲です。
範囲をそのまま渡せるのが便利なポイントです。


基本パターン:カンマ区切りで結合する

1 行ぶんをカンマ区切りでつなぐ

B2:E2 に「東京」「大阪」「名古屋」「」のようにデータがあるとします(E2 は空白とします)。
これを「東京, 大阪, 名古屋」のように 1 セルにまとめたい場合の式です。

=TEXTJOIN(", ", TRUE, B2:E2)

区切り文字は ", "(カンマ+半角スペース)。
TRUE にしているので、空白セルは無視され、余計なカンマが出ません。

もし空白も含めて、その位置も残したいなら FALSE にします。

=TEXTJOIN(", ", FALSE, B2:E2)

この場合、空白セルがあると「,, 」のように区切りだけが続くことがあります。


応用パターン:氏名+部署+会社名を 1 つにまとめる

固定の項目を「ラベル付き」で結合する

A2 に氏名、B2 に部署、C2 に会社名が入っているとします。
これを

田中太郎(営業部/〇〇株式会社)

のような文字列にしたいときの例です。

=TEXTJOIN(" ", TRUE,
  A2,
  "(" & B2,
  "/" & C2 & ")"
)

TEXTJOIN の「文字列」の位置には、単なるセル参照だけでなく、
"(" & B2 のような式も置けます。
区切り文字には半角スペース " " を指定して、見やすくしています。


応用パターン:改行で結合する(メッセージ生成)

TEXTJOIN × CHAR(10) で縦に並べる

複数行のメッセージを 1 セルに収めたいときは、区切り文字に改行コード CHAR(10) を使います。

=TEXTJOIN(CHAR(10), TRUE, A2:A5)

A2:A5 に入った複数行のテキストを、
1 セルの中で「改行しながら」結合できます。

セルの書式設定で「折り返して全体を表示する」にチェックを入れると、きれいに表示されます。


応用パターン:チェックされた項目だけ結合する

チェックボックスの「ON の項目名だけ」つなぐイメージ

例えば、A2:A10 に項目名、B2:B10 にフラグ(1=選択、空白=未選択)があるとします。
「選択された項目だけを ‘ / ‘ 区切りで結合したい」場合のような場面です。

動的配列が使える環境なら、FILTER と組み合わせてこう書けます。

=TEXTJOIN("/", TRUE, FILTER(A2:A10, B2:B10=1))

B列が 1 の行だけを FILTER で取り出し、それらを TEXTJOIN で結合しています。
TRUE なので、FILTER の結果に空白があっても無視されます。


応用パターン:数値や日付と組み合わせる

TEXT と組み合わせて「きれいな書式」で結合する

TEXTJOIN 自体は「文字列を結合する」関数なので、
数値をそのまま渡すと、そのままの数値としてつながります。

「金額は 3 桁区切り」「日付は yyyy/mm/dd」など、見せ方を整えたいときは、
TEXT 関数とセットで使うのが定番です。

=TEXTJOIN(" / ", TRUE,
  A2,
  TEXT(B2, "yyyy/mm/dd"),
  TEXT(C2, "¥#,##0")
)

A2=顧客名、B2=日付、C2=金額のような場合に、
「顧客名 / 2025/01/15 / ¥12,345」のような文字列を作れます。


例題

問題1

B2:E2 に都市名が入っています(一部は空白かもしれません)。
空白セルを無視して、都市名を「, 」区切りで 1 セルに結合する式を書いてください。

例:東京/大阪/名古屋 → 「東京, 大阪, 名古屋」

解答例

=TEXTJOIN(", ", TRUE, B2:E2)

問題2

A2 に氏名、B2 に部署、C2 に会社名が入っています。
「氏名(部署/会社名)」という形の文字列を作る TEXTJOIN の式を書いてください。
空白は無視して構いません。

解答例

=TEXTJOIN(" ", TRUE,
  A2,
  "(" & B2,
  "/" & C2 & ")"
)

問題3

A2:A5 に 4 行ぶんのメッセージが入っています。
これらを 1 セルの中で改行しながら結合する TEXTJOIN の式を書いてください。
(改行には CHAR(10) を使います)

解答例

=TEXTJOIN(CHAR(10), TRUE, A2:A5)

問題4

A2:A10 に項目名、B2:B10 にフラグ(1=選択、空白=未選択)が入っています。
フラグが 1 の項目名だけを「/」区切りで結合する TEXTJOIN+FILTER の式を書いてください。

解答例

=TEXTJOIN("/", TRUE, FILTER(A2:A10, B2:B10=1))

問題5

A2 に顧客名、B2 に日付、C2 に金額が入っています。
これらを「顧客名 / yyyy/mm/dd / ¥#,##0」の形式で結合する TEXTJOIN+TEXT の式を書いてください。

解答例

=TEXTJOIN(" / ", TRUE,
  A2,
  TEXT(B2, "yyyy/mm/dd"),
  TEXT(C2, "¥#,##0")
)

まとめ

TEXTJOIN のキモは「区切り文字」と「空白セルを無視するかどうか」の 2 つです。
範囲をそのまま渡せて、空白もきれいに飛ばせるので、
CONCATENATE や & でゴチャゴチャ書いていた結合処理を、すっきり一行にまとめられます。

まずはこの基本形を体に覚えさせておくと便利です。

=TEXTJOIN(区切り文字, TRUE, 結合したい範囲やセル)

ここから、改行・FILTER・TEXT との組み合わせに広げていくと、
「説明文」「ラベル付き情報」「選択された項目一覧」など、
実務でよくあるテキスト出力を自在にデザインできるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました