CONCATENATE関数の使い方|&演算子との違いと使い分け

CONCATENATE関数の使い方|&演算子との違いと使い分け

執筆者:

カテゴリ:

CONCATENATEは、複数の文字列をつなげる関数です。

「姓」と「名」を結合してフルネームにする、住所の各項目をつなげる、といった処理に使います。

ただし実務では、& 演算子か TEXTJOIN を使うほうが多いのが実情です。この記事では使い分けまで整理します。

書式

=CONCATENATE(文字列1, [文字列2], ...)

基本の使い方

A B
1 山田 太郎
=CONCATENATE(A1, B1)      → 山田太郎
=CONCATENATE(A1, " ", B1) → 山田 太郎

区切り文字を入れたいときは、間に文字列を挟みます。

&演算子との違い

同じことが & でも書けます。

=A1 & B1
=A1 & " " & B1

結果はまったく同じです。 どちらを使うかは好みの問題ですが、実務では次のような使い分けが一般的です。

CONCATENATE &
短い連結 冗長 簡潔
項目が多い 見やすい & だらけで読みにくい
数式内での可読性 括弧が必要 直感的

2〜3個なら &、それ以上なら関数、というのが目安です。

範囲を渡したときの挙動

ここが最大の注意点です。

=CONCATENATE(A1:A5)

この書き方は、期待通りに動きません。 スプレッドシートでは範囲を渡すと、最初のセルだけ、または配列として展開されるなど、環境によって挙動が不安定です。

範囲をまとめて連結したいなら、TEXTJOIN を使ってください。

=TEXTJOIN(", ", TRUE, A1:A5)

区切り文字を指定でき、空欄を無視でき、範囲をそのまま渡せます。CONCATENATEの上位互換と考えて構いません。

CONCATとの違い

CONCAT という似た関数もあります。

=CONCAT(A1, B1)

引数を2つしか取れません。 3つ以上つなげたい場合はCONCATENATEか & を使ってください。

Excelでは CONCAT が範囲に対応していますが、スプレッドシートの CONCAT は2引数専用です。同名でも挙動が違うので注意してください。

日付や数値が崩れる原因

日付をそのまま連結すると、内部の数値(シリアル値)が出てしまいます。

=CONCATENATE("更新日:", A1)   → 更新日:46113

TEXT で書式を指定してから連結してください。

=CONCATENATE("更新日:", TEXT(A1, "yyyy/m/d"))   → 更新日:2026/4/1

金額も同様です。

=CONCATENATE("合計:", TEXT(A1, "¥#,##0"))   → 合計:¥1,234,567

桁区切りやゼロ埋めは、連結すると消えます。 表示形式はセルの設定であって、値そのものではないためです。ここは実務で頻繁に起きるトラブルです。

改行を入れる

CHAR(10) が改行です。

=CONCATENATE(A1, CHAR(10), B1)

セルの書式で「折り返し」を有効にしないと、改行が見えません。 数式は正しくても表示されないので、書式を確認してください。

全行に適用する

ARRAYFORMULA と組み合わせられますが、& のほうが確実に動きます。

=ARRAYFORMULA(IF(A2:A="", "", A2:A & " " & B2:B))

CONCATENATEは配列に対する挙動が安定しないため、ARRAYFORMULA の中では & を使ってください。

使い分けのまとめ

やりたいこと 使うもの
2〜3個のセルをつなぐ &
項目が多く、可読性を上げたい CONCATENATE
範囲をまとめて連結 TEXTJOIN
区切り文字を入れて連結 TEXTJOIN
空欄を飛ばして連結 TEXTJOIN
ARRAYFORMULA の中 &

迷ったら TEXTJOIN を検討してください。 CONCATENATEでしかできないことは、実質ありません。

Excelとの違い

CONCATENATE・&TEXTJOIN はすべて共通です。

違いは CONCAT です。

Excel スプレッドシート
CONCAT の引数 範囲も可 2つまで
CONCATENATE 非推奨(CONCAT 推奨) 現役

ExcelではCONCATENATEは互換性のために残されている扱いですが、スプレッドシートでは普通に使えます。ただしどちらの環境でも、&TEXTJOIN を使うのが現代的です。


三つの連結方法の使い分け

文字列をつなぐ方法は三つあります。連結記号を使う方法、この関数を使う方法、区切り文字を指定できる関数を使う方法です。それぞれ得意な場面が違います。

連結記号を使う方法は、つなぐ数が少ないときにもっとも簡潔です。二つか三つなら、これが読みやすくなります。記号を並べるだけなので、書き方も覚えやすいものです。

この関数は、引数として並べる形です。連結記号と本質的には同じで、書き方が違うだけです。数式の見た目としては、括弧の中に並ぶので構造が分かりやすいという利点があります。範囲をまとめて渡せる版もありますが、区切り文字は入りません。

区切り文字を指定できる関数は、実務でもっとも使えます。区切り文字を一度指定するだけで、すべての要素の間に入ります。範囲をまとめて渡せるうえ、空白のセルを無視するかどうかも選べます。

判断としては、つなぐ数が二つか三つで区切りが不要なら連結記号、区切り文字が必要か数が多いなら三つ目の関数、と考えてください。この関数を選ぶ場面は、実際には限られます。→ TEXTJOIN関数の使い方


連結すると型が変わる

連結の結果は、必ず文字列になります。数値をつないでも、日付をつないでも、結果は文字列です。

これが問題になるのは、連結した結果を計算に使う場合です。文字列同士を足し算しようとしてもエラーになります。数値として使いたいなら、数値に変換する関数で包む必要があります。

もうひとつ、書式が失われる点も重要です。表示形式で桁区切りを入れていても、連結すると内部の値がそのまま出ます。日付も、内部の連続した数値が出てしまいます。

望む形式で連結したいなら、連結の前に文字列へ変換します。書式を指定できる関数を使えば、桁区切りや日付の形式を指定したうえで文字列にできます。→ TEXT関数の使い方

この一手間を忘れると、「日付をつないだら意味不明な数字になった」という状態になります。原因を知らないと悩みますが、仕組みが分かれば対処は簡単です。


検索キーを作るという用途

連結の実務的な用途として、複数の条件を組み合わせた検索キーを作る方法があります。

検索の関数は、条件を一つしか指定できません。商品コードと支店の組み合わせで単価を引きたい、というような二条件の検索は、そのままではできません。

そこで、マスタ側に結合列を作ります。商品コードと支店をつないだ値を持たせるのです。検索する側でも同じ形の値を作れば、一つのキーとして検索できます。

このとき、区切り文字を入れることが重要です。単純につなぐと、異なる組み合わせが同じ値になることがあります。「AB」と「1」をつないだ値と、「A」と「B1」をつないだ値は、区切りがなければ同じになります。ハイフンなどを挟んでおけば、この衝突を防げます。

結合列を作る方法は、数式の中で条件を連結する書き方より読みやすく、動作も軽くなります。検索のたびに連結の処理が走らないためです。


住所や氏名を組み立てる

帳票や宛名を作る場面では、分かれて持っている情報を組み立てる処理が必要になります。

氏名なら、姓と名の間に空白を入れます。全角の空白を使うか半角にするかは、用途によって決めてください。宛名では全角が一般的です。

住所なら、都道府県、市区町村、番地、建物名をつなぎます。ここで問題になるのが、建物名が空の場合です。単純につなぐと、末尾に余計な空白や区切りが残ります。

対処は二つあります。ひとつは、条件分岐で空欄を判定する方法。もうひとつは、空白を無視する設定がある関数を使う方法です。後者のほうが数式が短く、項目が増えても対応できます。

敬称を付ける場合も同様です。個人なら様、法人なら御中。区分によって変わるので、条件分岐か対応表で振り分けてから連結します。

こうした組み立ては、印刷用のシートで行うのが基本です。データのシートには分かれたまま持ち、表示のときに組み立てる。この分離ができると、集計も検索も素直に動きます。


表示用の文字列を組み立てる

帳票や通知の文面を数式で組み立てると、手作業の転記がなくなります。誤りも減ります。

たとえば、請求書の宛名を組み立てる場合。会社名、部署名、役職、氏名、敬称。これらを別々の列に持ち、表示のときに連結します。部署や役職が空の場合もあるので、空白を無視する連結を使うか、条件で分岐します。

案内文の一部を組み立てることもできます。「◯◯様の△△は□□円です」という文面なら、固定の文字と、参照するセルを交互に連結します。金額は桁区切りを入れた文字列に変換してから連結してください。

ファイル名を組み立てる用途もあります。日付と取引先名と種別をつないだ形です。日付は決まった形式に変換し、記号は使えないものを避けます。

こうした組み立ては、印刷用のシートで行うのが基本です。データのシートには分かれたまま持ち、表示のときに組み立てる。この分離ができていると、集計も検索も素直に動きます。

組み立てた結果をコピーして使う場合は、値として貼り付けてください。数式のままでは、別の場所に貼ったときに参照が崩れます。


連結の前に型を揃える

連結でもっとも多い失敗が、型の扱いです。数値と日付は、そのまま連結すると内部の表現が出てきます。

金額を連結する場合、表示形式で桁区切りを入れていても、連結には反映されません。書式を指定して文字列に変換してから連結してください。通貨記号や小数点以下の桁数も、変換のときに指定します。

日付は、内部的には連続した数値です。そのまま連結すると五桁の数字になります。年月日の形式を指定して文字列に変換する必要があります。

パーセントも同様です。内部では小数として保持されているため、そのまま連結すると小数が出ます。

論理値を連結すると、真偽を表す文字列になります。日本語で表示したい場合は、条件分岐で変換してから連結してください。

これらの変換を、連結の数式の中で毎回書くと読みにくくなります。変換済みの作業列を用意して、連結はその列を参照する形にすると、数式が短くなります。

型を揃える工程を挟むという発想は、連結に限らず表計算全般で有効です。取り込んだデータを整形してから使う、という順序を習慣にしてください。

よくある質問

Q. 連結記号とこの関数のどちらを使うべきですか

数が少なければ連結記号が簡潔です。この関数を選ぶ利点は、括弧で構造が分かりやすくなる程度です。

Q. 範囲をまとめて連結できますか

範囲を受け取れる版がありますが、区切り文字は入りません。区切りが必要なら別の関数を使ってください。

Q. 日付をつなぐと数字になります

内部の値が出ています。連結の前に文字列へ変換してください。

Q. 桁区切りが消えます

表示形式は連結の結果に反映されません。書式を指定して文字列に変換してください。

Q. 空欄があると余計な区切りが残ります

空白を無視する設定がある関数を使うか、条件分岐で判定してください。

Q. 連結した結果で計算できません

結果は文字列です。数値に変換する関数で包んでください。

Q. 改行を入れたいのですが

改行を表す関数を挟んでください。セルの表示で折り返しを有効にしないと一行に見えます。

Q. 逆に分割したいのですが

区切り文字で分割する関数があります。→ SPLIT関数の使い方


まとめ

  • 書式は =CONCATENATE(文字列1, 文字列2, ...)
  • & とまったく同じ結果。2〜3個なら & が簡潔
  • 範囲を渡すと期待通りに動かないTEXTJOIN を使う
  • 日付・金額は TEXT で書式を指定してから連結する
  • 改行は CHAR(10)。セルの折り返し設定も必要
  • ARRAYFORMULA の中では & を使う

関連する関数