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/1 | 46113 | 2026/4/1 |
| 50% | 0.5 | 50% |
| ¥1,000 | 1000 | ¥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関数で余分なスペースを削除する方法も合わせて覚えておくと便利ですよ。
