【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
注目・最新の記事一覧

連結したい文字列をセル範囲でまとめて指定

「Excel 2019特集」の第4弾となる【エクセル時短】第99回では、新関数のTEXTJOIN(テキストジョイン)関数CONCAT(コンカット)関数を紹介します。

この2つの関数は、前々回に紹介したSWITCH(スイッチ)関数と同様、Excel 2019とOffice 365版のExcelで利用できる新しい関数です。

いずれも文字列を連結する関数で、Excel 2016以前のバージョンで使えるCONCATENATE(コンカティネート)関数と似た働きをするのですが、新関数のほうが、いろいろと便利になっています。旧バージョンへの対処法も含めて、何が新しいのかを見ていきましょう。

TEXTJOIN関数
「/」などの区切り文字を挟みたいときに便利

文字列を連結するとき、区切り文字を挟みたいシーンがありますよね。URLなら「/」(スラッシュ)、電話番号や郵便番号なら「-」(ハイフン)などです。単純に「,」(カンマ)やスペースで区切りたいこともあるでしょう。

そんなときに便利なのがTEXTJOIN関数です。構文は以下の通り。

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

引数[区切り記号]には、連結する文字列に挟みたい区切り文字を指定します。この引数を1回指定するだけで、区切り文字を繰り返し挿入できるのが、TEXTJOIN関数のメリットです。

空の文字列を無視]は、論理値(TRUEまたはFALSE)で指定します。次の引数[文字列]に空の文字列がある場合、TRUEはそれを無視し、区切り記号を挿入しません。FALSEは空の文字列も連結し、区切り記号を挿入します。

文字列]は連結する文字列、もしくは文字列が入力されているセルを指定します。「B3:B5」のようにセル範囲を指定することも可能です。

ここでは「/」を区切り文字として、TEXTJOIN関数でURLを生成する例を見ていきます。

1TEXTJOIN関数を入力する

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

セルB3〜B5には、ディレクトリを表す文字列が入力してあります。セルC8の関数式は以下の通り。URLなので空白のセルは無視し、連結する文字列はセル範囲で指定しました。絶対参照にしているのは、オートフィルをしたときにURLの共通部分のセル参照がズレないようにするためです。

=TEXTJOIN("/",TRUE,$B$3:$B$5,A8)
2TEXTJOIN関数の結果が表示された

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

「/」を挟み込んで文字列が連結されました。セルの参照元の値を変更すれば、ほかのリストにも流用できます。

CONCAT関数
セル範囲を指定して一気に連結できる

続いて、CONCAT関数で同様のリストを作ってみましょう。構文は以下の通りです。

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

引数[文字列]には連結する文字列、もしくはセル範囲を253個まで指定できます。TEXJOIN関数よりも、シンプルでわかりやすいですね。

ただ、区切り文字は挿入できないので、先ほどの例と同じことをCONCAT関数で行うには工夫が必要です。以下で見ていきましょう。

1CONCAT関数を入力する

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

セルB3〜B5には、ディレクトリを表す文字列を「/」を含めて入力しました。セルC8には以下の関数式を入力します。

=CONCAT($B$3:$B$5,A8)
2CONCAT関数の結果が表示された

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

CONCAT関数の結果が表示されました。なお、参照元の文字列に「/」を含めたくない場合は、CONCAT関数の引数として「/」を直接指定します。以下のように「"」で囲った文字列として入力しましょう。

=CONCAT($B$3,"/",$B$4,"/",$B$5,"/",A8)

旧バージョン向けにはCONCATENATE関数を使う

TEXTJOIN関数とCONCAT関数の便利さがわかったと思いますが、これらを旧バージョンのExcelで使うと「#NAME?」エラーになってしまいます。ファイルを共有する相手のExcelのバージョンが分からない場合は、CONCATETANE関数か「&」演算子を使いましょう。

しかし、CONCATETANE関数では引数としてセル範囲を指定できません。先ほどと同じ結果を得るには、セルを1つずつ引数に指定していく必要があります。

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

CONCATETANE関数の式は以下の通り。連結する文字列をセル範囲でまとめて指定できるところが、TEXTJOIN関数とCONCAT関数の優れた点です。

=CONCATETANE($B$3,$B$4,$B$5,A9)

【エクセル時短】「CONCATENATE」はもう古い!? 文字列連結の新関数「TEXTJOIN」&「CONCAT」の使い方

「&」演算子も同様に、以下のような式でセルを1つずつ連結していく形になります。

=$B$3&$B$4&$B$5&A10

以上、TEXTJOIN関数とCONCAT関数の使い方を解説しました。

文字列の連結時に区切り文字を挿入したいならTEXTJOIN関数、汎用的な連結にはCONCAT関数、旧バージョンも考慮するならCONCATETANE関数か「&」演算子、という使い分けになります。これらを覚えておけば、Excelでの文字列の連結は完璧です!