Excel 2016以降で複数の文字列を結合したり、文字列と数値を結合する関数としてTEXTJOIN関数とCONCAT関数があります。作成したファイル(ブック)をExcel 2013以前のExcelで開いた場合には、#NAMEエラーが出ます。
Excel 2000、Excel 2003、Excel 2007、Excel 2010など以前のExcelでも使用できるのはCONCATENATE関数と結合演算子<&(アンパサンド)>です。
CONCATENATE関数はスペルが長いこともあり、どちらかと言えば敬遠される関数です。
CONCAT関数はCONCATENATE関数のスペルが長い為に登場したと思われます。
マイクロソフトの説明でも、
重要: Excel 2016、Excel Mobile、および Excel オンラインでは、この関数は CONCAT 関数に置き換えられています。CONCATENATE 関数は、引き続き下位互換性がありますが、今後は CONCAT を使用することを検討する必要があります。これは、CONCATENATE が Excel の将来のバージョンで利用できない可能性があるためです。
とあります。
実際にセルの文字列を1つのセルに結合させ比較してみます。
図1 B列には都道府県、C列には県庁所在地が入力されています。D列のセルに結合させて表示させます。
1.セルD3に&(アンパサンド)を使った数式は、=B3&C3 と入力します。
この数式をセルD4からセルD9に数式コピーすればそれぞれのセルが結合されます。
2.CONCATENATE関数を使用する場合は、=CONCATENATE(B3,C3) と入力します。
この数式をセルD4からセルD9に数式コピーすればそれぞれのセルが結合されます。
3.CONCAT関数を使用する場合は、=CONCAT(B3,C3) と入力します。
この数式をセルD4からセルD9に数式コピーすればそれぞれのセルが結合されます。
4.TEXTJOIN関数を使用する場合は、=TEXTJOIN(“”,TRUE,B3,C3) と入力します。
この数式をセルD4からセルD9に数式コピーすればそれぞれのセルが結合されます。
結合させるセルが少々増えても操作は同じです。
長所短所はどうか
&(アンパサンド)を使用した場合
長所:操作が分かりやすい。
短所1:結合させるセルや文字列が多いとその都度「&」の入力が必要でわずらわしい。
短所2:複数セルを同時に指定できません。
図2 セルF3は =B3&C3&D3&E3 と入力していますが、G3は =B3:C3&D3:E3 と入力していますが#VALUE!エラーを表示しています。
CONCAT関数を使用した場合
長所1:引数(ひきすう。関数の変数のこと)を指定するだけ。
長所2:複数セルを引数として指定できます。
短所1:使用頻度が少ないと関数を忘れるかもしれません。
短所2:Excel 2013以前のExcelでファイルを開き数式が計算されると#NAME?エラーが表示されます。
図3 セルF3は =CONCAT(B3,C3,D3,E3)と入力しています。G3は =CONCAT(B3:E3)と入力しています。
ただし、CONCATENATE関数では =CONCATNATE(B3:E3)とすると#VALUE!エラーを返します(図4)。
CONCATENATE関数を使用した場合
長所:Excel 2013以前のExcelバージョンと互換性があります。
短所:連続したセルをセル範囲として引数に指定できず、&(アンパサンド)と同じような入力が必要です。
図4 セルF3は=CONCATNATE(B3,C,D3,E3)と入力しています。
G3には =CONCATNATE(B3:E3)と数式を入力したら#VALUE!エラーを返しています。
TEXTJOIN関数を使用した場合
長所:結合する文字列間に他の文字や記号をはさみたいときには便利です。
短所:関数の引数がわかりにくい。
図5 セルF3は =TEXTJOIN(“”,TRUE,B3:E3)と入力しています。G3は =TEXTJOIN(“ “,TRUE,(B3:E3)と入力しています。セルF3の引数では文字間に何も挿入していませんが。G3では半角スペース「” “」を挿入するようにしています。
TEXTJOIN関数は、TEXTJOIN(区切り文字,空のセル判定,文字列1、[文字列2],…)となっています。詳細は下記のTEXTJOIN関数ホームページを参照してください。
文字列や数値を結合する関数・機能の利用方法
セル単位で分割して入力されている住所録をひとつにするという使い方は分かりやすいでしょう。
それ以外に次のような使い方ができます。
図7 パーセントの数値を表示させるにはTEXT関数を使います。
TEXT関数は地味な関数ですが、数値を正確に取得するための関数でもあります。日時や時間などを扱う場合もTEXT関数は重要な役目をしてくれます。
Excelで様々な資料を作成することがありますが、集計した結果を説明文内に直接連動して反映させれば途中の数値が変わっても変更に応じて結果が反映されるようになります。
文字列や記号・数値を数式に直接使う場合は、「”結合”」のように文字列を2重引用符で囲むようにします。
図5の例で説明しましたが、半角スペースや全角スペースを結合したい文字列の間に挿入するには、「” “」(半角スペース)、「” ”」(全角スペース)ダブルクォーテーションでそれぞれを囲むようにします。スペースは<空欄>ではなく<文字>です。Excelではそれぞれ文字コードがあり区別されています。データを入力する時に区別をせずにスペースを使うと後からデータの並び替えなどがうまくいかないことになります。
※CONCATENATEは鎖状につなぐ、連結させる という意味です。
※& アンパサンド ampersand
Microsoftホームページ
文字列と数値を結合する
CONCATENATE 関数
CONCAT 関数
TEXTJOIN 関数
<参考情報>
新しい文字列操作関数としてCONCAT関数、TEXTJOIN関数は2016年3月8日のバージョン1602(ビルド6741.2014)からサポートされています。
このバージョンで新しい論理関数IFS関数、SWITCH関数が利用できるようになりました。
また新しい統計関数MAXIFS関数とMINIFS関数もこのバージョンから利用できるようになっています。
https://docs.microsoft.com/ja-jp/officeupdates/semi-annual-channel-targeted-2016