エクセルで文字列を結合する方法|&・CONCAT・TEXTJOINの使い分け

記事
ビジネス・マーケティング
別々のセルの文字をひとつにつなぐ方法は、主に3つあります。姓と名、都道府県と住所、日付と金額の文章づくりなどで使います。

■ いちばん簡単:&(アンパサンド)
つなぎたいセルを &(Shift+6)でつなぎます。
=A2&B2
姓が山田、名が花子なら、答えは「山田花子」です。間にスペースを入れたいときは、半角のスペースを""で囲んで足します。
=A2&" "&B2
試した結果:山田 花子

■ 関数でつなぐ:CONCAT
=CONCAT(A2,B2)
答えは&と同じ「山田花子」です。範囲もまとめて指定できるのが利点です。ただしExcel 2016以前には無く、その場合は &か古い関数のCONCATENATEを使います。

■ 間に区切りを入れてつなぐ:TEXTJOIN
=TEXTJOIN(" ",TRUE,A2,B2)
1つ目が区切りの文字、2つ目が「空のセルを飛ばすか」(TRUEで飛ばす)、3つ目以降がつなぐ対象です。
試した結果:山田 花子
名が空の行(佐藤さん)でも、TRUEなら「佐藤」とだけ出て、余計なスペースが付きません。&でつなぐと、「佐藤 」のように末尾にスペースが残ります。

■ 範囲をまとめてつなぐ(住所)
都道府県・市区町村・番地が横に並んでいるとき、範囲ごと渡せます。
=TEXTJOIN("",TRUE,C2:E2)
試した結果:東京都世田谷区北沢3-20-18
区切りが要らないときは、1つ目を""(空)にします。

■ 日付や金額をつなぐときの注意
日付をそのまま&でつなぐと、「46313」のような数字になります。見た目のとおりにしたいときは TEXT関数で形を指定します。
=TEXT(J2,"yyyy年m月d日")&"までに"&TEXT(K2,"#,##0")&"円"
試した結果:2026年10月18日までに12,800円
金額は、"#,##0" とするとカンマ付きになります。

■ 3つの使い分け
・2〜3個をさっとつなぐ:&
・古いExcelでも開く可能性がある:&
・範囲をまとめる・区切りを入れる・空欄を飛ばす:TEXTJOIN

■ うまくいかないとき
・#NAME?と出る:CONCAT・TEXTJOINが使えない古いExcelの可能性があります。&に書き換えます。
・数字が日付のように変わる、日付が数字になる:TEXT関数で形を指定します。
・つないだ結果をそのまま残したい:コピーして「値」だけを貼り付けると、元のセルを消しても残ります。

■ 向かない場合
名簿の整形や住所の分割・結合が何百行もあるときは、式を増やすより、表の作りから整えたほうが楽なことがあります。自分で組み直す時間がないときは、専用の調整サービスもあります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す