Excelで「姓と名を結合してフルネームを作りたい」「商品名とコードを1つにしたい」「住所を番地まで結合したい」といった場面、ありますよね?
これをスマートに実現できるのが**CONCAT
関数**です。
でも、次のような疑問もあるのではないでしょうか?
- 「
&
演算子との違いがよくわからない…」 - 「
CONCATENATE
と何が違うの?」 - 「複数セルを一気に結合したい!」
- 「区切り文字を入れるにはどうすれば?」
この記事では、ExcelのCONCAT関数の使い方、実例、旧関数との違い、応用テクニックまで、やさしく解説します!
CONCAT関数とは?基本を理解しよう

CONCAT関数の概要
CONCAT
関数は、複数の文字列(またはセル)をつなげて1つの文字列にする関数です。
Excel 2016以降で正式に導入され、旧関数CONCATENATE
の後継として、より使いやすく改良されています。
基本構文
=CONCAT(文字列1, 文字列2, 文字列3, ...)
構文の特徴:
- 引数の数に制限なし(従来の254個制限から大幅改善)
- セル範囲の指定が可能(例:A1:C1)
- 混在可能(文字列、セル参照、数値など)
CONCATが使える環境
Excelバージョン | 対応状況 |
---|---|
Excel 2016以降 | ✅ 利用可能 |
Excel Online | ✅ 利用可能 |
Excel for Mac 2016以降 | ✅ 利用可能 |
Excel 2013以前 | ❌ 利用不可(CONCATENATE使用) |
なぜCONCAT関数が必要なの?
従来の問題点:
方法 | 問題点 |
---|---|
& 演算子 | 多数のセル結合時に式が長くなる |
CONCATENATE関数 | セル範囲指定ができない、引数制限あり |
CONCATの解決ポイント:
- セル範囲指定可能 →
=CONCAT(A1:E1)
- 引数制限なし → いくつでも結合可能
- シンプルな構文 → 可読性向上
CONCAT関数の基本的な使い方

例1:基本的な文字列結合
シンプルな名前の結合:
A列(姓) | B列(名) | C列(結果) |
---|---|---|
山田 | 太郎 | 山田太郎 |
鈴木 | 花子 | 鈴木花子 |
数式:
=CONCAT(A2, B2)
例2:区切り文字を含む結合
スペース付きの名前結合:
A列(姓) | B列(名) | C列(結果) |
---|---|---|
山田 | 太郎 | 山田 太郎 |
鈴木 | 花子 | 鈴木 花子 |
数式:
=CONCAT(A2, " ", B2)
ハイフン区切りの商品コード:
A列(商品名) | B列(コード) | C列(結果) |
---|---|---|
ノートPC | 12345 | ノートPC-12345 |
マウス | 67890 | マウス-67890 |
数式:
=CONCAT(A2, "-", B2)
例3:複数セルの一括結合
セル範囲での結合:
A列 | B列 | C列 | D列(結果) |
---|---|---|---|
Red | Green | Blue | RedGreenBlue |
東京 | 都 | 新宿区 | 東京都新宿区 |
数式:
=CONCAT(A2:C2)
例4:文字列と数値の混在
売上報告の作成:
A列(商品) | B列(数量) | C列(単価) | D列(結果) |
---|---|---|---|
りんご | 10 | 100 | りんご:10個(@100円) |
数式:
=CONCAT(A2, ":", B2, "個(@", C2, "円)")
CONCATと他の方法との比較
文字列結合の方法比較
方法 | 書き方例 | メリット | デメリット |
---|---|---|---|
&演算子 | =A1&B1&C1 | シンプル、高速 | 多数結合時に長くなる |
CONCATENATE | =CONCATENATE(A1,B1,C1) | 明確な関数名 | 範囲指定不可、引数制限 |
CONCAT | =CONCAT(A1:C1) | 範囲指定可、制限なし | Excel 2016以降のみ |
TEXTJOIN | =TEXTJOIN("",TRUE,A1:C1) | 区切り文字、空白無視 | やや複雑 |
実際の比較例
10個のセルを結合する場合:
&演算子の場合:
=A1&B1&C1&D1&E1&F1&G1&H1&I1&J1
CONCATの場合:
=CONCAT(A1:J1)
どちらが読みやすいか一目瞭然ですね!
CONCATENATE関数からの移行
旧CONCATENATEの問題点:
- セル範囲指定ができない
- 引数が254個まで制限
- 長い数式になりがち
移行例:
CONCATENATE(旧):
=CONCATENATE(A1,B1,C1,D1,E1)
CONCAT(新):
=CONCAT(A1:E1)
実用的な活用例

ビジネスシーンでの活用
例1:顧客管理でのフルネーム作成
A列(姓) | B列(名) | C列(敬称) | D列(完全名) |
---|---|---|---|
田中 | 一郎 | 様 | 田中一郎様 |
佐藤 | 美香 | 様 | 佐藤美香様 |
数式:
=CONCAT(A2, B2, C2)
例2:住所の結合
A列(都道府県) | B列(市区町村) | C列(番地) | D列(完全住所) |
---|---|---|---|
東京都 | 新宿区 | 1-1-1 | 東京都新宿区1-1-1 |
大阪府 | 大阪市 | 2-2-2 | 大阪府大阪市2-2-2 |
数式:
=CONCAT(A2, B2, C2)
例3:商品SKUの生成
A列(カテゴリ) | B列(色) | C列(サイズ) | D列(SKU) |
---|---|---|---|
T | BL | L | T-BL-L |
S | RD | M | S-RD-M |
数式:
=CONCAT(A2, "-", B2, "-", C2)
日常業務での活用
例4:メールアドレスの生成
A列(名前) | B列(部署) | C列(メール) |
---|---|---|
yamada | sales | yamada.sales@company.com |
suzuki | dev | suzuki.dev@company.com |
数式:
=CONCAT(A2, ".", B2, "@company.com")
例5:ファイル名の生成
A列(日付) | B列(部署) | C列(種類) | D列(ファイル名) |
---|---|---|---|
20241101 | sales | report | 20241101_sales_report.xlsx |
20241102 | dev | log | 20241102_dev_log.txt |
数式:
=CONCAT(A2, "_", B2, "_", C2, ".xlsx")
高度な活用テクニック

改行を含む結合
Windows環境:
=CONCAT(A1, CHAR(10), B1)
Mac環境:
=CONCAT(A1, CHAR(13), B1)
表示設定: セルの書式設定で「折り返して全体を表示する」をONにしてください。
実例:住所の2行表示
A列(郵便番号) | B列(住所1) | C列(住所2) | D列(結果) |
---|---|---|---|
〒100-0001 | 東京都千代田区 | 千代田1-1 | 〒100-0001<br>東京都千代田区<br>千代田1-1 |
数式:
=CONCAT(A2, CHAR(10), B2, CHAR(10), C2)
条件付き結合
IF文と組み合わせ:
A列(姓) | B列(名) | C列(ミドルネーム) | D列(完全名) |
---|---|---|---|
John | Smith | (空白) | John Smith |
Mary | Johnson | Anne | Mary Anne Johnson |
数式:
=IF(C2="", CONCAT(A2, " ", B2), CONCAT(A2, " ", C2, " ", B2))
数値フォーマットとの組み合わせ
通貨形式での表示:
A列(商品) | B列(価格) | C列(結果) |
---|---|---|
りんご | 150 | りんご:¥150 |
みかん | 200 | みかん:¥200 |
数式:
=CONCAT(A2, ":¥", TEXT(B2, "#,##0"))
パーセント表示:
A列(項目) | B列(比率) | C列(結果) |
---|---|---|
成功率 | 0.85 | 成功率:85% |
達成率 | 0.92 | 達成率:92% |
数式:
=CONCAT(A2, ":", TEXT(B2, "0%"))
CONCATとTEXTJOINの使い分け
機能比較
関数 | 区切り文字 | 空白セル無視 | 範囲指定 | 用途 |
---|---|---|---|---|
CONCAT | 手動指定 | ❌ | ✅ | シンプルな結合 |
TEXTJOIN | 自動挿入 | ✅ | ✅ | 柔軟な結合 |
TEXTJOIN関数との比較例
データ:
A列 | B列 | C列 | D列 |
---|---|---|---|
りんご | (空白) | みかん | ぶどう |
CONCAT:
=CONCAT(A1, ",", B1, ",", C1, ",", D1)
結果: りんご,,みかん,ぶどう
(空白も含まれる)
TEXTJOIN:
=TEXTJOIN(",", TRUE, A1:D1)
結果: りんご,みかん,ぶどう
(空白を無視)
適切な使い分け
CONCATを使う場面:
- シンプルな文字列結合
- 区切り文字が不要または複雑
- すべてのセルにデータがある
- 高速処理が必要
TEXTJOINを使う場面:
- 統一された区切り文字が必要
- 空白セルを無視したい
- リスト形式の結合
- 動的な範囲を扱う
よくあるエラーと対処法

エラー1:#NAME?
原因: Excel 2013以前でCONCAT関数を使用
対処法:
# NG(Excel 2013以前)
=CONCAT(A1, B1)
# OK(Excel 2013以前)
=CONCATENATE(A1, B1)
# または
=A1&B1
エラー2:予期しない結果
問題: 数値が思った通りに表示されない
A列 | B列 | 悪い例 | 良い例 |
---|---|---|---|
金額 | 1500.5 | 金額1500.5 | 金額¥1,501 |
改善:
# 悪い例
=CONCAT(A1, B1)
# 良い例
=CONCAT(A1, TEXT(B1, "¥#,##0"))
エラー3:改行が表示されない
原因: セルの書式設定が正しくない
対処法:
- セルを右クリック → 「セルの書式設定」
- 「配置」タブ → 「折り返して全体を表示する」にチェック
- 「OK」をクリック
エラー4:文字数制限
問題: 結合後の文字列が32,767文字を超える
対処法:
- 結合する文字列を短くする
- 分割して複数セルに分ける
- VBAマクロの利用を検討
実践的な活用シナリオ
シナリオ1:営業資料の作成
商品提案書の自動生成:
A列(商品名) | B列(型番) | C列(価格) | D列(提案文) |
---|---|---|---|
ノートPC | NB-2024 | 89800 | ノートPC【NB-2024】特価¥89,800でご提供 |
数式:
=CONCAT(A2, "【", B2, "】特価", TEXT(C2, "¥#,##0"), "でご提供")
シナリオ2:イベント管理
参加者リストの作成:
A列(氏名) | B列(部署) | C列(参加日) | D列(参加証) |
---|---|---|---|
山田太郎 | 営業部 | 2024/11/15 | 山田太郎(営業部)2024/11/15参加 |
数式:
=CONCAT(A2, "(", B2, ")", TEXT(C2, "yyyy/mm/dd"), "参加")
シナリオ3:在庫管理
商品コードの生成:
A列(カテゴリ) | B列(色コード) | C列(サイズ) | D列(商品コード) |
---|---|---|---|
SHIRT | BL | M | SHIRT-BL-M-2024 |
PANTS | BK | L | PANTS-BK-L-2024 |
数式:
=CONCAT(A2, "-", B2, "-", C2, "-", YEAR(TODAY()))
よくある質問と回答

Q: CONCATと&演算子、どちらを使うべき?
A: 用途に応じて使い分けましょう
用途 | 推奨 | 理由 |
---|---|---|
2-3個のシンプル結合 | & | 高速、シンプル |
多数のセル結合 | CONCAT | 可読性、保守性 |
範囲指定での結合 | CONCAT | 範囲指定可能 |
Q: Excel 2013でCONCATを使いたい場合は?
A: CONCATENATE関数または&演算子を使用してください
# CONCAT(2016以降)
=CONCAT(A1:C1)
# CONCATENATE(2013以前)
=CONCATENATE(A1,B1,C1)
# &演算子(全バージョン)
=A1&B1&C1
Q: 大量のデータでパフォーマンスが心配です
A: 以下の点に注意してください
パフォーマンス改善のコツ:
- 不要な再計算を避ける:数式を値に変換
- 範囲を最小限に:必要な範囲のみ指定
- 条件分岐を最小化:IF文の多用を避ける
Q: 空白セルがある場合の対処法は?
A: 用途に応じて3つの方法があります
方法1:TEXTJOIN使用(空白無視)
=TEXTJOIN(" ", TRUE, A1:C1)
方法2:IF関数で条件分岐
=IF(B1="", A1, CONCAT(A1, " ", B1))
方法3:そのまま使用(空白も含める)
=CONCAT(A1:C1)
便利なテンプレート集
テンプレート1:名刺情報の統合
=CONCAT(A2, " ", B2, CHAR(10), C2, CHAR(10), D2, " ", E2)
項目: 姓、名、会社名、部署、役職
テンプレート2:商品説明文の自動生成
=CONCAT("【", A2, "】", B2, "が特価", TEXT(C2, "¥#,##0"), "!在庫", D2, "個限り")
項目: 商品名、説明、価格、在庫数
テンプレート3:レポートヘッダーの作成
=CONCAT(TEXT(TODAY(), "yyyy年mm月dd日"), " ", A2, "部門 ", B2, "レポート")
項目: 部門名、レポート種類
まとめ:CONCATで文字列の連結はもっとラクに!
今回学んだ重要なポイント:
目的 | 使い方 | 実例 |
---|---|---|
基本的な結合 | =CONCAT(A1, B1) | 姓名の結合 |
区切り文字付き結合 | =CONCAT(A1, "-", B1) | 商品コード生成 |
範囲指定での結合 | =CONCAT(A1:C1) | 複数セル一括結合 |
改行付き結合 | =CONCAT(A1, CHAR(10), B1) | 住所の複数行表示 |
数値フォーマット付き | =CONCAT(A1, TEXT(B1, "¥#,##0")) | 価格表示 |
実際に使ってみよう:
- 基本的な名前結合から始める
- 区切り文字を使った実用的な結合を試す
- TEXT関数と組み合わせて数値フォーマットを活用
- 業務に応じたテンプレートを作成する
CONCATの利点まとめ:
- シンプルかつ直感的に複数の値を連結
- セル範囲指定で大量データも効率的に処理
- 旧関数からの移行で保守性向上
- 柔軟な応用で様々なビジネスシーンに対応
コメント