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

エクセルで文字列を結合する方法

エクセルで文字列を結合するなら、2〜3個は「&」で十分です。範囲をまとめてつなぐならCONCAT関数、区切り文字を挟むならTEXTJOIN関数を使います。CONCATとTEXTJOINは、買い切り版ではExcel 2019以降でないと使えません。

この記事でわかること

  • &・CONCATENATE・CONCAT・TEXTJOINの使い分けとバージョン差
  • スペースや「様」などの文字を挟んでつなぐ書き方
  • 日付が46294のような数字に化けるときの直し方
  • 金額のカンマや0から始まる番号を残したまま結合する方法
  • 結合したあと元の列を消しても壊れないようにする手順

姓と名、都道府県と市区町村、品番と色コード。別々の列に入っている文字を1つのセルにまとめたい場面は、名簿でも帳票でもよく出てきます。

方法は4つありますが、迷ったら2〜3個なら&、それ以上や区切りが要るならTEXTJOINと覚えておけば困りません。日付や金額をつなぐときだけ、ひと手間必要になります。

目次

文字列を結合する4つの方法と選び方

文字列の結合とは、複数のセルや文字を1つの文字列につなげることです。エクセルには「&」の記号と、CONCATENATE・CONCAT・TEXTJOINの3つの関数があります。

4つの方法の違い
方法書き方の例範囲の指定区切り文字使えるバージョン
&=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:範囲をそのままつなぐ

=CONCAT(A2:D2) と書けば、A2からD2までを左から順につなぐ形です。&で書くと =A2&B2&C2&D2 になる式が、範囲1つで済みます。

区切りを入れたいときは =CONCAT(A2,"-",B2,"-",C2) のように自分で挟むしかありません。CONCATには区切り文字や空のセルを無視する引数が無い、というのが前出のMicrosoft サポートの説明です。

TEXTJOIN:区切りと空欄の扱いを一度に決める

TEXTJOINの形は =TEXTJOIN(区切り文字, 空のセルを無視するか, 文字列1, …) です。

  1. 区切り文字:間に入れる文字。「”、”」「” “」など
  2. 空のセルを無視するか:TRUEなら空欄を飛ばす、FALSEなら空欄の分も区切りが入る
  3. 文字列:つなぐセルや範囲

たとえば担当者が3人分の列に入っていて、2人目が空欄のとき。=TEXTJOIN("、",TRUE,B2:D2) なら「佐藤、鈴木」と、空欄の分の「、」が入りません。FALSEにすると「佐藤、、鈴木」になります。

Microsoft サポート「TEXTJOIN 関数」によると、対象はMicrosoft 365とExcel 2019以降です。結果が32,767文字(セルの上限)を超えると#VALUE!エラーになる点も、CONCATと共通しています。

条件に合うものだけをつなぐ(Microsoft 365・Excel 2021以降)

「東京支店の担当者名だけを、1つのセルに並べたい」といった使い方もできます。FILTER関数で絞ってからTEXTJOINに渡す形です。

=TEXTJOIN("、",TRUE,FILTER(B2:B50,A2:A50="東京"))

A列が「東京」の行だけ、B列の名前を「、」でつなぎます。FILTER関数が使えるのはMicrosoft 365とExcel 2021以降です。詳しい書き方はFILTER関数の使い方を見てください。

日付・金額・0から始まる番号が崩れるときはTEXT関数

日付や金額を文字とつなぐと、画面の見た目ではなく、中に入っている値が使われます。Microsoft サポート「テキストと数値を結合する」でも、表示の書式が失われる例と、TEXT関数で表示を指定する方法が載っています。

そのままつなぐと崩れる例と、TEXTでの直し方
セルの見た目&でつなぐとTEXTを使った書き方
2026/9/2946294TEXT(A2,”yyyy/m/d”)
2026年9月29日46294TEXT(A2,”yyyy年m月d日”)
1,5001500TEXT(B2,”#,##0″)&”円”
40%0.4TEXT(C2,”0%”)
00123(表示形式で0埋め)123TEXT(D2,”00000″)

日付が46294のような数字になるのは、エクセルが日付を「1900年1月1日から数えた通し番号」で持っているからです。この仕組みはエクセルの日付の扱い方で詳しく解説しました。

たとえば「9月29日締め」という文字を作るなら、=TEXT(A2,"m月d日")&"締め" と書けばOKです。TEXTの中の書式記号は、セルの表示形式と同じものが使えます。記号の一覧はTEXT関数の使い方にまとめました。

0から始まる番号は、どう入っているかで対処が変わる

社員番号や品番の「00123」は、入り方が2通りあります。

  • 表示形式で0を足している(中身は123):TEXT(D2,”00000″)で桁をそろえてからつなぐ
  • 文字列として入っている(中身も00123):そのままつないでも0は消えない

見分け方は、セルを選んで数式バーを見ることです。数式バーに「123」と出ていれば、表示形式で0を足している方です。

結合したあとの扱い(値に変える・照合・改行)

結合した結果には、数式が入ったままになっています。元の列を消す予定があるなら、先に値へ変えておくことを忘れないでください。

元の列を消す前に「値の貼り付け」をする

数式のまま元の列を削除すると、参照先が無くなって#REF!エラーに変わります。Microsoft サポート「データをクリーンアップする方法トップ 10」でも、この順番です。新しい列をコピーして値として貼り付け、それから元の列を削除します。

  1. 結合した列を選んでCtrl+Cでコピーする
  2. 同じ場所で右クリック→「貼り付けのオプション」の「値」を選ぶ
  3. 数式バーを見て、式ではなく文字になったことを確かめる
  4. 元の列を削除する

結合した結果は「文字列」になる

数字同士をつないでも、結果は計算できる数値ではなく文字列です。たとえば =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で戻す

あわせて読みたい

参考にした公式情報: CONCAT 関数/TEXTJOIN 関数/CONCATENATE 関数/テキストと数値を結合する/Microsoft Excel で 2 つ以上のセルのテキストを 1 つのセルに結合する/データをクリーンアップする方法トップ 10(いずれもMicrosoft サポート・2026年9月確認)

※関数の対応状況や操作手順はExcelのバージョンにより異なる場合があります。本記事はMicrosoft 365のデスクトップ版Excel(Windows)を前提に、買い切り版との違いを補足した内容です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次