スプレッドシートのCONCAT関数の使い方|2つの値を結合(Excelとの違いに注意)

スポンサーリンク

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

Googleスプレッドシートで2つのセルの値をつなげたい。そんなとき使えるのがCONCAT関数です。「CONCATENATEとどう違うの?」「&演算子じゃダメなの?」と迷う方も多いですよね。

先に大事な注意点をお伝えします。GoogleスプレッドシートのCONCAT関数は、結合できる値が2つだけです。ExcelのCONCAT関数(範囲指定OK・引数無制限)とは仕様がまったく違うので、Excelの感覚で使うとエラーになります。

この記事では、CONCAT関数の正しい構文と、CONCATENATE・&演算子・TEXTJOINとの使い分けを解説します。

読み方と語源

CONCAT関数の読み方は「コンカット」です。英語の Concatenate(連結する)の略が由来になっています。CONCATENATEの短縮版と覚えておくとわかりやすいですよ。

構文と引数の説明

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

=CONCAT(値1, 値2)
引数必須/省略可説明
値1必須結合したい文字列・数値・セル参照
値2必須結合したいもう1つの文字列・数値・セル参照

引数はちょうど2個です。3個以上を渡したり、A1:A5 のようなセル範囲を1つの引数として結合したりすることはできません。エラーになります。

WARNING

ExcelのCONCAT関数(Excel 2019以降)は「範囲指定OK・引数の個数制限なし」ですが、これはExcelだけの仕様です。GoogleスプレッドシートのCONCATは引数2個固定で、実質的に & 演算子と同じ働きをします。Web上の解説記事はExcelの仕様を前提にしたものが多いので注意してくださいね。

基本的な書き方の例

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

=CONCAT(A2, B2)

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

間にスペースを入れたいときは、引数が3つ必要になるためCONCATでは書けません。& 演算子かCONCATENATEを使います。

=A2 & " " & B2
=CONCATENATE(A2, " ", B2)

結果はどちらも「山田 太郎」になります。このように「3つ以上をつなげたくなったらCONCAT卒業」と覚えておくとシンプルですよ。

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

結合できる個数が最大の違い

Googleスプレッドシートでは、CONCATENATEのほうが高機能です。CONCATENATEは引数をいくつでも指定でき、セル範囲もまとめて渡せます。

A1に「東京都」、A2に「渋谷区」、A3に「1-2-3」と入っている場合を比べてみましょう。

CONCATENATE関数の場合(範囲でも個別でもOK)

=CONCATENATE(A1:A3)
=CONCATENATE(A1, A2, A3)

どちらも結果は「東京都渋谷区1-2-3」です。

CONCAT関数の場合(2個までしか結合できない)

=CONCAT(A1, A2)     → 「東京都渋谷区」(2個なら結合できる)
=CONCAT(A1:A3)      → エラー(範囲の一括結合は不可)
=CONCAT(A1, A2, A3) → エラー(引数3個は不可)

「CONCATは短い名前だから新しくて高機能なはず」と思いがちですが、スプレッドシートでは逆です。注意してくださいね。

CONCAT vs CONCATENATE 比較表

2つの関数の違いを表にまとめました。

比較項目CONCATCONCATENATE
引数の個数2個固定制限なし
セル範囲の一括結合非対応対応(A1:A3 のように指定可)
区切り文字の自動挿入不可(手動で挿入)不可(手動で挿入)
空白セルのスキップ不可不可
位置づけ2値結合の簡易関数標準の文字列結合関数

3つ以上の値や範囲を結合するならCONCATENATE関数、区切り文字が必要なら後述のTEXTJOIN関数を選びましょう。

4つの文字列結合方法の使い分け

スプレッドシートには文字列を結合する方法が主に4つあります。それぞれの特徴を比較してみましょう。

CONCAT・CONCATENATE・&・TEXTJOIN 比較表

方法結合できる個数セル範囲区切り文字空白スキップ
CONCAT2個固定非対応手動不可
CONCATENATE制限なし対応手動不可
& 演算子制限なし非対応手動不可
TEXTJOIN制限なし対応自動対応

区切り文字の自動挿入と空白スキップに対応しているのはTEXTJOIN関数だけです。

どれを使うか迷ったら ── 判断フロー

次の基準で選んでみてください。

  • セルが2〜3個でシンプルに結合 → & 演算子
  • セル範囲をまとめて区切りなしで結合 → CONCATENATE
  • 区切り文字を自動で入れたい → TEXTJOIN
  • 空白セルをスキップしたい → TEXTJOIN
  • カンマ区切りの1行テキストを作りたい → TEXTJOIN または JOIN関数

正直なところ、スプレッドシートでCONCATを積極的に選ぶ場面はほとんどありません。& 演算子のほうが短く書けるからです。CONCATは「Excelから移行した数式に入っていたら意味がわかる」程度に押さえておけば十分ですよ。

CONCAT関数まわりの実務パターン集

名前リストをひとつのセルにまとめる

A1〜A5に「田中」「佐藤」「鈴木」「高橋」「山田」と入っているとします。これを1つのセルにまとめてみましょう。CONCATでは範囲を渡せないので、CONCATENATEかTEXTJOINを使います。

=CONCATENATE(A1:A5)

結果は「田中佐藤鈴木高橋山田」です。

カンマ区切りで「田中,佐藤,鈴木,…」のようにしたい場合はTEXTJOINを使います。

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

「区切り文字なしで範囲一括ならCONCATENATE、区切り文字ありならTEXTJOIN」と覚えてみてください。

複数列の値を一気に連結する

商品コードを生成するケースを見てみましょう。A列にカテゴリ、B列にサイズ、C列に番号が入っている場合です。区切り文字を挟むと引数が5個になるため、CONCATでは書けません。

=CONCATENATE(A2, "-", B2, "-", C2)
=A2 & "-" & B2 & "-" & C2

A2が「ELC」、B2が「M」、C2が「001」なら、結果はどちらも「ELC-M-001」になります。

区切りなしで良い場合は範囲指定でこう書けます。

=CONCATENATE(A2:C2)

結果は「ELCM001」です。

日付や数値を文字列と組み合わせる

日付セルをそのままCONCATに渡すとシリアル値(数字の羅列)が表示されます。これはよくあるトラブルです。

A2に「2026/4/1」が入っている場合を見てみましょう。

=CONCAT("開始日:", A2)
→ 「開始日:46113」(シリアル値が出てしまう)

TEXT関数(数値を指定した書式の文字列に変換する関数)で変換してから結合しましょう。引数2個に収まるので、これはCONCATでも書けるパターンです。

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

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

Excelとの互換性とよくあるエラー

Excelとの仕様の違い

CONCAT関数は、GoogleスプレッドシートとExcelで同名なのに仕様が大きく異なる珍しい関数です。

項目GoogleスプレッドシートExcel(2019以降)
引数の個数2個固定最大253個
セル範囲の一括結合非対応対応(=CONCAT(A1:A10) が可能)
位置づけ&演算子の関数版CONCATENATEの後継

ExcelからスプレッドシートにファイルをインポートしたときにCONCATの数式が入っていると、引数3個以上や範囲指定の部分がエラーになります。その場合はCONCATENATEかTEXTJOINに書き換えてください。

両方で動く数式にしたいなら

ExcelとGoogleスプレッドシートの両方で同じように動かしたい場合は、CONCATENATE関数(個別セル指定)か & 演算子で書くのが安全です。どちらも両環境で同じ動作をします。

よくあるエラーと対処法

エラー・症状原因対処法
引数3個以上でエラースプレッドシートのCONCATは2個固定CONCATENATEか&演算子に書き換え
範囲指定(A1:A5)でエラーCONCATは範囲の一括結合に非対応CONCATENATEかTEXTJOINに書き換え
数値がそのまま表示される日付やパーセントを直接渡したTEXT関数で書式変換してから結合
余分なスペースが入る元のセルにスペースが含まれているTRIM関数で前後の空白を除去
区切り文字が入らないCONCATに区切り文字の自動挿入機能はない手動で挟むか、TEXTJOINに切り替え

まとめ

GoogleスプレッドシートのCONCAT関数は、2つの値を結合するシンプルな関数です。ExcelのCONCATとは別物と考えてください。

おさらいです。

  • スプレッドシートのCONCATは引数2個固定・セル範囲非対応
  • ExcelのCONCAT(範囲指定OK・引数無制限)とは仕様が異なるので要注意
  • 3つ以上の値や範囲をまとめるなら CONCATENATE
  • 区切り文字や空白スキップが必要なら TEXTJOIN
  • 2〜3個のシンプルな結合なら & 演算子 が手軽
  • 日付を結合するときは TEXT関数 で書式変換を忘れずに

範囲をまとめて結合したい場面では、CONCATENATE関数TEXTJOIN関数を使い分けてみてください。文字列を結合したあとの加工には、LEFT関数で先頭から文字を取り出す方法もよく使います。

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