エクセル関数辞典 エクセル関数辞典

CONCATENATE・TEXTJOIN関数|文字列結合の方法

CONCATENATE TEXTJOIN CONCAT 文字列結合 Excel関数
広告スペース (article-top)

Excelで複数のセルの文字列を1つにまとめたい場面は多くあります。姓と名の結合、住所の連結、コードの生成など、文字列結合は日常的に必要な操作です。この記事では、CONCATENATE関数、CONCAT関数、TEXTJOIN関数、そして&演算子の4つの方法を比較しながら解説します。

各関数の基本構文

CONCATENATE関数

=CONCATENATE(文字列1, [文字列2], ...)

CONCAT関数(Excel 2019以降)

=CONCAT(文字列1, [文字列2], ...)

TEXTJOIN関数(Excel 2019以降)

=TEXTJOIN(区切り文字, 空の文字列を無視, 文字列1, [文字列2], ...)

&演算子

=文字列1 & 文字列2

引数の説明(TEXTJOIN関数)

引数説明必須/任意
区切り文字結合時に挿入する区切り文字必須
空の文字列を無視TRUEで空セルを無視、FALSEで含める必須
文字列1結合する最初の文字列やセル範囲必須
文字列2以降追加の文字列やセル範囲任意

4つの方法の比較

機能&CONCATENATECONCATTEXTJOIN
基本結合
範囲指定不可不可
区切り文字手動挿入手動挿入手動挿入自動挿入
空セル無視不可不可不可
対応バージョン全バージョン全バージョン2019以降2019以降

実践例1:姓と名の結合(基本)

A2に「田中」、B2に「太郎」が入力されている場合、3つの方法で結合します。

&演算子の場合はこう書きます。

=A2 & B2

結果は「田中太郎」です。

間にスペースを入れる場合は次のようにします。

=A2 & " " & B2

結果は「田中 太郎」です。

CONCATENATE関数でも同様の結果が得られます。

=CONCATENATE(A2, " ", B2)

実践例2:TEXTJOIN関数で区切り文字付きの結合

複数のセルをカンマ区切りで結合する例です。

A2からE2に「りんご」「みかん」「ぶどう」「」「いちご」が入力されている場合を想定します(D2は空白)。

=TEXTJOIN(", ", TRUE, A2:E2)

結果は「りんご, みかん, ぶどう, いちご」です。第2引数をTRUEにしているため、空白セル(D2)は無視されます。

FALSEにすると空白も含まれます。

=TEXTJOIN(", ", FALSE, A2:E2)

結果は「りんご, みかん, ぶどう, , いちご」です。

実践例3:住所の結合

都道府県、市区町村、番地が別々のセルに入っている場合に、1つの住所文字列にまとめます。

=A2 & B2 & C2

または、TEXTJOIN関数で区切りなしで結合します。

=TEXTJOIN("", TRUE, A2:C2)

郵便番号も含めて整形する場合は次のようにします。

="〒" & D2 & " " & A2 & B2 & C2

実践例4:CONCAT関数で範囲を結合

CONCAT関数はCONCATENATE関数の後継で、セル範囲を直接指定できるのが特徴です。

=CONCAT(A2:C2)

CONCATENATEでは1セルずつ指定する必要がありましたが、CONCATなら範囲指定で一括結合できます。ただし、区切り文字の自動挿入はできません。

実践例5:数値と文字列の結合

数値を含む文字列を作成する例です。

B2に売上金額(150000)が入っている場合は次のように書きます。

="売上: " & TEXT(B2, "#,##0") & "円"

結果は「売上: 150,000円」です。

TEXT関数を使わないと数値がそのまま結合されるため、桁区切りなどの書式が反映されません。日付も同様にTEXT関数で書式を指定します。

="更新日: " & TEXT(A2, "YYYY/MM/DD")

よくあるエラーと対処法

数値の書式が反映されない

セルの書式設定で設定した表示形式は、文字列結合時には反映されません。TEXT関数を使って明示的に書式を指定してください。

# 書式が反映されない
="金額: " & B2 & "円"
# 結果: "金額: 150000円"

# TEXT関数で書式を指定
="金額: " & TEXT(B2, "#,##0") & "円"
# 結果: "金額: 150,000円"

#VALUE!エラー

TEXTJOIN関数で結合結果が32,767文字を超える場合に発生します。Excelのセルに格納できる文字数の上限に達しています。

#NAME?エラー

TEXTJOIN関数やCONCAT関数がサポートされていないバージョンで発生します。CONCATENATE関数や&演算子で代替してください。

不要なスペースの混入

結合後に不要なスペースが入る場合は、TRIM関数で前後のスペースを除去します。

=TRIM(A2 & " " & B2)

CONCATENATEからTEXTJOINへの移行

CONCATENATE関数は現在も使用できますが、将来的に廃止される可能性があるため、新しいファイルではCONCAT関数またはTEXTJOIN関数の使用を推奨します。

移行のポイントは以下の通りです。

  • 単純な結合: &演算子またはCONCAT関数
  • 区切り文字付きの結合: TEXTJOIN関数
  • 空白を無視した結合: TEXTJOIN関数(第2引数にTRUE)

Google スプレッドシートでの互換性

CONCATENATE関数、TEXTJOIN関数ともにGoogle スプレッドシートで利用可能です。&演算子も同様に使えます。CONCAT関数もGoogle スプレッドシートでサポートされていますが、JOIN関数というGoogle独自の関数もあり、TEXTJOIN関数と似た機能を提供します。

まとめ

Excelでの文字列結合には複数の方法があります。

  • &演算子は最もシンプルで全バージョンで使える
  • TEXTJOIN関数は区切り文字の自動挿入と空セル無視が便利
  • CONCAT関数はCONCATENATEの後継で範囲指定に対応
  • 数値や日付を結合する場合はTEXT関数で書式を指定する

用途に応じて適切な方法を選択してください。新しいファイルではTEXTJOIN関数を積極的に活用することをおすすめします。

広告スペース (article-bottom)

あわせて読みたい