【Excel】&・CONCAT・TEXTJOINの違い|空欄・区切り文字・日付の連結

【Excel】&・CONCAT・TEXTJOINの違い|空欄・区切り文字・日付の連結
🛡️ 超解決

氏名に「様」を付けるなら=A2&"様"、横に並ぶ住所をそのままつなぐなら=CONCAT(A2:C2)が使えます。セルの間に区切りを入れ、空欄も飛ばしたいときはTEXTJOINを選びます。

【要点】少数のセルや固定文字を組み合わせるなら&、範囲を一続きにするならCONCAT、区切り文字を共通指定するならTEXTJOINです。CONCATとTEXTJOINはMicrosoft 365やExcel 2019以降などの対応環境で使います。配布先が古い版なら、その環境でも計算できるか確認してください。

ADVERTISEMENT

1. 連結後の形を先に決める

「連結」は、複数の内容から1つの文字列を作る操作です。セルを結合して見た目を広げる操作とは違います。元のA列やB列は残したまま、空いている列へ式を入れます。いきなり原本の列に結果を貼り付けると、後から姓と名に分けて使うときに困ります。

A2が「山田」、B2が「花子」の場合、間を空けない結果は「山田花子」、空白を入れる結果は「山田 花子」です。宛名ならさらに「様」を付けるかを決めます。式を選ぶ前に、区切り、敬称、空欄の扱いを1行分の完成形として書いておくと判断できます。

3セル以上だから必ず関数に変える、といった決まりはありません。たとえば「商品名(品番)」のように場所ごとに違う記号を入れるなら、&でつないだ方が読みやすいこともあります。処理速度の優劣だけで選ばず、修正する担当者が式の意味を理解できる形を選びます。

出力先セルを入力範囲の中に含めると循環参照になるため、A2:C2をまとめる式はD2など別の場所へ置いてください。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. &でセルと固定文字をつなぐ

空いているC2に=A2&" "&B2&" 様"と入力すると、例の氏名は「山田 花子 様」になります。セル番地は引用符で囲まず、空白や「様」などそのまま表示したい文字は半角の二重引用符で囲みます。

  1. A2とB2の元データを確認します。
  2. C2へ連結式を入力し、Enterで確定します。
  3. 余分な空白や敬称の重複がないか確認します。
  4. 問題がなければ下の行へコピーし、空欄を含む行も確認します。

たとえばA2が商品名「ノート」、B2が品番「N-015」なら、=A2&"("&B2&")"で「ノート(N-015)」になります。括弧を片側だけ書き忘れないよう、数式バーで開き括弧と閉じ括弧を確認します。

氏名欄にすでに「様」が付いている台帳では、そのまま連結すると「様 様」になります。関数が重複を判断してくれるわけではありません。元データをどこまで整えるかを決め、式を適用する前に数件の表記を点検します。

3. CONCATで範囲をまとめて連結する

CONCATは複数のセルや範囲の文字をつなぐ関数です。A2に「東京都」、B2に「中央区」、C2に「銀座1-1」があれば、=CONCAT(A2:C2)は「東京都中央区銀座1-1」になります。間に空白やカンマを自動挿入する引数はありません。

セルを個別指定して=CONCAT(A2," ",B2)のように固定文字を混ぜることもできます。ただし各項目の間に同じ区切りを入れたいなら、TEXTJOINの方が式を短くできます。住所に空白を入れるかは配布先の書式に合わせて決めてください。

範囲を指定するときは、その中に見出し、注記、合計、連結結果自身が入っていないかを見ます。名簿全体のA列を指定すると、不要な見出しや後から入力した値も結果に混ざるため、A2:A20のように対象を絞っておくと内容を追いやすくなります。

複数行・複数列を一度に連結する場合は、意図した順番かを小さな例で確認します。住所なら1件分を1行として連結し、完成した式を下へコピーする方が、全件が1つの長文になる誤りを避けられます。

4. 空欄を挟む例で3つの方法を比べる

A2が「東京」、B2が空欄、C2が「営業」で、項目を「 / 」で区切りたいとします。次のように、同じ元データでも式によって結果が変わります。

式 結果
=A2&" / "&B2&" / "&C2 東京 / / 営業
=CONCAT(A2:C2) 東京営業
=TEXTJOIN(" / ",TRUE,A2:C2) 東京 / 営業
=TEXTJOIN(" / ",FALSE,A2:C2) 東京 / / 営業

TRUEは空のセルを無視する指定です。空欄があっても項目の位置を残したい用途ではFALSEが合う場合もあります。たとえば3項目のうち中央が未入力だと分かる形にしたいなら、空欄を詰めることが正解とは限りません。

氏名や住所の表示用と、システムへ渡すデータでは要求が違います。CSVのような形式を作る場合は、データ自身にカンマや引用符が含まれることもあるため、TEXTJOINでカンマを入れるだけで適切なファイルになるとは判断しないでください。

5. TEXTJOINの区切りと空欄を調整する

=TEXTJOIN("、",TRUE,A2:A5)なら、空でない項目の間へ読点を入れます。区切りを改行にしたいときは=TEXTJOIN(CHAR(10),TRUE,A2:A5)とし、結果のセルで[折り返して全体を表示する]をオンにします。行の高さも調整して全項目が見えるかを確認します。

空欄に見えるセルに半角スペースや全角スペースが入っていると、空のセルとは違います。TRUEを指定しても、余計な区切りや空白が残る原因になります。該当セルを選び、数式バーや文字数を調べて、元データに不要な空白があるか確認してください。

スペースを一括削除すると、商品名の区切りや人名の表記まで変える場合があります。TRIMなどを使う場合も、どの空白を整理できるかを把握し、確認用の列で結果を見てから反映します。数字の0は空欄ではないので、0を表示しない目的なら別の条件を考える必要があります。

CONCATとTEXTJOINは、連結後の文字数がセルの上限32767文字を超えると#VALUE!になるため、一覧全体を1セルに押し込む用途では範囲を分けます。エラーを空文字に置き換える前に、元データと結果の長さを調べます。

6. 日付・金額・先頭ゼロはTEXTで表示を指定する

Excelの日付は値として管理されるため、="締切:"&B2だけでは日付がシリアル値に見えることがあります。B2が日付なら="締切:"&TEXT(B2,"yyyy/mm/dd")とし、表示したい形式へ整えます。これにより「締切:2026/09/30」のように表示できます。

金額を桁区切り付きにしたい場合は="合計 "&TEXT(B2,"#,##0")&"円"です。表示形式を指定すると連結結果は文字列になるので、その結果を合計計算に使うのではなく、元の金額セルを計算用として残します。

番号が数値の1で、規則上3桁と決まっているなら=TEXT(A2,"000")で001を作れます。ただし失った桁数が不明な番号を推測で復元する方法ではありません。番号は入力前から文字列で保存する方が、先頭ゼロを保ちやすくなります。

#NAME?が出る、関数名に_xlfn.が付く場合は、利用する版が関数に対応しているかを確認します。少数セルなら&へ書き換える方法、完成結果だけ配布するなら別の列へ値貼り付けする方法があります。式を残す原本は別に保存しておきます。

7. まとめ:元データを残して結果を確認する

連結は、必要な区切りと空欄の扱いから式を選びます。日付や金額はTEXTで表示を整え、元データの意味を変えないようにします。数式のコピー後は、先頭だけでなく空欄のある行と最後の行も確認してください。

結果を固定する場合は、完成列をコピーし、別の場所へ[値]として貼り付けます。値貼り付け後は元データの変更が反映されないので、後から更新する原本には式を残します。戻す必要があるときに、元の列と数式を取り出せる状態で保存しておきましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】