【初心者向け】ExcelのCONCAT関数の使い方|文字列の結合をもっとシンプルに!

Excel

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列(結果)
ノートPC12345ノートPC-12345
マウス67890マウス-67890

数式:

=CONCAT(A2, "-", B2)

例3:複数セルの一括結合

セル範囲での結合:

A列B列C列D列(結果)
RedGreenBlueRedGreenBlue
東京新宿区東京都新宿区

数式:

=CONCAT(A2:C2)

例4:文字列と数値の混在

売上報告の作成:

A列(商品)B列(数量)C列(単価)D列(結果)
りんご10100りんご: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)
TBLLT-BL-L
SRDMS-RD-M

数式:

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

日常業務での活用

例4:メールアドレスの生成

A列(名前)B列(部署)C列(メール)
yamadasalesyamada.sales@company.com
suzukidevsuzuki.dev@company.com

数式:

=CONCAT(A2, ".", B2, "@company.com")

例5:ファイル名の生成

A列(日付)B列(部署)C列(種類)D列(ファイル名)
20241101salesreport20241101_sales_report.xlsx
20241102devlog20241102_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列(完全名)
JohnSmith(空白)John Smith
MaryJohnsonAnneMary 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:改行が表示されない

原因: セルの書式設定が正しくない

対処法:

  1. セルを右クリック → 「セルの書式設定」
  2. 「配置」タブ → 「折り返して全体を表示する」にチェック
  3. 「OK」をクリック

エラー4:文字数制限

問題: 結合後の文字列が32,767文字を超える

対処法:

  • 結合する文字列を短くする
  • 分割して複数セルに分ける
  • VBAマクロの利用を検討

実践的な活用シナリオ

シナリオ1:営業資料の作成

商品提案書の自動生成:

A列(商品名)B列(型番)C列(価格)D列(提案文)
ノートPCNB-202489800ノート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列(商品コード)
SHIRTBLMSHIRT-BL-M-2024
PANTSBKLPANTS-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: 以下の点に注意してください

パフォーマンス改善のコツ:

  1. 不要な再計算を避ける:数式を値に変換
  2. 範囲を最小限に:必要な範囲のみ指定
  3. 条件分岐を最小化: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"))価格表示

実際に使ってみよう:

  1. 基本的な名前結合から始める
  2. 区切り文字を使った実用的な結合を試す
  3. TEXT関数と組み合わせて数値フォーマットを活用
  4. 業務に応じたテンプレートを作成する

CONCATの利点まとめ:

  • シンプルかつ直感的に複数の値を連結
  • セル範囲指定で大量データも効率的に処理
  • 旧関数からの移行で保守性向上
  • 柔軟な応用で様々なビジネスシーンに対応

コメント

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