Excel関数 逆引き集 | 空白除外結合 → TEXTJOIN

Excel
スポンサーリンク

概要

「空欄セルは飛ばして、値が入っているセルだけを区切り文字でつなぎたい」
「住所やラベルを作りたいけど、抜けている項目があっても“変な区切り”を出したくない」

そんなときに最強なのが TEXTJOIN 関数の “空白無視” 機能です。
TEXTJOIN は、複数のセル・文字列を区切り文字で連結しつつ、「空白セルを無視する」ことができます。

ここでは、プログラミング初心者向けに、空白除外結合に特化した TEXTJOIN の使い方と、実務でそのまま使える“型”を解説します。


TEXTJOINの基本(空白除外の仕組み)

TEXTJOIN の構文はこうです。

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

第2引数 「空白を無視するか」 がポイントで、

  • TRUE にすると「空白セル・空文字 "" を無視」
  • FALSE にすると空白セルも「何もない要素」として扱い、区切りだけが残ることがある

つまり、空白除外結合をしたいときは必ず TRUE にします。

例として、

A2:りんご
B2:(空欄)
C2:みかん

この3つを「 / 」でつなぎたいとき、

=TEXTJOIN(" / ", TRUE, A2:C2)

とすれば、結果は

りんご / みかん

となり、B2 の空白は自動でスキップされ、余計な「 / 」も出ません。


基本パターン:空欄を飛ばして“住所”や“ラベル”をつなぐ

住所の典型パターンで考えてみます。

A2:都道府県
B2:市区町村
C2:番地
D2:建物名(空のことも多い)

これらを、建物名があってもなくても、きれいに 1 つの文字列にしたいとします。

例:

  • 「東京都」「江東区」「1-2-3」「〇〇ビル 5F」
    → 東京都江東区1-2-3〇〇ビル 5F
  • 「東京都」「江東区」「1-2-3」「(空)」
    → 東京都江東区1-2-3

区切り文字を空文字 "" にし、空白除外を TRUE にするとこう書けます。

=TEXTJOIN("", TRUE, A2:D2)
  • 区切り文字:""(何も挟まない)
  • 空白無視:TRUE(建物名が空でも何も入れない)
  • テキスト範囲:A2:D2 を順番に結合

これだけで、「空欄を飛ばしながら連結」が実現できます。


応用1:区切り文字つきで空白を除外する

今度は、区切り文字を入れるパターンです。

A2:タグ1(例:重要)
B2:タグ2(例:至急)
C2:タグ3(空欄のこともある)

これらを、

  • 「重要|至急|社外秘」
  • 「重要|至急」
  • 「重要」

のように、空欄タグを飛ばしつつ「|」で連結したい場合、D2 にこう書きます。

=TEXTJOIN("|", TRUE, A2:C2)

C2 が空欄なら、自動的にスキップされるので、
「重要|至急|」のような“末尾だけ区切りが残る”事故を防げます。


応用2:IFで「条件に合うものだけ」を結合する

TEXTJOIN は「空白を無視」するので、
IF と組み合わせると「条件に合うときだけ文字列を渡す → それ以外は “” → TEXTJOIN が除外」という流れが作れます。

A2:C2 にフラグ(OK/NG)や条件付きの値が入っていて、
「OK のものだけをカンマ区切りで並べたい」ようなケースをイメージしてください。

例えば、

A2:OK
B2:NG
C2:OK

というとき、「A と C だけ」を結合したい場合、行全体では行列関数が必要になるので、ここでは“個別に IF を書く”パターンを紹介します。

A3:項目A
B3:項目B
C3:項目C

D3 にこう書きます。

=TEXTJOIN("、", TRUE,
 IF(A2="OK",A3,""),
 IF(B2="OK",B3,""),
 IF(C2="OK",C3,"")
)
  • A2 が OK なら A3 を渡す、そうでなければ “”
  • TEXTJOIN の「空白無視=TRUE」により、”” は自動で除外

結果:

  • A2=OK, B2=NG, C2=OK → 「項目A、項目C」
  • A2=NG, B2=NG, C2=OK → 「項目C」

のように、条件に合うものだけをきれいに結合できます。


応用3:改行区切りで“空白を除いたリスト”を1セルに作る

A2:A6 にタスクリストがあり、空欄も混ざっているとします。

A2:資料作成
A3:(空欄)
A4:メール送信
A5:会議準備
A6:(空欄)

これらを空欄を除いて、1セルにこう表示したい。

資料作成
メール送信
会議準備

B2 に次の式を書きます。

=TEXTJOIN(CHAR(10), TRUE, A2:A6)
  • 区切り文字:CHAR(10)(改行コード)
  • 空白無視:TRUE
  • 範囲:A2:A6

セルの書式で「折り返して全体を表示する」にチェックを入れると、
1セルに“空欄を除いた縦リスト”ができます。
コピーしてメールやチャットに貼る、といった用途にも便利です。


応用4:項目名付きのラベルを空白除外でつなぐ

A2:担当者名(必須)
B2:部署(空欄のことあり)
C2:内線番号(空欄のことあり)

これらから、可能なら

  • 「担当:山田|部署:営業|内線:1234」
  • 「担当:山田|部署:営業」
  • 「担当:山田|内線:1234」

のようなラベルを作りたい。
空の項目は丸ごと飛ばして、余計な区切りも出したくない。

D2 にこう書きます。

=TEXTJOIN("|", TRUE,
 "担当:" & A2,
 IF(B2<>"","部署:" & B2,""),
 IF(C2<>"","内線:" & C2,"")
)
  • 担当は必須なのでそのまま渡す
  • 部署・内線は「値があるときだけ文字列」「ないときは “”」
  • TEXTJOIN が “” を無視して、必要なものだけ「|」で連結

これが、実務でよく使う「空白除外ラベル生成」の標準パターンです。


空白除外結合の“型”まとめ

空欄を飛ばして横に結合

=TEXTJOIN(区切り文字, TRUE, 範囲)

空欄を飛ばして縦(改行)に結合

=TEXTJOIN(CHAR(10), TRUE, 範囲)

条件付きで「渡すかどうか」を決めてから TEXTJOIN

=TEXTJOIN("区切り", TRUE,
 IF(条件1,値1,""),
 IF(条件2,値2,""),
 IF(条件3,値3,"")
)

この3つの型を押さえておけば、
「空欄が混ざっているけど、きれいに結合したい」場面のほとんどを TEXTJOIN だけで処理できます。


問題1

A2:りんご
B2:(空欄)
C2:みかん

これらを、空欄を飛ばして

りんご / みかん

という文字列にしたいです。
TEXTJOIN を使った式を書いてください。

=TEXTJOIN(" / ",TRUE,A2:C2)

問題2

A2:A5 にタスク名が入っています(途中は空欄の可能性あり)。
空欄を除いたタスクを、改行区切りで 1 つのセルに結合したいです。
TEXTJOIN を使った式を書いてください。
(改行には CHAR(10) を使います)

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

問題3

A2:担当者名
B2:部署(空欄のことあり)
C2:内線(空欄のことあり)

これらから、空欄を飛ばして

担当:山田|部署:営業|内線:1234

のようなラベルを作りたいです。
部署・内線が空欄なら、その項目ごと表示しないようにしてください。
TEXTJOIN と IF を使った式を書いてください。

=TEXTJOIN("|",TRUE,
 "担当:" & A2,
 IF(B2<>"","部署:" & B2,""),
 IF(C2<>"","内線:" & C2,"")
)

問題4

A2:C2 にキーワードが入っています(空欄も混ざる)。
これらを空欄を除いて「、」区切りで結合し、
キーワード1、キーワード2、キーワード3
のようにしたいです。
TEXTJOIN を使った式を書いてください。

=TEXTJOIN("、",TRUE,A2:C2)

問題5

A2:C2 にそれぞれ、条件付きで表示したい項目があります。

  • 条件1:D2=”Y” のときだけ A2 を使う
  • 条件2:E2=”Y” のときだけ B2 を使う
  • 条件3:F2=”Y” のときだけ C2 を使う

「Y」になっている項目だけを「|」区切りで結合したいです。
TEXTJOIN と IF を使った式を書いてください。

=TEXTJOIN("|",TRUE,
 IF(D2="Y",A2,""),
 IF(E2="Y",B2,""),
 IF(F2="Y",C2,"")
)

空白除外結合は、TEXTJOIN の 第2引数を TRUE にするだけで、驚くほどスッキリ書けます。
「空欄が混ざるのがわかっている結合」は、まず TEXTJOIN を思い出す、くらいの感覚になっておくと、表設計のストレスがかなり減ります。

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