どのように結合したいのかを考える

名字と名前をあわせて姓名にするなど、Excel(エクセル)で別々のセルに入力された文字列を、1つのセルに結合(連結)したい場面は多々あります。これを実現するには、「&」(アンド/アンパサンド)演算子、CONCAT(コンカット)関数、CONCATENATE(コンカティネート)関数、TEXTJOIN(テキストジョイン)関数のいずれかを使いましょう。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

&」演算子やCONCAT関数CONCATENATE関数TEXTJOIN関数を使うと、別々のセルに入力された文字列を1つのセルに結合できます。

どの方法を使うかは好みで選択されがちですが、結合した後の文字列をどうするのか、目的を考えて選択すると作業効率が変わります。結合には、主に以下の3つのケースが考えられます。

  1. 2つのセルを結合したい
  2. 3つ以上以上のセルを結合したい
  3. 区切り文字などを含めて結合したい

ここでは各関数の構文と使用できるExcelのバージョンを確認してから、使い分けるポイントを解説していきます。ポイントだけ確認したい場合は、上記のリンクをクリックすると、記事内の解説までスクロールします。

各関数の構文と利用できるExcelのバージョン

CONCAT文字列1,文字列2,・・・,文字列253

引数[文字列]には結合する文字列かセルを253個まで指定できます。「B2:D2」のようにセル範囲を指定することも可能です。

CONCATENATE文字列1,文字列2,・・・,文字列255

引数[文字列]には結合する文字列かセルを255個まで指定できます。

TEXTJOIN(区切り記号, 空の文字列を無視, 文字列1, 文字列2, ..., 文字列252)

引数[区切り記号]には、結合時に挟みたい区切り文字を指定します。[空の文字列を無視]は、論理値(TRUEまたはFALSE)で指定します。次の引数[文字列]に空の文字列がある場合、TRUEは無視、FALSEは空の文字列も結合して区切り記号を挿入します。[文字列]は結合する文字列かセルを指定します。「B2:D2」のようにセル範囲を指定することも可能です。

CONCAT関数とTEXTJOIN関数は、Excel 2019とOffice 365版のExcelで利用できる新しい関数です。Excel 2016以前のバージョンでファイルを開く可能性がある場合は、CONCATETANE関数か「&」演算子を使ってください。

また、Microsoftの公式サポートには、CONCATENATE関数が将来のバージョンで利用できない可能性があるとの記載があります。Excel 2019とOffice 365版のExcelを利用しており、旧バージョンのExcelを利用しないなら、CONCATENATE関数は避けたほうがいいでしょう。

2つのセルを結合する

最も単純な結合です。ここではセルB2とC2を結合してみます。入力する式は「&」が一番単純、TEXTJOIN関数は複雑です。なお、CONCAT関数は「B2,C2」のような「,」(カンマ)区切りではなく「B2:C2」とセル範囲で指定することもできます。

「&」
入力が簡単

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=B2&C2」と入力します。

CONCAT関数
「,」区切りのほか、セル範囲の指定も可能

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=CONCAT(B2:C2)」と入力します。「=CONCAT(B2,C2)」と入力しても同じ結果を得られます。

CONCATENATE関数
「,」区切りで指定する

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=CONCATENATE(B2,C2)」と入力します。

TEXTJOIN関数
区切り文字を最初に指定する

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=TEXTJOIN("",TRUE,B2,C2)」と入力します。ここでは、区切り文字を挾まないので、引数[区切り記号]には、空の文字列を表す「""」を指定しています。2つ目の引数[空の文字列を無視]は「TRUE」として無視します。

3つ以上のセルを結合する

3つ以上のセルを結合するときは「B2:D2」のようにセル範囲を指定できるCONCAT関数、もしくはTEXTJOIN関数が便利です。連続しないセルとセル範囲を「,」でつなげ「B1,B2:D2」のような指定もできます。

「&」
複数のセルを「&」で挟む

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=B2&C2&D2」と入力します。

CONCAT関数
連続するセル範囲は「:」で指定できる

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=CONCAT(B2:D2)」と入力します。「=CONCAT(B2,C2,D2)」と入力しても同じ結果を得られますが、連続するセル範囲は「:」でつないだほうがスマートです。

CONCATENATE関数
複数のセルを「,」区切りで指定する

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=CONCATENATE(B2,C2,D2)」と入力します。

TEXTJOIN関数
区切り文字を最初に指定。連続するセル範囲は「:」で指定できる

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=TEXTJOIN("",TRUE,B2:D2)」と入力します。区切り文字を挾まないときは、引数[区切り記号]には「""」(空の文字列)を指定します。2つ目の引数[空の文字列を無視]は「TRUE」として無視します。

区切り文字などを含めて結合する

セルを結合する際に、固定の文字列を含めて結合する方法です。文字列は「"」(ダブルクォーテーション)で囲んで引数に指定します。セルの前後に結合するときも同じ要領です。

区切り文字を含めて結合したいときは、引数で「区切り記号」を指定できるTEXTJOIN関数がおすすめです。数式をまとめて見てみましょう。ここではセル同士の間に「-」を挟んでいますが、「" "」や「" "」のように半角・全角スペースを指定したり、CHAR関数を利用して「CHAR(10)」で改行を結合したりする使い方もできます。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「&」、CONCAT関数、CONCATENATE関数では、「"-"」を引数に都度指定する必要があり、少し面倒です。TEXTJOIN関数は「=TEXTJOIN("-",TRUE,B2:D2)」となります。セル同士を結合する際に利用した数式と比較すると、違いは第1引数の「"-"」のみです。

TEXTJOIN関数の1つ目の引数には、配列定数を利用できます。区切り文字を切り替えられる、応用例です。ここでは「{"/","-"}」のように指定しています。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=TEXTJOIN({"/","-"},TRUE,B2:D2)」と入力しました。1つ目の引数が「{"/","-"}」、結合するセルは、B2、C2、D2なので、セルB2とC2は「/」、C2とD2は「-」で区切られています。

結合した文字列の日付を正しく表示する

表の1行目に、TODAY関数を利用した、更新日を表すための数式を挿入してみましょう。日付が自動的に更新されるよう「=TODAY()&"更新"」と入力しました。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

「=TODAY()&"更新"」と入力してみます。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

結果は数値になってしまいました。

文字列を結合した結果はテキストとして扱われるため、日付がシリアル値に変換されてしまいました。この現象を解消するには、TEXT関数を使いましょう。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

数式を「=TEXT(TODAY(),"yyyy/mm/dd"&"更新")」と修正します。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

日付が正しく表示されました。

結合した文字列を数値に変換する

文字列結合後の値は、数値として扱えません。そのため、特定の数値と比較したいなど、文字列を数値として使いたい場合は、VALUE関数を利用して変換します。

以下の例では、セルE3に「=C3&D3」と入力してあり、5ケタの数値が入っているように見えます。これが20,000以上かどうかを判定するために、セルG3には「=E3>=200000」と入力してあります。すると、20,000に満たないように見える値も「TRUE」となってしまいました。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

セルE3には「=C3&D3」、セルG3には「=E3>=20000」と入力してあります。10001や10002は該当しないはずです。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

セルE3の数式を「=VALUE(C3&D3)」と修正すると、結合した文字列がそのまま数値に変換されます。

Excelで文字列を結合する方法。「&」「CONCAT」「CONCATENATE」「TEXTJOIN」を使い分ける!

修正した数式をオートフィルでコピーすると、文字列が数値と認識され、正しい結果が得られました。

文字列の結合は「&」と決めつけずに、目的に応じて使い分けたほうが効率的です。特に区切り文字を使って複数のセルを結合するときは、TEXTJOIN関数で手間がかなり省けます。