CONCATENATE・TEXTJOIN関数|文字列結合の方法
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つの方法の比較
| 機能 | & | CONCATENATE | CONCAT | TEXTJOIN |
|---|---|---|---|---|
| 基本結合 | 可 | 可 | 可 | 可 |
| 範囲指定 | 不可 | 不可 | 可 | 可 |
| 区切り文字 | 手動挿入 | 手動挿入 | 手動挿入 | 自動挿入 |
| 空セル無視 | 不可 | 不可 | 不可 | 可 |
| 対応バージョン | 全バージョン | 全バージョン | 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関数を積極的に活用することをおすすめします。