Excel関数 逆引き集 | 空白を除いて結合 → TEXTJOIN(…,TRUE)

Excel
スポンサーリンク

概要

複数のセルを結合したいとき、
「空白セルが混ざっていて、余計な区切り文字が出てしまう…」
という経験はありませんか。

そんなときに最強なのが TEXTJOIN(…, TRUE) です。

TEXTJOIN の第 2 引数を TRUE にすると、
空白セルを自動でスキップして結合 してくれます。

  • 空白セルがあっても区切り文字が連続しない
  • 範囲をそのまま渡せる
  • 1 行の式でスッキリ書ける

初心者でもすぐ使えるように、テンプレートと例題つきで丁寧に解説します。


TEXTJOIN の基本

TEXTJOIN の書式

=TEXTJOIN(区切り文字, 空白を無視するか, 結合したい範囲)

区切り文字
… 文字列と文字列の間に入れる記号(例:「, 」「/」「・」「 」など)

空白を無視するか
… TRUE を指定すると空白セルを飛ばす
… FALSE だと空白セルも区切り対象に含まれる

結合したい範囲
… A2:A10 のように範囲をそのまま渡せる


基本パターン:空白を除いてカンマ区切りで結合

空白セルを無視して一覧を作る

B2:E2 に都市名が入っているとします(空白も混ざる想定)。

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

TRUE にしているので、空白セルは無視され、
「東京, 大阪, 名古屋」のようにきれいに並びます。


パターン1:氏名・部署・会社名を空白除外で結合

固定文字を混ぜながら結合する

A2=氏名、B2=部署、C2=会社名とします。

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

空白セルがあっても自動でスキップされるため、
「部署だけ空白」のようなケースでも崩れません。


パターン2:改行区切りで空白を除いて結合

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

A2:A5 に複数行のメッセージが入っているとします。

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

空白行は飛ばされ、
1 セルの中で改行しながら結合されます。

※セルの書式設定 →「折り返して全体を表示する」にチェックが必要です。


パターン3:チェックされた項目だけ結合(空白除外)

FILTER と組み合わせて「選択された項目だけ」つなぐ

A2:A10=項目名
B2:B10=フラグ(1=選択、空白=未選択)

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

B列が 1 の行だけ抽出し、それらを「/」区切りで結合します。
空白は自動で無視されるので、非常にきれいにまとまります。


パターン4:数値や日付を整形してから結合

TEXT と組み合わせて見た目を整える

A2=顧客名
B2=日付
C2=金額

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

空白セルがあっても飛ばしてくれるので、
「日付だけ空白」「金額だけ空白」でも崩れません。


パターン5:範囲をそのまま渡して一気に結合

TEXTJOIN の最大の強み

& では 1 つずつつなぐ必要がありますが、
TEXTJOIN は 範囲を丸ごと渡せる のが圧倒的に便利です。

=TEXTJOIN("・", TRUE, A2:D2)

A2〜D2 の内容を「・」区切りでまとめてくれます。


例題

問題1

B2:E2 に都市名が入っています。
空白セルを無視して「, 」区切りで結合する式を書いてください。

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

問題2

A2=氏名、B2=部署、C2=会社名。
「氏名(部署/会社名)」の形式で結合する TEXTJOIN の式を書いてください。

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

問題3

A2:A5 の 4 行のテキストを、
空白行を除いて改行しながら結合する式を書いてください。

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

問題4

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

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

問題5

A2=顧客名、B2=日付、C2=金額。
空白セルを無視して「顧客名 / yyyy/mm/dd / ¥#,##0」の形式で結合する式を書いてください。

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

まとめ

TEXTJOIN(…, TRUE) のポイントは次の 3 つです。

  • 空白セルを自動で無視してくれる(TRUE)
  • 区切り文字を自由に設定できる
  • 範囲をそのまま渡せるので式が短くなる

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

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

ここから、改行・FILTER・TEXT との組み合わせに広げていくと、
実務で必要な「一覧生成」「説明文作成」「選択項目のまとめ」が
驚くほどスムーズに作れるようになります。

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