Excel(エクセル)CONCAT関数の使い方|複数の配列の文字列を結合
文字列を連結するCONCAT関数の基本的な使い方から応用までを、できるだけ分かりやすく解説していきます。
使用関数:CONCAT、TEXT、CHAR
CONCAT(コンカット)関数とは?
CONCAT(コンカット)は連結・連鎖を意味する英語CONCATENATE(コンカティネイト)の略です。その名の通り、文字列を結合させます。
CONCAT関数が使えるExcelバージョン、使えないExcelバージョン
CONCAT関数はCONCATENATE関数の後継としてExcel2016(Office365版のみ)から加わった文字列操作の関数です。単体のExcelでは2019から正式にリリースされました。
- CONCAT関数が使えないExcelバージョン: Excel2013より以前のバージョン、及び通常版のExcel2016
- CONCAT関数が使えるExcelバージョン: Excel2019以降のバージョン、及びOffice365(現Microsoft365)に収録されたExcel2016
CONCATが使えないExcelではCONCATENATE(コンカティネイト)関数で代替できます。
CONCATとCONCATENATE関数の違い
CONCATとCONCATENATEはどちらも文字列を結合させる関数ですが、CONCATは進化版なので使い勝手はCONCATENATEより優れています。
- CONCATの引数は「テキスト1」…、CONCATENATEの引数は「文字列1」…です。
- CONCATENATE関数の引数に指定できるのは文字列・数値・単一セルの参照です。連結させるセル範囲をまとめて指定できません。
- CONCAT関数の引数には、まとまったセル範囲、配列の指定ができます。離れたセル範囲同士を連結させることが可能です。
CONCATENATEは現在関数ライブラリの「文字列操作」から「その他の関数」→「互換性」に移動しています。今後サポートが終了することも考えられますので、可能であればCONCATを使用することをお勧めします。CONCATを使う環境が整わない場合は結合演算子の&で文字列を連結させておいた方がリスク回避できると思われます。
演算子&で文字列を結合させる方法はこちらを参照して下さい
CONCAT関数の引数と書式
「数式」タブ→「関数ライブラリ」→「文字列操作」からCONCATを選択します。
COLUMN関数の引数は「テキスト1」「テキスト2」・・・で、「テキスト254」まで指定できます。
CONCAT関数の書式の構成はこうなります。
CONCAT関数の基本的な使い方
CONCAT関数の簡単な使用例で機能を確認しましょう。
オフィスの移転を通知する文章を以下の表のデータを結合させて組み立ててみます。
引数「テキスト1」最初の文字列
文章の出だしの文字列を指定します。この例では「当社は」と入力しました。入力後にTabキーを押すとダブルクォーテーションが自動で入ります。
引数「テキスト2」日付のセル
移転の日付の入ったセルをクリックで指定します。(※この日付は予め文字列に変換してあります。日付データの入ったセルを参照するとシリアル値が返ります)
引数「テキスト3」途中の文字列
スムーズな文章になるように、つなげる文字列を入力します。この例では「をもちまして、」と入力しました。入力後にTabキー。
引数「テキスト4」住所の配列(セル範囲)
新住所1~3までのセル範囲(配列)をドラッグで指定します。
引数「テキスト5」結びの文字列
文章の結びの文字列を入力します。この例では「へ移転致しました」と入力しました。入力後にTabキー。
CONCAT関数を使った文字列の結合が以下のように表示されました。
数式です。 =CONCAT(“当社は”,A2,“をもちまして、”,B2:D2,“へ移転致しました”)
CONCAT関数で複数の配列・セル範囲を結合する
複数のセル範囲・配列を一括で指定して、CONCAT関数で連結させる例を挙げておきます。
下図の「商品コード」「型番」「色コード」「個別番号」を連結させて「製品ID」を作成します。
CONCAT関数の引数「テキスト1」と「テキスト2」にそれぞれのセル範囲をドラッグで指定します。
「製品ID」が連結されました。
CONCAT関数で日付を連結する
前々章では文字列に変換した日付セルを指定しました。実際の日付データのセルを参照するとシリアル値が返ってしまいます。
この例だと、「当社は44741をもちまして、東京都港区◯◯◯1-2-345□□□ビル 5Fへ移転致しました」と表示されます。
これを日付データのまま、見た目通りの表示で結合するにはTEXT関数の力を借ります。
TEXT関数は日付データに表示形式を適用した文字列を返します。この例では引数「値」にA2セル、「表示形式」に“yyyy年m月d日”と指定します。
CONCAT関数の引数「テキスト2」に上記のTEXT関数をネスト(入れ子)します。CONCAT関数の引数ダイアログボックスの指定は以下のようになります。
表示形式を適用した日付のまま、他の文字列と結合する数式は以下のようになります。
=CONCAT(“当社は”,TEXT(A2,”yyyy年m月d日”),”をもちまして、”,B2:D2,”へ移転致しました”)
TEXT関数で数値を価格などの表示形式に変換して文字列と連結させる方法も解説しています
CONCAT関数に改行を指定して結合
結合させる文字列に改行を入れたい場合があると思います。
CONCAT関数の引数の一つにCHAR関数をネストして改行を結合します。CHAR関数は指定した文字コードに対応する文字を返します。改行の文字コードは10なので、CHAR(10)と入力します。CHAR(10)=改行は覚えておくと便利です。
数式を確定させると、この時点では改行されていません。
連結した文字列の改行を表示に反映させるためには、「ホーム」タブの「配置」グループにある「折り返して全体を表示する」ボタンをクリックします。
CONCAT関数で結合した文字列の改行が反映されました。
スペースやカンマなどの区切り文字で文字列を連結する
区切り文字を挿入して文字列をつなげたいなら、CONCAT関数よりTEXTJOIN関数が便利です。スペースやカンマなどの区切り文字を指定して文字列を結合させることができます。
TEXTJOIN関数の使い方は以下の記事で詳しく解説しています
- CONCATは文字列を結合する関数です
- CONCATENATE(コンカティネイト)関数の後継としてExcel2016(Office365版)から登場しました
- CONCATENATE関数との最も大きな違いは、CONCAT関数は引数に複数のセル範囲・配列を指定して連結できる点です
- CONCAT関数で日付を結合するにはTEXT関数をネストして表示形式を適用した文字列に変換します
- CONCAT関数で改行を入れて文字列をつなげるには、改行を表示するCHAR(10)を引数にネストします
- スペースやカンマなどの区切り文字で文字列を連結するなら、CONCATよりTEXTJOIN関数を使います