氏名や住所などが複数のセルに分割されている場合、これらの文字列を1つに結合して、処理を行いたいこともあるだろう。そこで、ここでは文字列を結合する方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Excel 2013/2016/2019/2021/365
「Microsoft Excel(エクセル)」を使って、顧客名簿の管理やアンケートの集計などを行うケースも多いのではないだろうか。その際、Webサイトのフォームで入力してもらったり、外部から入手したりした住所録やアンケートなどのデータをExcelに読み込むと、住所などが複数のセルに分かれていることがある。
こうしたデータを処理する際、氏名や住所などがそれぞれ1つのセルにまとめてあると、並べ替えなどが行いやすい。また、場合によっては、文字列を結合する際に、姓と名の間に半角のスペースを入れたいということもあるだろう。
本Tech TIPSでは、このような場合の処理方法を紹介しよう。
最も簡単なのは、文字列の入った結合したセルを「&」でつなげる方法だ。例えば、「A2」セルと「B2」セルに入っている文字列を結合して、「C2」セルに入力したい場合、「C2]セルに「=A2&B2」と入力すればよい。姓と名をつなげる際、姓と名の間に半角スペースを入力したい場合は、「=A2&" "&B2」と、間に「" "」を結合すればよい。
ただ、文字列を結合したセルは、数式の状態なので、データ処理に利用する場合は、数式から文字列に変換しておく必要がある。それには、文字列を統合したセルの列(ここでは「C」列)を選択し、[Ctrl]+[C]キーでクリップボードにコピー後、「C1」セルを右クリックして、メニューの「貼り付けのオプション」で[値]を選んで貼り付ければよい。
姓と名など、文字列を結合するセルの数が少ない場合は、「&」が簡単だ。しかし、都道府県、市区町村、番地、ビル名といったように住所が複数のセルに分割されているような場合、これを「&」で結合するのは少々面倒だ。こうした複数のセルを結合する場合は、CONCAT関数やTEXTJOIN関数を使うとよい。
ただし、これらの関数はExcel 2019以降またはMicrosoft 365(Office 365)版Excelでのみ利用できる。それより古いExcelについては、この後の「古いExcelにも対応するにはCONCATENATE関数を使って文字列を結合する」へ進んでいただきたい。
複数のセル内の文字列を結合したい場合は、CONCAT関数を使い、セル範囲を指定するとよい。CONCAT関数は、指定した文字列を結合して出力するものだが、文字列の代わりにセル番号やセル範囲を指定することも可能だ。
CONCAT(文字列1,[文字列2,文字列3,……])
ただし、セル範囲で指定すると、結合する文字列間に区切り記号を挿入できない。区切り記号を挿入したい場合は、「=CONCAT(B2," ",C2," ",D2)」といった具合に、セル番号の後に結合する文字列として区切り記号を指定する必要がある。
電話番号が市外局番、市内局番、加入者番号といった具合に別のセルに保存されているような場合、これを1つのセルにまとめる際には、それぞれを「-」の区切り記号でつなげたいのではないだろうか。CONCAT関数では、「=CONCAT(B2,"-",C2,"-",D2)」といった具合に指定しなければならず面倒だ。
このように、同じ区切り記号を付けて文字列を結合するのであれば、TEXTJOIN関数を使うと便利だ。
TEXTJOIN(区切り記号, 空のセルの処理, 文字列1,[文字列2,文字列3,……])
「区切り記号」は、文字列を「"」で囲んで指定する。区切り記号に「-」を入れたいのであれば、「"-"」とする。「空のセルの処理」は、「TRUE」ならば空のセル(文字列が入っていないセル)を無視、「FALSE」ならば空の文字列も含めて結合される。そのため、「FALSE」を指定すると、区切り記号が連続してしまうので注意してほしい。
その後の「文字列」部分は、CONCAT関数と同様、セル番号やセル範囲での指定が可能だ。
TEXTJOIN関数は、「区切り記号」を「""」とし、「空のセルの処理」を「FALSE」とすれば、CONCAT関数と同様に使える。汎用(はんよう)性が高いので、文字列を結合したい場合は、TEXTJOIN関数を利用しておくとよい。
CONCAT関数やTEXTJOIN関数は、Microsoft 365(Office 365)やExcel 2019以降で追加された関数なので、Excel 2013以前や永続版Excel 2016などの古いExcelでは対応していない(CONCAT関数やTEXTJOIN関数を使ったシートをこれらのバージョンのExcelで開くと、関数が入ったセルがエラーになる)。こうした古いExcelで処理を行うのであれば、CONCAT関数の代わりにCONCATENATE関数を利用すること。
CONCATENATE(文字列1,[文字列2,文字列3,……])
ただし、CONCATENATE関数は、セル範囲での指定ができないため、関数内に文字列やセル番号を並べる必要がある。そのため、「&」で結合するのと使い勝手はあまり変わらない。古いExcelで処理を行う予定があるのであれば、CONCATENATE関数よりも、「&」を利用した方が分かりやすいかもしれない。
Copyright© Digital Advantage Corp. All Rights Reserved.