エクセルで文字列を結合するなら、2〜3個は「&」で十分です。範囲をまとめてつなぐならCONCAT関数、区切り文字を挟むならTEXTJOIN関数を使います。CONCATとTEXTJOINは、買い切り版ではExcel 2019以降でないと使えません。
この記事でわかること
- &・CONCATENATE・CONCAT・TEXTJOINの使い分けとバージョン差
- スペースや「様」などの文字を挟んでつなぐ書き方
- 日付が46294のような数字に化けるときの直し方
- 金額のカンマや0から始まる番号を残したまま結合する方法
- 結合したあと元の列を消しても壊れないようにする手順
姓と名、都道府県と市区町村、品番と色コード。別々の列に入っている文字を1つのセルにまとめたい場面は、名簿でも帳票でもよく出てきます。
方法は4つありますが、迷ったら2〜3個なら&、それ以上や区切りが要るならTEXTJOINと覚えておけば困りません。日付や金額をつなぐときだけ、ひと手間必要になります。
文字列を結合する4つの方法と選び方
文字列の結合とは、複数のセルや文字を1つの文字列につなげることです。エクセルには「&」の記号と、CONCATENATE・CONCAT・TEXTJOINの3つの関数があります。
| 方法 | 書き方の例 | 範囲の指定 | 区切り文字 | 使えるバージョン |
|---|---|---|---|---|
| & | =A2&B2 | できない | 自分で挟む | すべて |
| CONCATENATE | =CONCATENATE(A2,B2) | できない | 自分で挟む | すべて(互換用) |
| CONCAT | =CONCAT(A2:D2) | できる | 自分で挟む | 365・2019以降 |
| TEXTJOIN | =TEXTJOIN(” “,TRUE,A2:D2) | できる | 1回の指定で全部に入る | 365・2019以降 |
Microsoft サポート「CONCAT 関数」の説明では、CONCATはCONCATENATEを置き換える関数です。CONCATENATEは古い版との互換のために残されており、これから新しく書くなら、CONCATENATEを選ぶ理由はほとんどありません。
迷ったときの選び方
- 2〜3個をつなぐだけ → &(どのバージョンでも動く)
- 横に並んだ5列以上をまとめてつなぐ → CONCAT
- 「、」やスペースで区切りながらつなぐ → TEXTJOIN
- 相手がExcel 2016以前かもしれないファイル → &で書いておく
最後の項目は見落としやすいところです。自分のパソコンで作った式でも、取引先が古い版で開くと#NAME?エラーになります。社外へ渡す帳票は&で組んでおくと安心です。
「&」でつなぐ(スペースや文字を挟む書き方)
&は、つなぎたいものを「&」で並べるだけの一番シンプルな方法です。セル同士だけでなく、自分で入力した文字も一緒につなげます。
| やりたいこと | 数式 | 結果の例 |
|---|---|---|
| 姓と名をそのままつなぐ | =A2&B2 | 山田太郎 |
| 間に全角スペースを入れる | =A2&” ”&B2 | 山田 太郎 |
| 後ろに「様」を付ける | =A2&B2&”様” | 山田太郎様 |
| 郵便番号の前に〒を付ける | =”〒”&C2 | 〒100-0001 |
ポイントは、自分で入力する文字を「”」で囲むことです。Microsoft サポート「Microsoft Excel で 2 つ以上のセルのテキストを 1 つのセルに結合する」でも、スペースを挟む例として =A2&" "&B2 が紹介されています。
- 「”」を片方だけ閉じ忘れる:エラーの確認画面が出て式が確定できません
- スペースの全角・半角が混ざる:見た目は同じでも、検索や照合で一致しなくなります
- &を1つ忘れる:
=A2" "&B2のようにつなぎ目が抜けると、式として受け付けられません
つなぐ数が5個、6個と増えると、&と「”」が並んで読みにくくなってきます。そのあたりが、次のCONCATやTEXTJOINに切り替える目安です。
CONCAT・TEXTJOINで範囲をまとめてつなぐ
CONCATは、範囲を渡すだけで中身を順につなぐ関数です。区切りを入れたいならTEXTJOINで、区切り文字を1回指定すれば全部の間に入ります。
=CONCAT(A2:D2) と書けば、A2からD2までを左から順につなぐ形です。&で書くと =A2&B2&C2&D2 になる式が、範囲1つで済みます。
区切りを入れたいときは =CONCAT(A2,"-",B2,"-",C2) のように自分で挟むしかありません。CONCATには区切り文字や空のセルを無視する引数が無い、というのが前出のMicrosoft サポートの説明です。
TEXTJOINの形は =TEXTJOIN(区切り文字, 空のセルを無視するか, 文字列1, …) です。
- 区切り文字:間に入れる文字。「”、”」「” “」など
- 空のセルを無視するか:TRUEなら空欄を飛ばす、FALSEなら空欄の分も区切りが入る
- 文字列:つなぐセルや範囲
たとえば担当者が3人分の列に入っていて、2人目が空欄のとき。=TEXTJOIN("、",TRUE,B2:D2) なら「佐藤、鈴木」と、空欄の分の「、」が入りません。FALSEにすると「佐藤、、鈴木」になります。
Microsoft サポート「TEXTJOIN 関数」によると、対象はMicrosoft 365とExcel 2019以降です。結果が32,767文字(セルの上限)を超えると#VALUE!エラーになる点も、CONCATと共通しています。
「東京支店の担当者名だけを、1つのセルに並べたい」といった使い方もできます。FILTER関数で絞ってからTEXTJOINに渡す形です。
=TEXTJOIN("、",TRUE,FILTER(B2:B50,A2:A50="東京"))
A列が「東京」の行だけ、B列の名前を「、」でつなぎます。FILTER関数が使えるのはMicrosoft 365とExcel 2021以降です。詳しい書き方はFILTER関数の使い方を見てください。
日付・金額・0から始まる番号が崩れるときはTEXT関数
日付や金額を文字とつなぐと、画面の見た目ではなく、中に入っている値が使われます。Microsoft サポート「テキストと数値を結合する」でも、表示の書式が失われる例と、TEXT関数で表示を指定する方法が載っています。
| セルの見た目 | &でつなぐと | TEXTを使った書き方 |
|---|---|---|
| 2026/9/29 | 46294 | TEXT(A2,”yyyy/m/d”) |
| 2026年9月29日 | 46294 | TEXT(A2,”yyyy年m月d日”) |
| 1,500 | 1500 | TEXT(B2,”#,##0″)&”円” |
| 40% | 0.4 | TEXT(C2,”0%”) |
| 00123(表示形式で0埋め) | 123 | TEXT(D2,”00000″) |
日付が46294のような数字になるのは、エクセルが日付を「1900年1月1日から数えた通し番号」で持っているからです。この仕組みはエクセルの日付の扱い方で詳しく解説しました。
たとえば「9月29日締め」という文字を作るなら、=TEXT(A2,"m月d日")&"締め" と書けばOKです。TEXTの中の書式記号は、セルの表示形式と同じものが使えます。記号の一覧はTEXT関数の使い方にまとめました。
社員番号や品番の「00123」は、入り方が2通りあります。
- 表示形式で0を足している(中身は123):TEXT(D2,”00000″)で桁をそろえてからつなぐ
- 文字列として入っている(中身も00123):そのままつないでも0は消えない
見分け方は、セルを選んで数式バーを見ることです。数式バーに「123」と出ていれば、表示形式で0を足している方です。
結合したあとの扱い(値に変える・照合・改行)
結合した結果には、数式が入ったままになっています。元の列を消す予定があるなら、先に値へ変えておくことを忘れないでください。
数式のまま元の列を削除すると、参照先が無くなって#REF!エラーに変わります。Microsoft サポート「データをクリーンアップする方法トップ 10」でも、この順番です。新しい列をコピーして値として貼り付け、それから元の列を削除します。
- 結合した列を選んでCtrl+Cでコピーする
- 同じ場所で右クリック→「貼り付けのオプション」の「値」を選ぶ
- 数式バーを見て、式ではなく文字になったことを確かめる
- 元の列を削除する
数字同士をつないでも、結果は計算できる数値ではなく文字列です。たとえば =A2&B2 でA2の「12」とB2の「34」をつなぐと、見た目は1234でも文字の「1234」です。
この文字列を検索のキーにすると、相手の表が数値の1234ならVLOOKUP関数で一致しません。数値として使うときは、=VALUE(A2&B2) で数値に戻してください。照合で一致しないときの見方はVLOOKUP関数の使い方も参考になります。
住所を2行に分けて1セルに入れたいときは、改行を表す CHAR(10) を挟むのが定番です。=A2&CHAR(10)&B2 と書き、そのセルの「折り返して全体を表示する」をオンにすると2行で表示されます。詳しくはエクセルの改行の記事で扱いました。
1行目だけ手でつないだ見本を入力し、下のセルでCtrl+Eを押すと、残りの行を同じパターンで埋めてくれます。Microsoft サポート「Excel のキーボード ショートカット」にある「フラッシュ フィル」の操作です。
入るのは値なので、元のセルを直しても結果は変わりません。一度きりの名簿の整形には手早く、毎月更新する表には数式のほうが向いています。
なお、「セルを結合して中央揃え」は複数のセルを見た目の上で1つにする機能で、文字列の結合とは別物です。中身をつなぐ目的で使うと、左上以外のデータが残りません。
よくある質問
Q1:CONCATを入力したら#NAME?エラーになりました
そのExcelがCONCATに対応していない可能性があります。買い切り版のExcel 2016以前では、CONCATとTEXTJOINは使えません。
&で書き直すか、CONCATENATEに置き換えれば同じ結果になります。社外の人と共有するファイルも、&で組んでおくと開く側の版を気にせずに済みます。
Q2:CONCATENATEとCONCATは何が違いますか?
一番の違いは、CONCATは範囲をまとめて指定できることです。CONCATENATEは、1セルずつカンマで並べる書き方しかできません。
Microsoft サポート「CONCATENATE 関数」によると、CONCATENATEは今後の版で使えなくなる可能性があります。新しく書く式はCONCATを使うよう勧められています。
Q3:空欄のセルがあると区切りの「、」が続いてしまいます
TEXTJOINの2番目の引数をTRUEにしてください。空のセルを飛ばしてつなぐので、「、、」のように区切りが重なりません。
&で組んでいる場合は、IF関数で空欄のときだけ区切りを付けない形にする必要があり、式が長くなります。空欄が混ざる表なら、TEXTJOINに切り替えたほうが早いです。
Q4:別のシートのセルもつなげますか?
つなげます。=Sheet2!A2&B2 のように、シート名の後ろに「!」を付けてセルを指定すれば大丈夫です。
式を入力している途中で別のシートのタブをクリックし、セルを選べば、シート名は自動で入ります。
Q5:つないだ文字列を元のように分けたいときは?
分けるなら、「データ」タブの「区切り位置」が手軽です。カンマやスペースなどの区切り文字の位置で、列ごとに分けてくれます。
Microsoft 365なら、TEXTSPLIT関数で =TEXTSPLIT(A2,"、") のように数式で分ける方法もあります。区切り文字を入れずにつないだ文字列は、あとから分けるのが大変です。分ける予定があるなら、区切りを入れてつないでおくのがおすすめです。
まとめ
文字列の結合の要点
- 2〜3個なら&、範囲はCONCAT、区切りが要るならTEXTJOIN
- CONCATとTEXTJOINはMicrosoft 365と買い切り版2019以降
- 日付・金額・%はTEXT関数で表示を指定してからつなぐ
- 元の列を消すなら、先に値の貼り付けで数式を外す
- 結合結果は文字列。数値として使うならVALUEで戻す
- TEXT関数の使い方|表示形式の記号一覧と文字列になる落とし穴
- SUBSTITUTE関数の使い方|文字の置換・削除とn番目だけ置き換える方法
- エクセルの改行|セル内で改行するショートカットと一括削除・数式での改行
参考にした公式情報: CONCAT 関数/TEXTJOIN 関数/CONCATENATE 関数/テキストと数値を結合する/Microsoft Excel で 2 つ以上のセルのテキストを 1 つのセルに結合する/データをクリーンアップする方法トップ 10(いずれもMicrosoft サポート・2026年9月確認)
※関数の対応状況や操作手順はExcelのバージョンにより異なる場合があります。本記事はMicrosoft 365のデスクトップ版Excel(Windows)を前提に、買い切り版との違いを補足した内容です。

