文字列結合式と、文字列を結合する関数3つ

2018.04.04関数

Excelで扱えるデータは数値だけではなく、文字列を扱うこともできます。
文字列は四則計算ができないのですが、複数の文字をつなぎ合わせることはできます。
今回はこの文字列の結合する方法と文字列の結合で使える関数を紹介します。

文字列結合式

文字列を結合する計算式は、四則計算と同じで「=」からはじまり、セル参照や" "で囲まれた実際の文字列など&の記号でつなぎ合わせることで作成します。
例えば、セルA1のA1の数値と円を結合するには次の計算式になります。
=A1&"円" 
このような計算式のことを文字列結合式と呼びます。
文字列結合式の結果は、数値と文字列を結合した場合、文字列と文字列を結合した場合、数値と数値を結合した場合、全てで文字列となります。
=1&1 の答えは2ではなく、1と1が結合され「11」という文字になります。

CONCATENATE関数

文字列を結合するには&の記号を使うのですが、関数でも文字列の結合ができます。
CONCATENATE関数は、引数に指定された複数の文字列を一つの文字列に結合する関数です。
CONCATENATE関数の書式は次の通りです。
=CONCATENATE(文字列1,文字列2,文字列3,・・・)
セルA1、B1、C1の値と文字列「以上」を結合する場合は次の計算式になります。
=CONCATENATE(A1,B1,C1,”以上”)
ここで次の図をご覧ください。

 

今回、セルA2に入っている値を、金と円を含め、さらに外税金額を記載します。
金と円だけなら、表示する値は1つだけですので、表示形式でも可能ですが、今回は、外税金額も結合するので、文字列結合式でなければいけません。
セルB2(❶)では、セルA2の値と、金円の文字、さらに、0.08を乗算した外税額にキャプションをつけたものを&で結合しました。
セルB3(❷)では、&を使わずにCONCATENATE関数で結合しています。
キャプションを付けるためにTEXT関数を使うこともできるでしょう。
セルB4(❸)では、A2の値のTEXT関数と外税の値のTEXT関数を結合しようとしましたが、VALUEエラーになりました。これはTEXT関数では「:」を文字列の指定で使えないためです。
そのために、セルB5(❹)では、「:」を含んだ部分をTEXT関数とは別の文字列にし、&で結合しています。
セルB6(❺)では、セルB5の内容を、&ではなくCONCATENATE関数で作成しています。

CONCAT関数

CONCATENATE関数では、文字を一つ一つ指定しなければなりませんでした。範囲内の文字列を順番に結合する場合でも、セルを1つ1つ指定する必要があったのです。
そこで、CONCAT関数を使うことで、結合する文字の範囲を、範囲で指定することができます。
CONCAT関数の書式は次の通りです。
=CONCAT(文字列範囲1,文字列範囲2,文字列範囲3,・・・)
文字列の範囲は、複数のセルでも、一つのセルでも、" "で囲まれた実際の文字列でも構いません。
セルA1からA5までの範囲の文字をすべて結合し、さらに「以上」という文字を結合する計算式は次の通りです。
=CONCAT(A1:A5,”以上”)
次の図をご覧ください。

 

今回、セルA2からA6の文字を結合して「あいうえお」にしたいと思います。
セルB2(❶)では、CONCATENATE関数を使って、範囲選択をしようとしていますが、CONCATENATE関数は範囲選択はできないので、指定の先頭のセルのA2の値のみを表示しています。
セルB3(❷)では、CONCATENATE関数の正規の使い方で、5つのセルを1つずつ指定しており、想定した答えが求められていますが、文字数が多くなると大変になるでしょう。
セルB4(❸)では、CONCAT関数を使い、範囲選択をしています。範囲の上から順に結合されて、想定通りの答えが求められています。
セルB5(❹)では、CONCAT関数を使い、5つのセルを結合した上で、はじめと最後に文字列を結合しています。
結合した前後にこのようにキャプションを付けることもできます。

TEXTJOIN関数

TEXTJOIN関数も、範囲で結合する文字を指定できるのですが、さらに結合する文字と文字の間に区切り文字を追加することができます。
TEXTJOIN関数関数の書式は次の通りです。
=TEXTJOIN(区切り文字,空白セルも空白として結合する場合はFALSE、空白を無視する場合はTRUE,文字列範囲1,文字列範囲2,文字列範囲3,・・・)
セルA1からA5にあ、い、う、え、おと入力されており、その5文字を「,」で区切り、「あ,い,う,え,お」という文字にする場合は次の計算式です。
=TEXTJOIN(“,”,FALSE,A1:A5)
今回は第二引数をFALSEにしたので、もし、セルA3の「う」が空白になった場合、「あ,い,,え,お」と「う」のみがなくなり、4つのひらがなと、1つの空白の計5つの文字データが結合されたようになります。
もし第二引数をTRUEにすると、セルA3の「う」が空白になった場合、「あ,い,え,お」と「う」とその後の「,」もなくなり、4つの文字データが結合されたようになります。
次の図をご覧ください。

 

今回、セルA2からC6までデータが入力されており、1行ごとにデータを「/」の区切り文字で結合します。
セルE2(❶)には、CONCATENATE関数を使ってA2からC2の文字列を「/」で区切って結合しています。さらにその計算式がセルE6までコピーされています。
セルF2(❷)には、TEXTJOIN関数を使ってA2からC2の文字列を「/」で区切って結合しています。CONCATENATE関数よりシンプルでわかりやすい計算式になっています。その計算式がセルF6までコピーされています。
セルF7(❸)には、セルF2からF6までの文字列を、「,」で区切って、最終的にセルA2からC5までのデータを1つのセルに結合しています。

まとめ

今回は文字列結合織について解説しました。単純な文字列の結合は「&」で行えます。
それを関数で行うのがCONCATENATE関数です。
ただし、「&」やCONCATENATE関数は、引数が一つのセルか一つの文字で指定するので、結合する元の値が多い場合は苦労するかもしれません。
そこで、多くの値を結合する場合は範囲で指定できるCONCAT関数を使うと良いでしょう。
また、区切り文字を入れる場合はTEXTJOIN関数を使います。
文字列の結合は単純に値を見やすくするだけではなく、Webサイトを作る時のHTMLファイルの作成や、様々なアプリケーションへ連携するデータを作成するときにも使えます。

Back to top