Excelで複数の文字列を1つにまとめたいとき、CONCATENATE関数を使っている方は多いですよね。ただ、「CONCAT関数とどう違うの?」「そもそもまだ使っていいの?」と気になっている方もいるのではないでしょうか。
この記事では、CONCATENATE関数の基本的な使い方から実務での活用例まで解説します。後継のCONCAT関数・TEXTJOIN関数との違いや、移行すべきタイミングもお伝えするので、ぜひ参考にしてみてください。
この記事は次のような人におすすめ
– CONCATENATE関数の基本的な使い方を知りたい
– CONCAT関数やTEXTJOIN関数との違いがわからない
– 古い関数をこのまま使い続けていいか判断したい
ExcelのCONCATENATE関数とは?
CONCATENATE関数は、複数の文字列を1つにつなげる関数です。読み方は「コンキャティネイト」で、英語の Concatenate(連結する) が語源になっています。
「姓と名を結合する」「都道府県と市区町村をまとめる」といった場面で活躍します。Excelのすべてのバージョンで使えるので、古いExcelを使っている環境でも安心です。
ただし、Excel 2019 / Microsoft 365 以降では後継のCONCAT関数が用意されています。CONCATENATEは互換性のために残されている関数という位置づけです。
CONCATENATE関数の書き方(構文と引数)
基本構文
=CONCATENATE(文字列1, [文字列2], ...)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 文字列1 | 必須 | 結合したい文字列またはセル参照 |
| 文字列2, … | 省略可 | 追加で結合したい文字列。最大255個まで指定可能 |
引数にはセル参照(A1)や直接入力した文字列(”こんにちは”)を指定できます。ただし、セル範囲(A1:A5)は指定できません。1つずつセルを指定する必要があるのがCONCATENATE関数の特徴です。
文字列の上限
結合した文字列が32,767文字(セルの文字数上限)を超えると #VALUE! エラーになります。通常の業務ではまず超えることはないので、あまり気にしなくて大丈夫ですよ。
CONCATENATE関数の基本的な使い方
セルを指定して結合する
A1に「東京都」、B1に「渋谷区」と入力されている場合を見てみましょう。
=CONCATENATE(A1, B1)
結果: 東京都渋谷区
2つのセルの値がそのまま結合されます。間にスペースや区切り文字は自動では入らないので、必要な場合は引数で追加してください。
文字列を直接入力して結合する
セル参照と固定の文字列を組み合わせることもできます。A1に「田中」と入っている場合です。
=CONCATENATE("氏名: ", A1, " 様")
結果: 氏名: 田中 様
直接入力する文字列はダブルクォーテーション(”)で囲みます。スペースも文字列として扱われるので、区切りのスペースを入れたいときは " " を引数に追加しましょう。
3つ以上のセルを結合する
A1に「田中」、B1に「太郎」、C1に「様」と入っている場合です。
=CONCATENATE(A1, " ", B1, " ", C1)
結果: 田中 太郎 様
結合したいセルの数だけ引数を追加していきます。セルが増えると式が長くなりますが、最大255個まで指定できますよ。
CONCATENATE関数の実務活用パターン
姓と名をスペース区切りで結合する
名簿データで姓(A列)と名(B列)を1つのセルにまとめる場面です。
=CONCATENATE(A2, " ", B2)
結果: 田中 太郎
全角スペースで区切りたい場合は " " を全角スペースに変えてください。
住所を1セルにまとめる
都道府県(A列)、市区町村(B列)、番地(C列)が分かれている場合です。
=CONCATENATE(A2, B2, C2)
結果: 東京都渋谷区1-2-3
住所のようにそのまま繋げたいケースでは、区切り文字なしで引数を並べるだけでOKです。
日付に曜日を付けた文字列を作る
A2に日付(例: 2026/3/16)が入っている場合です。日付をそのままCONCATENATE関数に渡すと「46092」のようなシリアル値が表示されてしまいます。TEXT関数(数値を指定した書式の文字列に変換する関数)で変換してから結合しましょう。
=CONCATENATE(TEXT(A2, "yyyy年m月d日"), "(", TEXT(A2, "aaa"), ")")
結果: 2026年3月16日(月)
TEXT関数の使い方については別記事で詳しく解説しています。
IDコードを生成する
部署コード(A列)と社員番号(B列)を組み合わせて、「SALES-001」のようなIDを作る場面です。
=CONCATENATE(A2, "-", TEXT(B2, "000"))
結果: SALES-001
TEXT関数の "000" は3桁のゼロ埋め書式です。社員番号が「1」の場合でも「001」に変換してくれます。
CONCATENATE・CONCAT・TEXTJOIN・&演算子の違い
Excelには文字列を結合する方法が複数あります。それぞれの特徴を比較表で整理しました。
| 比較項目 | CONCATENATE | CONCAT | TEXTJOIN | & 演算子 |
|---|---|---|---|---|
| セル範囲指定 | 不可 | 可 | 可 | 不可 |
| 区切り文字の自動挿入 | 不可 | 不可 | 可 | 不可 |
| 空白セルの無視 | 不可 | 不可 | 可 | 不可 |
| 対応バージョン | すべて | 2019以降 | 2019以降 | すべて |
| 最大引数数 | 255個 | 253個 | 253個 | 制限なし |
| 今後のサポート | 互換性のため残存 | 推奨 | 推奨 | 継続 |
どれを使うべき? 使い分けの判断基準
迷ったときは、以下のフローで判断してみてください。
- 区切り文字を入れたい、または空白セルを無視したい → TEXTJOIN関数
- セル範囲をまとめて指定したい → CONCAT関数
- 2〜3個のセルを手軽に結合したい → & 演算子
- Excel 2016以前の環境で使う必要がある → CONCATENATE関数
CONCATENATE関数を選ぶのは「古いExcelとの互換性が必要な場合」に限られます。新しいExcel(2019以降)を使っているなら、CONCAT関数またはTEXTJOIN関数に切り替えるのがおすすめです。
CONCATENATEからCONCAT関数に移行する
CONCATENATE関数の式をCONCAT関数に書き換えるのはとても簡単です。
CONCATENATE関数の場合
=CONCATENATE(A1, " ", B1, " ", C1)
CONCAT関数に書き換えた場合
=CONCAT(A1, " ", B1, " ", C1)
関数名を CONCATENATE から CONCAT に変えるだけで動きます。さらに、セル参照をまとめて範囲に書き換えれば式がスッキリしますよ。
=CONCAT(A1:C1)
移行のタイミング
「自分しか使わないファイル」なら今すぐCONCAT関数に切り替えてOKです。「他の人と共有するファイル」で、相手がExcel 2016以前を使っている可能性がある場合は、CONCATENATE関数のまま残しておくのが安全ですよ。
CONCATENATE関数のよくあるエラーと対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 結合結果が32,767文字を超えた | 結合する範囲を分割する |
| #NAME? | 関数名のスペルミス | CONCATENATE のスペルを確認する |
| 数値がそのまま表示される | 日付やパーセントを渡した | TEXT関数で書式を指定してから結合する |
| セル範囲を指定したら1セル分しか結合されない | CONCATENATE関数は範囲指定非対応 | セルを1つずつ指定するか、CONCAT関数に切り替える |
| 余分なスペースが入る | 元のセルにスペースが含まれている | TRIM関数で前後のスペースを除去してから結合する |
日付の結合でよくあるミス
日付セルをそのままCONCATENATE関数に渡すと「46092」のようなシリアル値が表示されます。TEXT関数を使って
TEXT(A1, "yyyy/mm/dd")のように文字列に変換してから結合しましょう。
まとめ
CONCATENATE関数は、Excelのすべてのバージョンで使える文字列結合の関数です。
- すべてのバージョンで使えるのがCONCATENATE関数の強み
- セル範囲の指定はできないので、セルを1つずつ指定する
- 区切り文字や空白スキップが必要なら TEXTJOIN関数 を使う
- Excel 2019以降なら CONCAT関数 への移行がおすすめ
- 日付を結合するときは TEXT関数 で書式変換してから渡す
古いExcelとの互換性が不要なら、CONCAT関数に切り替えてみてください。関数名を変えるだけで移行できますよ。
Excelの文字列操作をもっと知りたい方は、Excelの文字列関数まとめもあわせてチェックしてみてください。
関連記事
関数一覧
どちらの関数一覧からでも各関数の解説記事へアクセスできます。
