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

Excel
スポンサーリンク

概要

複数のセルにバラバラに入っている値を、
山田,東京都,30,営業 のような CSV形式の1つの文字列 にまとめたい。

  • A列の値をカンマ区切りで1本の文字列にしたい
  • 「空欄セルは飛ばして結合したい」
  • 行・列どちらでも一気に結合したい

こういうときにドンピシャで使えるのが TEXTJOIN 関数です。


TEXTJOIN 関数の基本

構文と意味

=TEXTJOIN(区切り文字, 空白を無視するか, 結合したい範囲1, [範囲2]...)
  • 区切り文字
    値と値の間に入れたい文字。CSVなら "," を指定します。
  • 空白を無視するか
    TRUE … 空白セルを飛ばす
    FALSE … 空白セルも「空の値」として結合に含める。
  • 結合したい範囲
    1つのセルでも、A2:A10 のような範囲でもOK。

TEXTJOIN は
「範囲+区切り文字+空白セルをどうするか」をまとめて指定できるのがポイントです。


基本パターン:1列の値をCSV文字列に結合

A列の値を「カンマ区切り1行」にする

例として、A2:A5 にこんなデータがあるとします。

A2:山田
A3:東京都
A4:30
A5:営業

これを 山田,東京都,30,営業 という1つのCSV文字列にしたい場合、
B2 に次の式を書きます。

=TEXTJOIN(",", TRUE, A2:A5)

意味を分解すると:

  • 区切り文字 → ","(カンマ)
  • 空白を無視 → TRUE(途中に空白セルがあっても飛ばす)
  • 結合範囲 → A2:A5

結果:山田,東京都,30,営業

A列に何行あっても、範囲を変えるだけで
「縦に並んだ値 → 1本のCSV文字列」 が一発でできます。


横方向のセルをCSVに結合する

1行のデータをCSV化する

B2:E2 に

B2:001
C2:山田太郎
D2:東京都
E2:営業

と入っている場合、
これを 001,山田太郎,東京都,営業 にしたいときは、
F2 に次のように書きます。

=TEXTJOIN(",", TRUE, B2:E2)
  • 横方向の範囲でも、縦と同じ書き方でOK。
  • TRUE を指定すると、空白のセルは自動でスキップされます。

CSVファイルに出したい1行分のデータを、
「1つの行にまとめる“書き出し用列”」として使うイメージです。


空白セルの扱い(TRUE/FALSE の違い)

空白セルを飛ばしたいか、そのまま残したいか

例えば A2:A6 に

A2:山田
A3:(空白)
A4:東京都
A5:30
A6:(空白)

と入っているとします。

空白を飛ばして結合:

=TEXTJOIN(",", TRUE, A2:A6)

山田,東京都,30(空白セルは無視)

空白も「空の値」として区切りだけ入れたい:

=TEXTJOIN(",", FALSE, A2:A6)

山田,,東京都,30,(空白セルの位置にカンマだけ残る)

CSVとして厳密に「空の列も必要」なら FALSE、
単に「データがあるものだけつなげたい」なら TRUE を使います。


他の文字で区切る応用(タブ区切りなど)

CSVだけでなく、区切り文字を変えればいろいろ応用できます。

セミコロン区切り

=TEXTJOIN(";", TRUE, A2:A5)

山田;東京都;30;営業

スペース区切り

=TEXTJOIN(" ", TRUE, A2:A5)

山田 東京都 30 営業

改行で結合(複数行のテキストに)

セル内で改行しながら結合したいときは、
区切り文字に CHAR(10)(改行)を使い、セルの折り返しをオンにします。

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

→ 1セルの中に
山田
東京都
30
営業
と縦に並ぶテキストができます。


問題1

A2:A5 に
山田 / 東京都 / 30 / 営業
というデータが縦に入っています。
これをカンマ区切りの1つの文字列 山田,東京都,30,営業 にしたいです。
TEXTJOIN を使った式を書いてください(空白セルは無視する前提)。

=TEXTJOIN(",",TRUE,A2:A5)

問題2

B2:E2 に
001 / 山田太郎 / 東京都 / 営業
が横方向に入っています。
これを 001,山田太郎,東京都,営業 というCSV形式の文字列にしたいです。
TEXTJOIN を使った式を書いてください。

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

問題3

A2:A6 に
山田 / (空白) / 東京都 / 30 / (空白)
が入っています。
空白セルも「空の列」として残し、
山田,,東京都,30, のような文字列にしたいです。
TEXTJOIN の TRUE/FALSE を意識して式を書いてください。

=TEXTJOIN(",",FALSE,A2:A6)

問題4

A2:A5 に
山田 / 東京都 / 30 / 営業
が入っています。
これをセミコロン区切りの 山田;東京都;30;営業 にしたいです。
TEXTJOIN を使った式を書いてください。

=TEXTJOIN(";",TRUE,A2:A5)

問題5

A2:A5 に
山田 / 東京都 / 30 / 営業
が入っています。
これを 1 つのセル内で改行しながら結合したいです。

山田
東京都
30
営業

という見た目になるように、TEXTJOIN を使った式を書いてください。
(改行コードには CHAR(10) を使ってください)

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

(※セルの「折り返して全体を表示する」をオンにすると改行表示されます)


TEXTJOIN の「CSV列結合」の型は、とてもシンプルです。

=TEXTJOIN(",", TRUE, 結合したい範囲)

この1行さえ覚えておけば、

  • 1列の値 → CSV文字列
  • 1行の値 → CSV文字列
    を、どちらも一瞬で作れるようになります。
Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました