Excelで複数のセルを「商品A、商品B、商品C」のように区切って1つの文字列にまとめたいときは、TEXTJOIN関数を使うと、区切り文字と空白セルの扱いを数式の中でまとめて指定できます。
この記事では、Microsoft 365のWindowsデスクトップ版Excelを中心に、TEXTJOIN関数でセル範囲を区切って結合する手順を説明します。エクセルで名簿、品目、担当者名などを一覧文にしたい場面を想定し、空白セルを飛ばす設定と、結果を確認するときの注意点まで扱います。
TEXTJOIN関数でできることを確認する
TEXTJOIN関数は、複数の文字列やセル範囲を1つの文字列へ結合し、値と値の間に指定した区切り文字を入れる関数です。単にセルをつなげるだけでなく、2つ目の引数で空白セルを無視するかどうかを指定できます。
基本の形は次のとおりです。
=TEXTJOIN(区切り文字, 空白セルを無視するか, 結合する範囲)
たとえば、A2からA6に品目名が入り、途中に空白セルがある表で、空白を飛ばして読点区切りにしたい場合は次のように入力します。
=TEXTJOIN(“、”,TRUE,A2:A6)
この式では、最初の”、”が値と値の間に入る区切り文字です。2つ目のTRUEは空白セルを無視する指定です。A2:A6が結合したい範囲なので、空白以外の品目だけが「、」でつながった結果になります。
文字列を結合する基本を先に整理したい場合は、区切り文字なしでつなぐ場面を扱う【Excel】CONCATで文字列を結合する方法も参考になります。CONCATは単純な結合、TEXTJOINは区切り文字や空白セルの扱いまで含めて指定したいときに向いています。
セル範囲を区切って結合する手順
ここでは、小さな表を使ってTEXTJOIN関数を入力します。先に元データを残したまま別のセルへ結果を出すと、入力済みの値を壊さず確認できます。
例として、A1に「購入予定」、A2からA6に次のような品目を入力している状態を考えます。
- A2: ノート
- A3: ペン
- A4: 空白
- A5: クリアファイル
- A6: 付箋
結果をB2に表示する場合は、次の順に操作します。
- 結合結果を表示したいセルB2を選択します。
- 数式バー、またはセル内に「=TEXTJOIN(“、”,TRUE,A2:A6)」と入力します。
- Enterキーを押します。
- B2に「ノート、ペン、クリアファイル、付箋」と表示されることを確認します。
空白セルを無視する指定をTRUEにしているため、A4が空白でも「ペン、、クリアファイル」のように区切り文字だけが残りません。未入力の行が混じる表から一覧文を作るときは、この指定を先に確認すると結果が読みやすくなります。
反対に、空白の位置も結果へ残したい場合は、2つ目の引数をFALSEにします。たとえば「=TEXTJOIN(“、”,FALSE,A2:A6)」にすると、空白セルの位置にも区切り文字が入ります。入力漏れの位置を確認したいときはFALSE、完成した一覧文を作りたいときはTRUEという使い分けが分かりやすいです。
複数列を結合するときは範囲の読み順を意識する
TEXTJOIN関数は、1列だけでなく複数列の範囲も指定できます。A列に姓、B列に名、C列に担当分野があるような表では、範囲を広げるだけで複数の列をまとめられます。
たとえばA2:C4をまとめて結合する場合は、次のように入力します。
=TEXTJOIN(” / “,TRUE,A2:C4)
この場合、結果は指定した範囲のセルを順に読み取って1つの文字列になります。見た目としては表全体を選んでいるだけでも、行と列の並び方によって結果の順序が変わるため、完成した文字列を必ず確認してください。
姓と名を1人ずつ整えてから一覧化したい場合は、作業列を使う方法もあります。たとえばD2に「=A2&” “&B2」のような式で氏名を作り、D2:D4をTEXTJOINで結合すると、途中の構造を確認しながら進められます。
数式が長くなって見直しにくい場合は、名前を付けた中間計算を使う【Excel】LET関数で数式を読みやすく整理する方法へ分けて考えると、どの範囲を結合しているか確認しやすくなります。
CONCATやTEXTSPLITとの使い分け
TEXTJOIN、CONCAT、TEXTSPLITは、いずれも文字列を扱う関数ですが、作業の向きが違います。
- CONCAT: 複数の文字列や範囲を、区切り文字をまとめて指定せずに結合する
- TEXTJOIN: 区切り文字を指定し、空白セルを無視するか選びながら結合する
- TEXTSPLIT: 区切り文字を手がかりに、1つの文字列を列や行へ分割する
たとえば、単にA2とB2をつなぐだけならCONCATや「&」でも十分です。A2:A20のような一覧を「、」や「 / 」でまとめたい場合は、TEXTJOINのほうが数式を短く保てます。
一方、すでに「ノート、ペン、付箋」のように1つのセルへ入っている文字列を分けたい場合は、結合ではなく分割の作業です。その場合は【Excel】TEXTSPLITで文字列を分割する方法のように、区切り文字を基準に列や行へ戻す方法を使います。
入力済みの文字列に規則性があり、数式よりも入力補助で整えたい場合は、【Excel】フラッシュフィルで文字整形を進めやすくする方法が合うこともあります。元データを残したまま、数式で再計算したいか、一度だけ整形結果を作りたいかで選ぶと迷いにくくなります。
結果が思った形にならないときの確認点
TEXTJOIN関数を入力しても、結果が長すぎる、区切り文字が多い、エラーになるといったことがあります。まずは元データを直接編集する前に、数式セルと参照範囲を確認してください。
- 区切り文字を二重引用符で囲んでいるか確認します。
- 空白セルを飛ばしたい場合は、2つ目の引数がTRUEになっているか確認します。
- 参照範囲に見出し行を含めていないか確認します。
- 結果が長い場合は、結合する範囲を小さく分けられないか確認します。
TEXTJOIN関数は、結果の文字列がExcelのセル上限を超えると#VALUE!エラーになります。大量の行を1つのセルへ集約する用途では、必要な範囲だけを選ぶか、分類ごとに分けて結合するほうが確認しやすくなります。
エラー表示を別の文字に置き換える前に、原因を直せるかを先に見ます。エラー表示の扱い方を整理したい場合は、【Excel】IFERRORでエラー表示を整える方法で、エラーを隠す前に確認する考え方を押さえておくと安全です。
TEXTJOIN関数は、セル範囲から一覧文を作るときに、区切り文字と空白セルの扱いを1つの式で指定できるのが強みです。元データを残して別セルに結果を出し、TRUEとFALSEの違い、参照範囲、結果の長さを確認しながら使うと、名簿や品目一覧を扱いやすい文字列に整えられます。