[EXCEL] データを繋ぐ記号と関数(&、CONCATENATE、CONCAT、TEXTJOINの使い分け)
▶MAP▶PDF版▶表示▶関数▶ショトカ▶操作/コピー▶実務▶NG▶検索
【まとめ】
データを繋ぐ記号と関数
&:セルを一つ一つ繋ぐ(&を挟んで列記) =A1&B1&C1
CONCATENATE:同上( , を入れて列記) =CONCATENATE(A1,B1,C1)
CONCAT:連続したセルを指定可能(列記可)=CONCAT(A1:C1)
TEXTJOIN:データ間に特定文字を入れて繋げる
=TEXTJOIN(区切り文字,空白を無視する(TURE)か否か(FALSE),A1:C1)
【説明】
Excelでセル内のデータ(主に文字)を繋いで1セルに表示したい場合があります。
Excelでは、セル内のデータ(特に文字列)を分けるのは、ちょっと面倒です。繋ぐ方が簡単です。
そのため、なるべくデータは小分けにしておき(例:姓と名は別セルにする)、必要に応じてセルの中身を繋ぎます。
繋ぐ方法は色々ありますので、整理してみました。
① & (アンド 又は アンパサンド)
セルを「&」で繋ぎます。
=B3&C3&D3

繋ぐデータ数が少なければ、これが一番楽です。
「&」は、普通に手入力します。
文字と数値を繋ぐこともできますが(下段)、数値は文字扱いになります。
上の図の下段では、「1,234」とカンマ入れされていますが、これは「セルの書式設定」でカンマ付けされたものです。
これを「&」で繋ぐと、文字扱いとなり、本来の「1234」という表記になります。これは、以下の関数でも同じです。
カンマ等を入れたい場合は、TEXT関数で「書式」を設定して文字化します。
詳しくは以下をどうぞ。
数値を文字列にするTEXT関数
数値形式の日付を文字列にする計算式
なお、繋ぐのはセル同士である必要はありません。
文字やスペースも繋げられます。
文字やスペースは「""」で括ります。
これは以下のCONCATENATE/CONCAT関数でも同じです。

姓と名の間には半角スペースを入れています。
「様」の前にも半角スペースを入れえいます。
② CONCATENATE(コンカットネイト 「繋ぐ」の意味)
複数のデータを列記して繋ぐことができます。
=CONCATENATE(B9,C9,D9)

「&」より、入力がちょっと楽かもしれませんし、「&」が入っていない分、計算式がスッキリするかもしれません。
=CONCATENATE と入れるのは面倒ですが、
=CONC まで入れると選択肢が絞られるので、Tabで選択します。

ただし、Office2019からは、上位互換のCONCAT関数が使えるので、CONCATENATEを使う必要性は低くなりました。
③ CONCAT(コンカット)
CONCATENATEの短縮版というか、上位互換の関数です。
Office2019から使える関数です。
連続するデータを範囲指定して繋ぐことができます。
=CONCAT(B13:D13)

セルを一つ一つ入れていかなくていいので、楽です。
範囲指定する以外にも、CONCATENATE関数と同様、セル(データ)を列記しても構いません。(上図の2番目)
=CONCAT(B14,C14,D14)
また、連続するセルは範囲指定しつつ、「, 」で列記しても構いません
(上図の4番目)
=CONCAT(B16:C16,D16)
繋ぐデータが多いとき(かつ、連続している部分があるとき)は、こちらが便利でしょう。
④ TEXTJOIN(テキストジョイン)
関数の名前としては、一番わかりやしでしょう。
テキストをジョインする、ですから。
ただし、記述はちょっと面倒です。
ただ繋ぐだけではなく、間に指定の文字を入れることができます。
=TEXTJOIN(”間に入れる文字”,TRUE又はFALSE,範囲又は列記)
TRUEの場合は空欄を無視し、FALSEなら空欄も繋ぎます。

上図1のように、ただ繋ぐだけもできますが、そのために使う必要はありません。
=TEXTJOIN(,TRUE,B19:D19)
ただ繋ぐだけなら、間に入れる文字がないので、=TEXTJOIN(, となります。
でも、前述のとおり、これは使う意味がありません。
通常は、上図2(↓↓↓)のように使います
「””」で挟んだ文字が間に入ります。
下の計算式では、「・」を間に入れます。
=TEXTJOIN("・",TRUE,B20:D20) *「””」は半角。
あ い う ⇒ あ・い・う

カッコの中が「TURE」の場合、空欄セルは無視します(上図3・↓↓↓)。=TEXTJOIN("・",TRUE,B21:D21) *上図2と同じ
あ い う ⇒ あ・う

FALSEだと、空欄セルも繋ぎます(↓↓↓・上図4・↓↓↓)。
繋ぎますが、空欄なので、実際はつなぎ記号「・」が連続します。
=TEXTJOIN("・",FALSE,B22:D22)
あ い う ⇒ あ・・う
通常は、空欄はつながないため、「TURE」にした方がいいでしょう。

数値も繋げられるのは、他の関数と同じです(上図5・↓↓↓)。
この場合も、数値は文字扱いとなり「セルの書式設定」で設定された書式は無視されます。
上図5(↓↓↓)の場合、「セルの書式設定」でカンマがついてますが、合体したものにはカンマが付いていません)。
=TEXTJOIN(,TRUE,B23:C23,D23)

また、上の式が
=TEXTJOIN(,TRUE,B23:C23,D23)
となっているとおり、繋ぐデータは、範囲指定+列記でも構いません(CONCAT関数と同じ)。
TEXTJOIN関数の特徴は、「間に文字を入れて繋いでいく」です。
上図6(↓↓↓)では、半角スペース「” ”」を入れています。

メールアドレスだったら「; 」を間に入れることで、そのままメールソフトの送信欄に貼り付けることもできます(ソフトによる)。
*これについては別記事でお示しします。
2025/6/2追記
[Excel]メールアドレスのリストから、送信先一覧を簡単に作る方法
TEXTJOIN関数は、間に「改行」を入れることもできる
この「間に文字を入れる」ですが、間に入るのは、普通の文字だけではありません。
「改行」も入ります。
改行は CHAR(10)で表せられます。
CHAR は Character(キャラクター・文字)の意味で、文字を表す関数です。
ここではそれ以上説明しませんが、CHAR(10)があったら「改行」する、という意味だということです。
実際にTEXTJOIN関数に入れてみると・・・=TEXTJOIN(CHAR(10),TRUE,B28:D28)
B28からD28のセルの中身を、セル毎に改行しながら(=間に「改行」を入れて)繋ぐ(ただし空白セルは無視する)、という意味です。
これを入れると・・・

一見、何も変わっていません。
普通にデータを繋いでいるだけに見えます。
しかし、「セルの書式設定」で「折り返して全体を表示する」に☑を入れると・・・(セルの高さを広げる必要がある場合もあります)。

以下のとおり、改行されて表示されます。

この特性を活かすことで、エクセル内のデータを表にきれいに並べることができます。
例えば、あるセミナーの予算を計算して、予算要求資料を作成する場合。
予算の積算を以下の通り行って・・・

これを予算要求資料に落としこみます。
通常はワードでしょう(以下はエクセルです)。

実際はもっと細かいでしょう。
郵便料を盛りながら、封筒代がないですね。
ちなみに、上の積算表がそのまま下に表になっているわけではありません。
実際は、以下の図の左側の積算表からTEXT関数でカンマ付けしたり、CONCAT関数で繋いで右側の式を作り、それを上の表で科目別に表示しています。
どの式をどの科目の欄に表示するかも自動です。
いちいち、科目別にどこに入れればいいか、考える必要はありません。

実務では、予算の計算はコロコロ変わります。
自ら色々なパターンを想定して変えていく場合もありますし、査定で削られる場合もあります。
そのたびに、エクセルで集計 → ワードの「内訳」を手修正、というのは、かなり手間ですし、修正ミスも起こしやすいでしょう。「4 費用」の右の合計額は直し忘れやすいところです(私はしょっちゅうやらかしました)。
科目別などの集計は、結構な人が電卓で手計算しているかと思います。
私は、ワードに数字を入力するだけでもイライラするので(特にカンマ入れ)、これが何とか簡単にならないかと常々思っていました。
提出用のものを「予算要求」シートとし、「積算」シートのデータをそのまま反映させられれば、手間も省けてミスもなくなります。
それには、TEXTJOINをはじめとした「データを合体させる関数(記号)」が役立ちます(他にも必要な関数はあります)。
これについては、おいおい説明していきたいと思います。
興味があれば「フォロー」をどうぞ。
(作業 1日 2h)
