Excelで文字列を結合できる3つの関数の使い方

Excelでは様々な方法で文字列を結合して1つにまとめることができます。
Excelで使える主な文字列結合用関数は、
- CONCATENATE関数
- TEXTJOIN関数
- CONCAT関数
それぞれ使い方や特徴が異なるので詳しく見ていきましょう。
CONCATENATE関数
Excelで使える文字列結合関数の中で最も古くからあるのがCONCATENATE関数です。読み方はコンカティネート。
CONCATENATE関数を記述する際は
CONCATENATE(文字列1[,文字列2,文字列3...])
のように、結合する文字列が入ったセルを1つずつ指定していきます。

指定できる引数が結合する文字列の入ったセルだけですので、関数を一度も使ったことがない人でもすぐに覚えられるでしょう。
使う際の注意点
CONCATENATE関数は一番古い関数だからか、機能面が非常に乏しいです。
仮にA1セルからA100セルまで結合しようと思うとどう記述するでしょうか?

実はCONCATENATE関数はこの書き方が使えないのです。
ですので、A1セルからA100セルまで結合しようと思ったら、「=CONCATENATE(A1,A2,A3,A4...」というように100セル分書き込まないといけないのです。
そのためCONCATENATE関数は2~3個程度のセルを結合するぐらいにしか使い道がなく、新しい文字列結合用関数が登場している今は使うメリットがあまりありません。
この後紹介している他の文字列結合用関数であるTEXTJOIN関数やCONCAT関数のほうが圧倒的に使いやすいのでそちらを使うといいでしょう。
TEXTJOIN関数
TEXTJOIN関数は、文字列の結合の際に文字列と文字列の間に区切り文字をはさむことができる関数です。読み方はテキストジョイン。
記述する際は以下のように記述します。
TEXTJOIN(区切り文字,空の文字列を無視するかどうか,文字列1[,文字列2,文字列3...]
指定しなければならない引数が少し多いですが、こちらは先ほど紹介したCONCATENATE関数と違って文字列結合セルを範囲指定できます。

TEXTJOIN関数は間に区切り文字を入れることができ、改行文字などの特殊文字も指定可能です。
また、指定する区切り文字を空白にすることで区切り文字を挟まずに結合することも可能です。


この方法で複数の範囲セルを指定した文字列結合を行えますが、ただただ文字列を結合したいだけであればTEXTJOIN関数ではなく後述するCONCAT関数を使うようにしてください。
CONCAT関数はとにかく文字列結合に特化しているため、TEXTJOIN関数よりも使いやすいと感じるでしょう。
使用上のポイント
文字列を結合するセルを範囲指定したとき、指定した範囲の中に空白セルがあった状態で区切り文字を指定するとどうなるでしょうか?

予め対策するのはものすごく面倒そうだと感じるかもしれませんが、TEXTJOIN関数は既に対応する方法が用意されています。


CSV出力用などなんらかの理由があればFALSEを指定するといいですが、空白セルを無視して切り詰めたい場合はTRUEを指定するようにしてください。
そして、TEXTJOIN関数は区切り文字を指定できると言いましたが、指定する区切り文字は1文字じゃなくても問題ありません。


スペースを複数回指定して空白部分を増やすと言ったことも簡単に行えるので覚えておくといいでしょう。

このように複数の範囲セルをまとめて区切り文字で区切った文字列に変換することができるので、一度試してみるといいでしょう。
CONCAT関数
最後に紹介するのがCONCAT関数です。読み方はコンカット。
こちらは区切り文字を指定したり空白セルを飛ばすという機能もありませんが、文字列結合に置いては最も使いやすい関数です。
記述方法は以下のとおりです。
CONCAT(文字列1[,文字列2,文字列3...])
上記構文を見て分かる通り、書き方はCONCATENATE関数と全く同じです、
大きく異なるのが指定できるセルについてです。
CONCATENATE関数は範囲指定セルを指定することができず「A1,A2,A3」のように個別にセルを指定しなければなりませんでした。

ただ文字列を結合する予定なので空白セルが影響することもなく非常に使い勝手が良いといえるでしょう。
CONCAT関数の魅力はこれだけではありません。
CONCAT関数の記述方法がCONCATENATE関数と同じということは、結合したいセルを次々に指定できることです。


ただし、とにかく文字列結合に特化している関係で区切り文字を入れるための引数が用意されていません。

参照するセルの情報だけでなく、文字列を直接指定することもできないので、「セル、区切り文字、セル、区切り文字」のように交互に引数を与えていけば区切り文字として機能します。


どこまでが1行分・1列分の文字列なのかわかりやすくできるので、必要な場合は是非TEXTJOIN関数とCONCAT関数を組み合わせて使いこなしてみてください。
ちなみに、いずれの関数も文字列だけでなく数値や日付などのテキスト以外の情報も指定できるので気になる方は試してみると良いでしょう。