スプレッドシートのCONCAT関数の使い方|範囲指定で文字列を一括結合

スポンサーリンク

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

Googleスプレッドシートで複数のセルをまとめて結合したい。そんなとき便利なのがCONCAT関数です。「CONCATENATEとどう違うの?」「&演算子じゃダメなの?」と迷う方も多いですよね。

この記事では、CONCAT関数の構文から実務パターン、4つの結合方法の使い分けまで解説します。

読み方と語源

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

構文と引数の説明

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

=CONCAT(値1, [値2, ...])
引数必須/省略可説明
値1必須結合したい文字列、セル参照、またはセル範囲
値2, …省略可追加で結合したい文字列やセル範囲

引数にはセル参照(A1)、セル範囲(A1:C1)、直接入力した文字列のいずれも指定できます。引数の個数に上限はありません。

基本的な書き方の例

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

=CONCAT(A2, B2)

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

間にスペースを入れたいときはこう書きます。

=CONCAT(A2, " ", B2)

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

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

範囲指定が最大の違い

CONCAT関数の最大の特徴は「セル範囲をまとめて指定できる」ことです。

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

CONCATENATE関数の場合(セルを1つずつ指定)

=CONCATENATE(A1, A2, A3)

CONCAT関数の場合(範囲で一括指定)

=CONCAT(A1:A3)

どちらも結果は「東京都渋谷区1-2-3」です。3つのセルならまだいいですが、10個、20個と増えたらどうでしょう。CONCAT関数なら範囲指定で済むので数式がスッキリしますよね。

CONCAT vs CONCATENATE 比較表

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

比較項目CONCATCONCATENATE
セル範囲指定対応(A1:C1 のように指定可)非対応(セルを1つずつ指定)
引数の上限制限なし最大30個
区切り文字の自動挿入不可(手動で挿入)不可(手動で挿入)
空白セルのスキップ不可不可
位置づけCONCATENATEの後継レガシー(互換性のため残存)

違いは「範囲指定ができるか」と「引数の上限」の2点です。新しく数式を書くならCONCATを選ぶのがおすすめですよ。

CONCATENATEはいつ使う?

既存のシートにCONCATENATEの数式が入っている場合は、無理に書き換える必要はありません。動作に問題はないので、新規作成時からCONCATに切り替えれば大丈夫です。CONCATENATEの詳しい使い方はこちらで解説しています。

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

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

CONCAT・CONCATENATE・&・TEXTJOIN 比較表

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

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

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

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

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

実務では&演算子から始めて、範囲指定が必要になったらCONCAT、区切り文字や空白処理が必要になったらTEXTJOINへステップアップする流れが多いですよ。

CONCAT関数の実務パターン集

名前リストをひとつのセルにまとめる(範囲指定活用)

A1〜A5に「田中」「佐藤」「鈴木」「高橋」「山田」と入っているとします。これを1つのセルにまとめてみましょう。

=CONCAT(A1:A5)

結果は「田中佐藤鈴木高橋山田」です。範囲指定のおかげで数式は1行で済みます。

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

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

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

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

商品コードを生成するケースを見てみましょう。A列にカテゴリ、B列にサイズ、C列に番号が入っている場合です。

=CONCAT(A2, "-", B2, "-", C2)

A2が「ELC」、B2が「M」、C2が「001」なら、結果は「ELC-M-001」になります。セル参照と文字列を組み合わせるパターンです。

列が横に並んでいて区切りなしで良い場合はこう書けます。

=CONCAT(A2:C2)

結果は「ELCM001」です。範囲指定で3列をまとめて結合できるのがCONCATの強みですね。

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

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

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

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

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

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

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

Excelとの互換性の注意点

GoogleスプレッドシートのCONCAT関数は、Excel 2019 / Microsoft 365のCONCAT関数とほぼ同じ動作をします。共有ファイルでも基本的に問題ありません。

ただし、以下の点に注意してください。

項目GoogleスプレッドシートExcel
CONCAT関数使用可能Excel 2019以降で使用可能
CONCATENATE関数使用可能全バージョンで使用可能
TEXTJOIN関数使用可能Excel 2019以降で使用可能

Excel 2016以前のユーザーとファイルを共有する場合、CONCAT関数は使えません。その場合はCONCATENATEか&演算子で書き直す必要があります。

互換性を意識するならCONCATENATEが安全

社内でExcelのバージョンが統一されていない場合は、CONCATENATE関数を使うほうが安全です。ただし、スプレッドシート単体で完結するならCONCATで問題ありません。

よくあるエラーと対処法

エラー・症状原因対処法
数値がそのまま表示される日付やパーセントを直接渡したTEXT関数で書式変換してから結合
余分なスペースが入る元のセルにスペースが含まれているTRIM関数で前後の空白を除去
区切り文字が入らないCONCAT関数には区切り文字の自動挿入機能がない手動で挟むか、TEXTJOINに切り替え
空白セルを飛ばせないCONCAT関数には空白スキップ機能がないTEXTJOINの第2引数をTRUEにする
#VALUE! エラー結合結果が32,767文字を超えた結合する範囲を分割する

まとめ

CONCAT関数はセル範囲をまとめて結合できる便利な関数です。CONCATENATEの後継として、新しく数式を書くときの第一選択になります。

おさらいです。

  • セル範囲を一括指定できるのがCONCAT最大の強み
  • CONCATENATEとの違いは「範囲指定」と「引数上限なし」の2点
  • 2〜3個のシンプルな結合なら & 演算子 が手軽
  • 区切り文字や空白スキップが必要なら TEXTJOIN へステップアップ
  • 日付を結合するときは TEXT関数 で書式変換を忘れずに

まずはCONCATで範囲指定の便利さを体験してみてください。文字列操作の幅がぐっと広がりますよ。

文字列を結合したあとの加工には、LEFT関数で先頭から文字を取り出す方法もよく使います。結合後に余分なスペースが入ったときはTRIM関数で除去してみてくださいね。

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