【初心者向け】ExcelのCONCATENATE関数と新関数TEXTJOINの使い方

Excel

Excelでは、名前と苗字をつなげたい住所の項目をまとめたいセルの内容を1つにしたいといったニーズがよくあります。

よくある場面

  • 氏名の結合:「田中」と「太郎」→「田中太郎」
  • 住所の統合:「東京都」「新宿区」「1-1-1」→「東京都新宿区1-1-1」
  • 商品コード作成:「ABC」と「001」→「ABC-001」
  • メール文面の作成:複数セルの内容を組み合わせる

こうした「文字列結合」を簡単にできるのが、CONCATENATE関数とその後継のCONCATTEXTJOIN関数です。

スポンサーリンク

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との違い

特徴CONCATENATECONCAT
セル範囲指定不可可能
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:結果が表示されない

原因:

  • セルの書式が「標準」以外になっている
  • 改行が正しく表示されていない

対処法:

  1. セルの書式を「標準」に変更
  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 2010Excel 2013Excel 2016Excel 2019Microsoft 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):改行付き結合

コメント

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