スプレッドシートのCONCATENATE関数の使い方|CONCAT・&との違いも解説

スポンサーリンク

CONCATENATE関数の基本的な使い方(スプレッドシート)

Googleスプレッドシートで文字列を結合したい。そんなとき最初に出会うのがCONCATENATE関数です。でも「CONCATやTEXTJOINとどう違うの?」と迷う人も多いですよね。この記事では、基本から4つの選択肢の使い分けまで、実務パターンつきで解説します。

構文と引数の説明

CONCATENATE関数の構文はこちらです。

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

引数にはセル参照や直接入力した文字列を指定します。カンマで区切って最大30個まで並べられます。

ひとつ注意点があります。セル範囲(A1:C1のような指定)には対応していません。範囲を渡しても、先頭のA1しか結合されないんです。これはよくあるハマりポイントなので覚えておいてください。

基本的な書き方の例(氏名結合・コード生成)

A列に「姓」、B列に「名」が入っている場合を見てみましょう。

=CONCATENATE(A2, B2)

これで「山田太郎」のように姓名がつながります。

商品コードの生成にも使えます。カテゴリ(A列)と番号(B列)を結合するケースです。

=CONCATENATE(A2, "-", B2)

A2が「ELC」、B2が「001」なら、結果は「ELC-001」になります。間にハイフンを直接入れているのがポイントです。

&演算子との違いと使い分け

&演算子で結合する方法

文字列結合には&演算子も使えます。書き方はこちらです。

=A2&B2

CONCATENATE関数と結果はまったく同じです。間に文字を挟みたいときはこうします。

=A2&"-"&B2

関数名を書かなくていいぶん、短くスッキリしますよね。

CONCATENATE vs & ─ どちらを使うべきか

結論から言うと、2〜3個の結合なら&演算子がおすすめです。

&演算子のメリットは、数式が短くて読みやすいこと。引数の上限もありません。一方でCONCATENATE関数は、関数に慣れている人には意味が伝わりやすいです。

ただし、どちらもセル範囲には対応していません。結合したいセルが多い場合は、後述するCONCATやTEXTJOINを検討してみてください。

CONCATENATEとCONCATの違い(スプレッドシート)

CONCATの特徴と制限

CONCATはCONCATENATEの後継にあたる関数です。構文はこちらです。

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

最大の違いはセル範囲に対応していること。たとえばA1〜C1を一気に結合できます。

=CONCAT(A1:C1)

引数も最大255個まで指定できます。CONCATENATEの30個と比べるとかなり余裕がありますよね。

Googleスプレッドシートでは早くから使えるので、新しく数式を書くならCONCATを選ぶのが自然ですよ。

3関数+演算子 比較表

それぞれの特徴を表にまとめました。

方法セル範囲区切り文字空白スキップ最大引数
CONCATENATE不可手動不可30
CONCAT手動不可255
& 演算子不可手動不可制限なし
TEXTJOIN自動252

区切り文字と空白スキップに対応しているのはTEXTJOINだけです。用途に応じて使い分けてみてください。

区切り文字を自動で入れるテクニック

スペース・カンマ・スラッシュを挟む方法

CONCATENATE関数で区切り文字を入れるには、引数に直接指定します。

スペース区切りの場合はこちらです。

=CONCATENATE(A2, " ", B2)

カンマ区切りならこうなります。

=CONCATENATE(A2, ", ", B2)

3つ以上のセルを結合するときは、毎回区切り文字を挟む必要があります。

=CONCATENATE(A2, "/", B2, "/", C2)

セルが増えると数式が長くなりがちです。この手間が気になったらTEXTJOINへの切り替えどきですよ。

空白セルを無視して結合したい場合

CONCATENATE関数には空白セルをスキップする機能がありません。空白セルがあると、区切り文字だけが余分に入ってしまいます。

たとえばB2が空のとき、こうなります。

=CONCATENATE(A2, " ", B2, " ", C2)
→ 「東京  渋谷」(スペースが2つ続く)

これを避けるにはIF関数で条件分岐する方法があります。ただし数式がかなり複雑になります。

結合先に空白セルが混じるケースでは、素直にTEXTJOINを使うのがベストです。余分なスペースが気になる場合は、TRIM関数で前後の空白を除去する方法もありますよ。

TEXTJOINへの乗り換えを検討すべきタイミング

TEXTJOINでできること(区切り文字・空白無視)

TEXTJOIN関数の構文はこちらです。

=TEXTJOIN(区切り文字, 空白を無視, 文字列1, ...)

第1引数に区切り文字を指定します。第2引数のTRUE/FALSEで空白セルのスキップを制御できます。

=TEXTJOIN(" ", TRUE, A2:D2)

この1行で、A2〜D2を半角スペース区切りで結合できます。空白セルがあっても余分なスペースは入りません。セル範囲にも対応しているので、数式がとてもスッキリしますよね。

乗り換え判断フロー

どの関数を使うか迷ったら、次の基準で選んでみてください。

  • セルが2〜3個でシンプルに結合 → &演算子
  • 範囲をまとめて区切りなしで結合 → CONCAT
  • 区切り文字を自動で入れたい → TEXTJOIN
  • 空白セルをスキップしたい → TEXTJOIN
  • 古いExcelとの互換性が必要 → CONCATENATE

実務では、最初は&演算子で書き始めて、要件が増えたらTEXTJOINに切り替えるパターンが多いですよ。

実務でよく使うCONCATENATEのパターン集

氏名(姓+名)をスペースつきで結合

最もよくあるパターンです。A列に姓、B列に名が入っている場合です。

=CONCATENATE(A2, " ", B2)

結果は「山田 太郎」のようになります。全角スペースを使いたい場合は「 」に変えてください。

&演算子ならこう書けます。

=A2&" "&B2

短くて読みやすいので、こちらを使う人が多いですよ。

日付・数値を文字列に変換して結合(TEXT関数との組み合わせ)

日付セルをそのまま結合すると、シリアル値(数字の羅列)になってしまいます。これはよくあるトラブルです。

A2に「2026/4/1」が入っているとします。

=CONCATENATE("開始日:", A2)
→ 「開始日:46113」(シリアル値が出る)

TEXT関数(数値を指定した書式の文字列に変換する関数)で表示形式を指定してから結合しましょう。

=CONCATENATE("開始日:", TEXT(A2, "yyyy/m/d"))
→ 「開始日:2026/4/1」

パーセントや通貨の書式も同様です。セルの表示形式は結合時に失われます。TEXT関数で明示的に指定するのを忘れないでくださいね。

住所(都道府県+市区町村+番地)を1列にまとめる

A列に都道府県、B列に市区町村、C列に番地が入っているケースです。

=CONCATENATE(A2, B2, C2)

住所の場合は区切り文字が不要なので、シンプルに並べるだけでOKです。

もしマンション名(D列)が空の場合もあるなら、TEXTJOINが便利です。

=TEXTJOIN("", TRUE, A2:D2)

空白セルを自動でスキップしてくれますよ。

よくあるエラーと対処法

数値がそのまま結合されてしまうケース

先ほども触れましたが、日付や書式付き数値の結合は要注意です。

セル値そのまま結合TEXT関数で変換
2026/4/1461132026/4/1
50%0.550%
¥1,0001000¥1,000

対処法はTEXT関数との組み合わせです。

=CONCATENATE(TEXT(A2, "yyyy/m/d"), "〜", TEXT(B2, "yyyy/m/d"))

日付の表示形式は用途に合わせて変えてください。「yyyy年m月d日」のような書き方もできますよ。

空白セルが原因で余分なスペースが入るケース

区切り文字つきで結合したとき、空白セルがあると区切り文字が連続します。

たとえばB2が空で、スラッシュ区切りにした場合です。

=CONCATENATE(A2, "/", B2, "/", C2)
→ 「東京//渋谷」(スラッシュが2つ続く)

対処法は2つあります。

1つ目はTEXTJOINに切り替える方法です。

=TEXTJOIN("/", TRUE, A2:C2)
→ 「東京/渋谷」

2つ目は結合後にSUBSTITUTE関数で不要な文字を置換する方法です。ただし、TEXTJOINを使うほうがスマートですよ。

まとめ

CONCATENATE関数は文字列結合の基本です。ただし、現在のGoogleスプレッドシートにはもっと便利な選択肢もあります。

おさらいすると、使い分けはこうなります。

  • 2〜3個のシンプルな結合 → &演算子が手軽
  • セル範囲をまとめて結合 → CONCATが便利
  • 区切り文字や空白スキップが必要 → TEXTJOINが最適
  • 古いExcelとの互換性重視 → CONCATENATEを維持

まずは&演算子から使い始めてみてください。区切り文字や空白セルの処理が必要になったら、TEXTJOINへステップアップするのがおすすめです。

文字列を結合したあとの加工には、LEFT関数で先頭から文字を取り出す方法もよく使います。TRIM関数で余分なスペースを削除する方法も合わせて覚えておくと便利ですよ。

タイトルとURLをコピーしました