Excelでは、名前と苗字をつなげたい、住所の項目をまとめたい、セルの内容を1つにしたいといったニーズがよくあります。
よくある場面
- 氏名の結合:「田中」と「太郎」→「田中太郎」
- 住所の統合:「東京都」「新宿区」「1-1-1」→「東京都新宿区1-1-1」
- 商品コード作成:「ABC」と「001」→「ABC-001」
- メール文面の作成:複数セルの内容を組み合わせる
こうした「文字列結合」を簡単にできるのが、CONCATENATE
関数とその後継のCONCAT
・TEXTJOIN
関数です。
CONCATENATE関数の基本

基本構文
=CONCATENATE(文字列1, 文字列2, 文字列3, ...)
特徴:
- 各文字列は直接文字、セル参照、関数などが使える
- 結果は1つの文字列になる
- 最大255個の文字列を結合可能
例1:姓と名を結合
データ例:
A2: 山田
B2: 太郎
基本の結合:
=CONCATENATE(A2, B2)
結果: 山田太郎
例2:間にスペースを入れる
=CONCATENATE(A2, " ", B2)
結果: 山田 太郎
例3:複数の要素を結合
データ例:
A2: 田中
B2: 花子
C2: さん
=CONCATENATE(A2, B2, C2)
結果: 田中花子さん
例4:固定文字とセル参照の組み合わせ
=CONCATENATE("お疲れ様です、", A2, B2, "様")
結果: お疲れ様です、田中花子様
実用例:住所の結合
データ例:
A2: 東京都
B2: 新宿区
C2: 1-1-1
D2: サンプルマンション101号室
=CONCATENATE(A2, B2, C2, " ", D2)
結果: 東京都新宿区1-1-1 サンプルマンション101号室
CONCAT関数(Excel 2016以降)

基本構文
=CONCAT(文字列1, 文字列2, ...)
CONCATENATEとの違い
特徴 | CONCATENATE | CONCAT |
---|---|---|
セル範囲指定 | 不可 | 可能 |
Excelバージョン | 全バージョン | 2016以降 |
引数の数 | 最大255個 | ほぼ無制限 |
例1:セル範囲を一度に指定
データ例:
A2: 山田 B2: 太郎 C2: 課長
=CONCAT(A2:C2)
結果: 山田太郎課長
例2:複数範囲の結合
=CONCAT(A2:C2, " (", D2, ")")
結果: 山田太郎課長 (営業部)
注意点
CONCATの制限:
- セル範囲を指定すると、区切り文字は自動では入らない
- 空白セルも結合に含まれる
- 数値は自動的に文字列に変換される
TEXTJOIN関数(Excel 2016以降)
基本構文
=TEXTJOIN(区切り文字, 空白セルを無視するか, 文字列1, 文字列2, ...)
引数の説明:
- 区切り文字:各文字列の間に入れる文字(” “, “,”, “-“など)
- 空白セルを無視するか:
TRUE
で無視、FALSE
でそのまま結合 - 文字列:結合したい文字列またはセル参照
例1:スペース区切りで結合
データ例:
A2: 田中 B2: 太郎 C2: 部長
=TEXTJOIN(" ", TRUE, A2:C2)
結果: 田中 太郎 部長
例2:カンマ区切りで結合
=TEXTJOIN(", ", TRUE, A2:C2)
結果: 田中, 太郎, 部長
例3:ハイフン区切りで結合
=TEXTJOIN(" - ", TRUE, A2:C2)
結果: 田中 – 太郎 – 部長
空白セルの処理
データ例:
A2: 山田 B2: (空白) C2: 課長
TRUE(空白を無視)の場合:
=TEXTJOIN(" ", TRUE, A2:C2)
結果: 山田 課長
FALSE(空白も含める)の場合:
=TEXTJOIN(" ", FALSE, A2:C2)
結果: 山田 課長(空白分のスペースが2つ)
改行を使った結合
セル内改行の作成
=TEXTJOIN(CHAR(10), TRUE, A2:C2)
CHAR(10)の説明:
- Windows:改行コード
- セル内で改行表示させるため
重要な設定: セルの書式設定で「折り返して全体を表示」にチェックを入れる
改行結合の実用例
データ例:
A2: 田中太郎
B2: 営業部
C2: 課長
=TEXTJOIN(CHAR(10), TRUE, A2:C2)
結果:
田中太郎
営業部
課長
条件付きTEXTJOIN
IF関数との組み合わせ
=TEXTJOIN(", ", TRUE,
IF(A2<>"", A2, ""),
IF(B2<>"", B2, ""),
IF(C2<>"", C2, "")
)
「&」演算子を使う方法

基本的な使い方
=A2 & B2
特徴:
- 最もシンプルで軽量
- 全てのExcelバージョンで使用可能
- 関数を使わない方法
実用例
スペース付きの結合
=A2 & " " & B2
複数要素の結合
=A2 & " " & B2 & "(" & C2 & ")"
数値との結合
="商品コード: " & A2 & "-" & TEXT(B2, "000")
例: 商品コード: ABC-001
&演算子の利点と欠点
利点 | 欠点 |
---|---|
シンプルで分かりやすい | 多数の結合では長くなる |
高速処理 | 空白セルの制御が難しい |
全バージョン対応 | 区切り文字の統一が面倒 |
関数選びのガイド
目的別おすすめ関数
目的 | おすすめ関数 | 理由 |
---|---|---|
2-3個の簡単な結合 | & 演算子 | 最もシンプル |
多数のセル結合 | CONCAT | 範囲指定可能 |
区切り文字付きの結合 | TEXTJOIN | 区切り文字が統一される |
空白セルを無視したい | TEXTJOIN | 空白制御が可能 |
古いExcelでの使用 | CONCATENATE または& | 互換性が高い |
実用場面での選択例
名前の結合
# シンプルな場合
=A2 & " " & B2
# 空白があるかもしれない場合
=TEXTJOIN(" ", TRUE, A2, B2)
住所の結合
# 全項目を区切りなしで結合
=CONCAT(A2:D2)
# 都道府県以降にスペースを入れる
=A2 & TEXTJOIN(" ", TRUE, B2:D2)
商品リストの作成
# カンマ区切りのリスト
=TEXTJOIN(", ", TRUE, A2:A10)
# 番号付きリスト
=TEXTJOIN(CHAR(10), TRUE,
"1. " & A2,
"2. " & A3,
"3. " & A4
)
実践的な活用例
活用例1:メール文面の作成
データ:
A2: 田中様
B2: お疲れ様です
C2: 会議の件でご連絡いたします
D2: よろしくお願いいたします
基本の文面:
=TEXTJOIN(CHAR(10), TRUE, A2, "", B2, "", C2, "", D2)
結果:
田中様
お疲れ様です
会議の件でご連絡いたします
よろしくお願いいたします
活用例2:レポートのタイトル作成
データ:
A1: 2023年
B1: 12月
C1: 売上レポート
=A1 & B1 & C1
結果: 2023年12月売上レポート
区切り付きバージョン:
=TEXTJOIN(" ", TRUE, A1, B1, C1)
結果: 2023年 12月 売上レポート
活用例3:CSVデータの作成
データ:
A2: 001 B2: 田中太郎 C2: 営業部 D2: 課長
=TEXTJOIN(",", FALSE, A2:D2)
結果: 001,田中太郎,営業部,課長
活用例4:条件付きの文字列作成
在庫状況の表示:
=IF(A2>0,
CONCATENATE("在庫あり(", A2, "個)"),
"在庫切れ"
)
売上達成率の表示:
=CONCATENATE(
TEXT(A2/B2, "0%"),
IF(A2>=B2, "(目標達成)", "(未達成)")
)
エラーと対処法

よくあるエラー
エラー1:#VALUE!エラー
原因:
- 数式が複雑すぎる
- セル参照が間違っている
- データ型の不一致
対処法:
# エラーを避ける書き方
=IFERROR(CONCATENATE(A2, B2), "")
エラー2:結果が表示されない
原因:
- セルの書式が「標準」以外になっている
- 改行が正しく表示されていない
対処法:
- セルの書式を「標準」に変更
- 改行の場合は「折り返して全体を表示」をオンにする
エラー3:数値が正しく表示されない
問題例:
=CONCATENATE("金額: ", A2)
# A2が1000の場合、結果が「金額: 1000」
# 「金額: ¥1,000」にしたい
解決法:
=CONCATENATE("金額: ", TEXT(A2, "¥#,##0"))
結果: 金額: ¥1,000
デバッグのコツ
段階的な確認
# 1. 各セルの内容を確認
=A2 # "田中"
=B2 # "太郎"
# 2. 簡単な結合を試す
=A2 & B2 # "田中太郎"
# 3. 複雑な結合を段階的に構築
=A2 & " " & B2 # "田中 太郎"
バージョン別対応表
Excel バージョン別機能対応
関数 | Excel 2010 | Excel 2013 | Excel 2016 | Excel 2019 | Microsoft 365 |
---|---|---|---|---|---|
CONCATENATE | ○ | ○ | ○ | ○ | ○ |
&演算子 | ○ | ○ | ○ | ○ | ○ |
CONCAT | × | × | ○ | ○ | ○ |
TEXTJOIN | × | × | ○ | ○ | ○ |
古いExcelでの代替方法
CONCATの代替
# CONCAT(A1:C1)の代替
=A1 & B1 & C1
TEXTJOINの代替
# TEXTJOIN(" ", TRUE, A1:C1)の代替
=IF(A1<>"", A1, "") &
IF(B1<>"", IF(A1<>"", " ", "") & B1, "") &
IF(C1<>"", IF(OR(A1<>"", B1<>""), " ", "") & C1, "")
パフォーマンスの考慮
処理速度の比較
方法 | 処理速度 | 適用場面 |
---|---|---|
&演算子 | 最速 | 少数の結合 |
CONCATENATE | 高速 | 従来の方法 |
CONCAT | 中程度 | 多数のセル結合 |
TEXTJOIN | 中程度 | 区切り文字付き結合 |
大量データでの注意点
# 避けたい:配列数式での大量処理
=CONCATENATE(A1:A1000) # 重い処理
# 推奨:必要な分だけ処理
=TEXTJOIN(",", TRUE, A1:A10) # 軽い処理
まとめ:状況に応じて関数を使い分けよう!
機能比較表
関数 | 特徴 | Excelバージョン | 推奨場面 |
---|---|---|---|
CONCATENATE | 古いが広く使える | 全バージョン | 互換性重視 |
&演算子 | 最も手軽で高速 | 全バージョン | シンプルな結合 |
CONCAT | 範囲指定に対応 | Excel 2016以降 | 多数セルの結合 |
TEXTJOIN | 区切り文字・空白スキップ対応 | Excel 2016以降 | 柔軟な結合 |
選択のフローチャート
結合したいセルは2-3個?
├─ YES → &演算子またはCONCATENATE
└─ NO → ↓
区切り文字は必要?
├─ YES → TEXTJOIN
└─ NO → CONCAT
Excel 2016以降?
├─ YES → TEXTJOIN/CONCAT
└─ NO → CONCATENATE/&演算子
よく使う組み合わせ
- IF + CONCATENATE:条件付き結合
- TEXT + CONCATENATE:数値の書式制御
- TEXTJOIN + CHAR(10):改行付き結合
コメント