Menu

TEXTJOIN関数の使い方: 区切り文字で範囲を結合する

=TEXTJOIN(", ",TRUE,A2:A6)は、A2:A6のすべてのセルを、カンマとスペースで区切って1つの文字列にし、空のセルは飛ばします。FILTERと組み合わせると、条件に合う行だけをつなげます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=TEXTJOIN(", ",TRUE,A2:A6)は、A2:A6のすべてのセルを、項目の間にカンマとスペースを入れて1つの文字列にします。1つ目の引数は区切り文字、2つ目は空のセルを飛ばすかどうか、それ以降がつなぐ文字列です。

列を1つのセルにまとめる
C2
ABC
1TeamMembers
2AnaAna, Ben, Chen, Dara, Eli
3Ben
4Chen
5Dara
6Eli
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

A列の名前を1つ消してみてください。C2が更新され、カンマが2つ並ぶことはありません。TEXTJOINにはExcel 2019以降(Microsoft 365を含む)が必要で、Excel 2016では#NAME?になります。

TEXTJOIN関数の構文

=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
  • delimiter(区切り文字):項目の間に入れる文字列で、引用符で囲みます。", "、"; "、" | "、"-"、何も入れないなら""。
  • ignore_empty(空のセルは無視):TRUEは空のセルを飛ばし、FALSEは残すので、区切り文字が2つ並びます。
  • text1, text2, ...:セル、範囲、または引用符で囲んだ文字列。252個まで指定でき、範囲は行でも列でもブロックでも構いません。

ignore_emptyで空白セルを飛ばす

TRUEは空白を飛ばし、FALSEは残す
C2
ABC
1SizeResult
2SS, M, L, XL
3S, , M, L, , XL
4M
5L
6
7XL
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C2はS, M, L, XLになります。C3は2つの空のセルを残し、その隙間が, ,として表示されます。FALSEを使うのは、別のツールでリストを読み込むときなど、各項目の位置に意味がある場合だけにしてください。

同じ考え方で、ミドルネームがあったりなかったりする氏名も直せます。=A2&" "&B2&" "&C2はB2が空だとスペースが2つ残りますが、区切り文字をスペースにしてTRUEを指定したTEXTJOINなら残りません:

ミドルネームが任意の氏名
D2
ABCD
1FirstMiddleLastFull name
2AnaMariaSilvaAna Maria Silva
3BenOkaforBen Okafor
4ChenLiWuChen Li Wu
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
注文番号をつなげる
C2
ABC
1OrderList
21041
31042
4
51045
61046
7
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: C2で、A2:A7の注文番号をカンマとスペースで区切って1つのセルにまとめてください。空のセルの分の隙間は入れません。

条件付きでTEXTJOINする

条件に合う行だけをつなぐには、TEXTJOINの中にFILTERを入れます。FILTERが一致する名前を返し、TEXTJOINがそれをつなぎます:

North地域の名前
E2
ABCDE
1NameRegionRegionNames
2AnaNorthNorthAna, Chen, Eli
3BenSouthAna, Chen, Eli
4ChenNorthRegionsNorth, South, East
5DaraEast
6EliNorth
7FaySouth
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

D2をSouthに変えると、どちらの数式もBenとFayを並べます。E2はFILTERを使っていて、Excel 2021かMicrosoft 365が必要です。E3はExcel 2019向けの書き方で、IFは地域が一致する行では名前を、それ以外では空の文字列を返し、TRUEがその空の文字列を取り除きます。Excel 2019ではE3をCtrl+Shift+Enter(MacではCmd+Shift+Enter)で確定してください。

よく必要になる組み合わせがあと2つあります:

  • 重複を除いた値だけ:E4の=TEXTJOIN(", ",TRUE,UNIQUE(B2:B7))はNorth, South, Eastになります。
  • 並べ替えて:=TEXTJOIN(", ",TRUE,SORT(FILTER(A2:A7,B2:B7=D2)))。

一致するものがないと、FILTERは#CALC!を返し、TEXTJOINも同じになります。その場合に備えてFILTERに3つ目の引数を渡します:FILTER(A2:A7,B2:B7=D2,"none")。

Eastのチーム
E2
ABCDE
1NameRegionEast team
2AnaNorth
3BenSouth
4ChenEast
5DaraEast
6EliNorth
7FaySouth
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: E2で、地域がEastの名前をカンマとスペースで区切って並べてください。

日付や数値を表示形式どおりにつなげる

TEXTJOINがつなぐのは、セルに見えているものではなく保存されている値です。日付はシリアル値として(2026-03-02は46083)、パーセントは小数としてつながります。TEXTJOINの中でTEXTを使って範囲を変換します:

リストの中の日付
D2
ABCD
1MeetingDateDates
2Kickoff2026-03-0246083, 46097, 46113
3Review2026-03-16Mar 2, Mar 16, Apr 1
4Launch2026-04-01
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

TEXTJOINとCONCAT、&の違い

TEXTJOINCONCAT&
範囲をつなげるできるできるできない、1セルずつ
項目の間に区切り文字を入れるできる、一度の指定ですべてにできない毎回自分で入力する
空のセルを飛ばすできる、TRUEでできないできない
使える最も古いバージョンExcel 2019Excel 2019すべてのバージョン

2つか3つのセルなら&がいちばん手早く済みます。文字列の結合を参照してください。長さを問わないリストにはTEXTJOINを使います。知っておくべき制限が1つあります。1つのセルに入るのは最大32,767文字で、つないだ文字列がそれより長いとTEXTJOINは#VALUE!を返します。

よくある質問

ExcelのTEXTJOINは何をする関数ですか?

セルや範囲の文字列をつなぎ、項目の間に区切り文字を入れます。=TEXTJOIN(", ",TRUE,A2:A6)は5つのセルを1つのカンマ区切りのリストにします。2つ目の引数のTRUEは空のセルを飛ばす指定です。

TEXTJOINで条件を付けるには?

FILTERを渡します。=TEXTJOIN(", ",TRUE,FILTER(A2:A7,B2:B7="North"))は、地域がNorthの名前だけをつなぎます。FILTERがないExcel 2019では、=TEXTJOIN(", ",TRUE,IF(B2:B7="North",A2:A7,""))をCtrl+Shift+Enterで確定します。

TEXTJOINが使えるExcelのバージョンは?

Excel 2019、Excel 2021、Microsoft 365、それにExcel for the webです。Excel 2016以前では#NAME?になるので、&でつないでください。GoogleスプレッドシートにもTEXTJOINがあります。

TEXTJOINで日付ではなく数値が表示されるのはなぜですか?

TEXTJOINは保存されている値をつなぎ、日付はシリアル値として保存されているからです。先に日付を変換します:=TEXTJOIN(", ",TRUE,TEXT(B2:B4,"mmm d"))。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める