Excelで複数のセルの文字列を1つにまとめたい場面、よくありますよね。姓と名を結合したり、住所を1セルにまとめたり。そんなときに便利なのがCONCAT関数です。
この記事では、CONCAT関数の基本から実務で使える活用パターンまで解説します。&演算子やCONCATENATE関数との違いも整理しているので、使い分けに迷っている方はぜひ参考にしてみてください。
この記事は次のような人におすすめ
– 複数のセルに分かれた文字列を1つにまとめたい
– &演算子とCONCAT関数のどちらを使うか迷っている
– CONCATENATE関数との違いを知りたい
CONCAT関数とは?
CONCAT関数は、複数の文字列やセル範囲をまとめて1つの文字列に結合する関数です。読み方は「コンカット」で、英語の Concatenate(連結する) の略称が由来になっています。
CONCAT関数は Excel 2019 / Microsoft 365 以降で使用できます。それ以前のバージョンでは、後述するCONCATENATE関数を使ってください。
CONCAT関数の最大の特徴は「セル範囲をまとめて指定できる」こと。たとえば A1:A5 のように範囲で指定すると、5つのセルの値をまとめて結合してくれます。
CONCAT関数の書き方(構文と引数)
基本構文
=CONCAT(テキスト1, [テキスト2], ...)
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| テキスト1 | 必須 | 結合したい文字列、セル参照、またはセル範囲 |
| テキスト2, … | 省略可 | 追加で結合したい文字列やセル範囲。最大253個まで指定可能 |
引数にはセル参照(A1)、セル範囲(A1:A5)、直接入力した文字列(”こんにちは”)のいずれも指定できます。
結合結果の文字数上限
結合した文字列が32,767文字(セルの文字数上限)を超えると #VALUE! エラーになります。通常の業務ではまず超えることはありませんが、大量データを結合する場合は注意してください。
CONCAT関数の基本的な使い方
セルを個別に指定して結合する
A1に「東京都」、B1に「渋谷区」と入力されている場合を考えてみましょう。
=CONCAT(A1, B1)
結果: 東京都渋谷区
2つのセルの値がそのまま結合されます。間にスペースや区切り文字は入りません。
セル範囲を指定して結合する
A1:A3に「Excel」「は」「便利」と入力されている場合、以下のように書けます。
=CONCAT(A1:A3)
結果: Excelは便利
これがCONCAT関数の最大の強みです。&演算子やCONCATENATE関数では1つずつ指定する必要があります。CONCAT関数なら範囲でまとめて指定できるので、数式がスッキリしますよね。
文字列を直接入力して結合する
セル参照と文字列を組み合わせることもできます。A1に「田中」と入力されている場合を見てみましょう。
=CONCAT("名前: ", A1, "さん")
結果: 名前: 田中さん
直接入力する文字列はダブルクォーテーション(”)で囲むのがポイントです。
CONCAT関数の実務活用パターン
姓と名を結合する(スペース区切り)
A列に姓、B列に名が入っている場合、間にスペースを入れて結合してみましょう。
=CONCAT(A2, " ", B2)
結果: 田中 太郎
間に入れたいスペースや文字を、引数として追加するだけでOKです。全角スペースを入れたい場合は " " を全角スペースに変えてください。
住所をまとめて1セルに結合する
都道府県(A列)、市区町村(B列)、番地(C列)が別々のセルに入っている場合です。
=CONCAT(A2:C2)
結果: 東京都渋谷区1-2-3
範囲指定を使えば、3つのセルをまとめて結合できます。列が増えても数式を変更する必要がありません。
日付に曜日を付けた文字列を作る
A2に日付(例: 2026/3/16)が入っている場合、曜日付きの文字列を作ってみましょう。
=CONCAT(TEXT(A2, "yyyy年m月d日"), "(", TEXT(A2, "aaa"), ")")
結果: 2026年3月16日(月)
ここではTEXT関数を使って日付を文字列に変換しています。日付をそのままCONCAT関数に渡すと、シリアル値(数値)が表示されてしまうので注意してください。
区切り文字付きで複数セルを結合する
A1:A4に「Excel」「Word」「PowerPoint」「Outlook」と入っている場合、カンマ区切りで結合したいこともありますよね。
ただし、CONCAT関数には区切り文字を自動挿入する機能がありません。1つずつ区切り文字を指定する必要があります。
=CONCAT(A1, ", ", A2, ", ", A3, ", ", A4)
結果: Excel, Word, PowerPoint, Outlook
セルが多いとこの書き方は大変です。区切り文字付きの結合にはTEXTJOIN関数が便利です。
&演算子との違い
文字列の結合というと &(アンパサンド)を使う方法もおなじみですよね。CONCAT関数との違いを整理しておきましょう。
| 比較項目 | CONCAT関数 | &演算子 |
|---|---|---|
| セル範囲指定 | =CONCAT(A1:A5) のように範囲指定可 | A1&A2&A3&A4&A5 のように1つずつ指定 |
| 数式の見やすさ | セルが多いほどスッキリ書ける | セルが少ないときに手軽 |
| 対応バージョン | Excel 2019以降 | すべてのバージョン |
| 処理速度 | 大量データで若干有利 | 少量データなら差はない |
| 区切り文字の挿入 | 引数で手動追加が必要 | &” “&のように挟む |
2〜3個のセルを結合するだけなら & が手軽です。セルが多い場合や範囲で指定したい場合はCONCAT関数が便利です。
&演算子の場合
=A1&" "&A2&" "&A3&" "&A4&" "&A5
CONCAT関数の場合(範囲指定で簡潔)
=CONCAT(A1:A5)
使い分けの目安
セルが3個以下なら & 演算子、4個以上またはセル範囲ならCONCAT関数がおすすめです。
CONCATENATE関数との違い
CONCATENATE関数はCONCAT関数の前身にあたる関数です。Excel 2019以降ではCONCAT関数に置き換わりましたが、互換性のためにCONCATENATE関数も引き続き使えます。
| 比較項目 | CONCAT関数 | CONCATENATE関数 |
|---|---|---|
| セル範囲指定 | A1:A5 のように範囲指定可 | 不可(1つずつ指定) |
| 対応バージョン | Excel 2019 / Microsoft 365 以降 | すべてのバージョン |
| 今後のサポート | 推奨(後継関数) | 互換性のため残存 |
違いは「セル範囲を指定できるかどうか」の1点です。CONCATENATE関数では =CONCATENATE(A1,A2,A3) と1つずつ指定する必要があります。CONCAT関数なら =CONCAT(A1:A3) で済むので、セル数が多いときほど差が出ます。
新しくExcelを使うなら、CONCAT関数を使うのがおすすめです。
TEXTJOIN関数との使い分け
区切り文字付きで結合したい場合は、TEXTJOIN関数が最適です。
| 比較項目 | CONCAT関数 | TEXTJOIN関数 |
|---|---|---|
| 区切り文字 | 手動で挿入 | 第1引数で指定 |
| 空白セルの無視 | 不可(空白もそのまま結合) | 第2引数で空白セルを無視可能 |
| セル範囲指定 | 可 | 可 |
| 対応バージョン | Excel 2019以降 | Excel 2019以降 |
たとえば、カンマ区切りで結合しつつ空白セルは無視したい場合です。
CONCAT関数(空白もそのまま結合される)
=CONCAT(A1, ",", A2, ",", A3)
TEXTJOIN関数(空白セルを自動スキップ)
=TEXTJOIN(",", TRUE, A1:A3)
TEXTJOIN関数のTRUEは「空白セルを無視する」設定です。区切り文字が不要で単純に結合するだけならCONCAT関数、区切り文字を入れたい・空白を無視したいならTEXTJOIN関数、と覚えておきましょう。
よくあるエラーと対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 結合結果が32,767文字を超えた | 結合する範囲を分割する |
| #NAME? | 関数名のスペルミス、またはExcel 2016以前を使用 | 関数名を確認する。古いバージョンではCONCATENATE関数か&演算子を使う |
| 数値がそのまま表示される | 日付やパーセントをCONCATに渡した | TEXT関数で書式を指定してから結合する |
| 余分なスペースが入る | 元のセルにスペースが含まれている | TRIM関数で前後のスペースを除去してから結合する |
| 結合結果に改行が混入する | 元のセルに改行文字が含まれている | SUBSTITUTE関数とCLEAN関数で改行を除去する |
| 結合したのに計算できない | CONCAT関数の結果は文字列になる | 計算に使いたい場合は結果にVALUE関数を適用して数値に変換する |
日付の結合でよくあるミス
日付セルをそのままCONCAT関数に渡すと「46092」のようなシリアル値が表示されます。TEXT関数を使って
TEXT(A1, "yyyy/mm/dd")のように文字列に変換してから結合しましょう。
まとめ
CONCAT関数は複数の文字列やセル範囲をまとめて結合できる便利な関数です。
- セル範囲をまとめて指定できるのがCONCAT関数の強み
- 2〜3個のセルなら & 演算子 が手軽
- 区切り文字を入れたい場合は TEXTJOIN関数 がおすすめ
- 日付を結合するときは TEXT関数 で書式変換してから渡す
- CONCATENATE関数の後継関数なので、新規作成ならCONCAT関数を使う
文字列の結合は実務で使う頻度が高い操作なので、場面に応じて使い分けてみてください。
関連記事
関数一覧
どちらの関数一覧からでも各関数の解説記事へアクセスできます。
