【Excel】複数のセルの文字列を結合して1つの文字列にするTech TIPS

氏名や住所などが複数のセルに分割されている場合、これらの文字列を1つに結合して、処理を行いたいこともあるだろう。そこで、ここでは文字列を結合する方法を紹介する。

» 2022年01月31日 05時00分 公開
[小林章彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Excel 2013/2016/2019/2021/365


複数のセルに分割された文字列を結合する 複数のセルに分割された文字列を結合する
住所録などで、氏名や住所などが複数のセルに分割されている場合がある。データ処理を行う際、こうした分割された文字列を結合したいこともあるだろう。そこで、ここでは文字列を結合する方法を紹介する。なお画面の住所録は、yamagata氏の架空の住所録を作成するツール「テストデータ・ジェネレータ」を使って作成したものを、サンプル用に改変している。

 「Microsoft Excel(エクセル)」を使って、顧客名簿の管理やアンケートの集計などを行うケースも多いのではないだろうか。その際、Webサイトのフォームで入力してもらったり、外部から入手したりした住所録やアンケートなどのデータをExcelに読み込むと、住所などが複数のセルに分かれていることがある。

 こうしたデータを処理する際、氏名や住所などがそれぞれ1つのセルにまとめてあると、並べ替えなどが行いやすい。また、場合によっては、文字列を結合する際に、姓と名の間に半角のスペースを入れたいということもあるだろう。

 本Tech TIPSでは、このような場合の処理方法を紹介しよう。

「&」で文字列を結合する

 最も簡単なのは、文字列の入った結合したセルを「&」でつなげる方法だ。例えば、「A2」セルと「B2」セルに入っている文字列を結合して、「C2」セルに入力したい場合、「C2]セルに「=A2&B2」と入力すればよい。姓と名をつなげる際、姓と名の間に半角スペースを入力したい場合は、「=A2&" "&B2」と、間に「" "」を結合すればよい。

「&」で文字列を結合する(1) 「&」で文字列を結合する(1)
セル番号を「&」でつなげることで、文字列の結合ができる。スペースなどの区切り記号を入れる場合は、文字列の間に「" "」を「&」で結合すればよい。
「&」で文字列を結合する(2) 「&」で文字列を結合する(2)
セルの右下部分をドラッグして、オートフィルで他の行に反映する。
「&」で文字列を結合する(3) 「&」で文字列を結合する(3)
姓と名が結合したセルが作成できる。

 ただ、文字列を結合したセルは、数式の状態なので、データ処理に利用する場合は、数式から文字列に変換しておく必要がある。それには、文字列を統合したセルの列(ここでは「C」列)を選択し、[Ctrl]+[C]キーでクリップボードにコピー後、「C1」セルを右クリックして、メニューの「貼り付けのオプション」で[値]を選んで貼り付ければよい。

数式から文字列に変換する(1) 数式から文字列に変換する(1)
「&」で文字列を結合した列を選択してから[Ctrl]+[C]キーを押してコピーし、そのまま右クリックして、メニューの「貼り付けのオプション」で[値]を選んで貼り付けを選択する。
数式から文字列に変換する(2) 数式から文字列に変換する(2)
数式が文字列に変換できる。

CONCAT関数やTEXTJOIN関数を使って文字列を結合する

 姓と名など、文字列を結合するセルの数が少ない場合は、「&」が簡単だ。しかし、都道府県、市区町村、番地、ビル名といったように住所が複数のセルに分割されているような場合、これを「&」で結合するのは少々面倒だ。こうした複数のセルを結合する場合は、CONCAT関数やTEXTJOIN関数を使うとよい。

 ただし、これらの関数はExcel 2019以降またはMicrosoft 365(Office 365)版Excelでのみ利用できる。それより古いExcelについては、この後の「古いExcelにも対応するにはCONCATENATE関数を使って文字列を結合する」へ進んでいただきたい。

セル範囲で指定可能なCONCAT関数

 複数のセル内の文字列を結合したい場合は、CONCAT関数を使い、セル範囲を指定するとよい。CONCAT関数は、指定した文字列を結合して出力するものだが、文字列の代わりにセル番号やセル範囲を指定することも可能だ。

CONCAT(文字列1,[文字列2,文字列3,……])

CONCAT関数の書式

CONCAT関数で複数の文字列を結合する(1) CONCAT関数で複数の文字列を結合する(1)
CONCAT関数を使うと、セル範囲を指定して文字列を結合できる。数式バーに「=CONCAT(」と入力して、結合したいセル範囲をドラッグで選択し、「)」で閉じる。
CONCAT関数で複数の文字列を結合する(2) CONCAT関数で複数の文字列を結合する(2)
選択したセル範囲の文字列が順番に結合される。

 ただし、セル範囲で指定すると、結合する文字列間に区切り記号を挿入できない。区切り記号を挿入したい場合は、「=CONCAT(B2," ",C2," ",D2)」といった具合に、セル番号の後に結合する文字列として区切り記号を指定する必要がある。

特定の区切り記号を挿入する場合はTEXTJOIN関数が便利

 電話番号が市外局番、市内局番、加入者番号といった具合に別のセルに保存されているような場合、これを1つのセルにまとめる際には、それぞれを「-」の区切り記号でつなげたいのではないだろうか。CONCAT関数では、「=CONCAT(B2,"-",C2,"-",D2)」といった具合に指定しなければならず面倒だ。

 このように、同じ区切り記号を付けて文字列を結合するのであれば、TEXTJOIN関数を使うと便利だ。

TEXTJOIN(区切り記号, 空のセルの処理, 文字列1,[文字列2,文字列3,……])

TEXTJOIN関数の書式

 「区切り記号」は、文字列を「"」で囲んで指定する。区切り記号に「-」を入れたいのであれば、「"-"」とする。「空のセルの処理」は、「TRUE」ならば空のセル(文字列が入っていないセル)を無視、「FALSE」ならば空の文字列も含めて結合される。そのため、「FALSE」を指定すると、区切り記号が連続してしまうので注意してほしい。

 その後の「文字列」部分は、CONCAT関数と同様、セル番号やセル範囲での指定が可能だ。

TEXTJOIN関数で区切り記号を付けて複数の文字列を結合する(1) TEXTJOIN関数で区切り記号を付けて複数の文字列を結合する(1)
TEXTJOIN関数では、区切り記号を指定することで、文字列の間に区切り記号を入れた結合が行える。ここでは、電話番号を区切り記号「-」で結合する。
TEXTJOIN関数で区切り記号を付けて複数の文字列を結合する(2) TEXTJOIN関数で区切り記号を付けて複数の文字列を結合する(2)
市外局番、市内局番、加入者番号が「-」で結合された。

 TEXTJOIN関数は、「区切り記号」を「""」とし、「空のセルの処理」を「FALSE」とすれば、CONCAT関数と同様に使える。汎用(はんよう)性が高いので、文字列を結合したい場合は、TEXTJOIN関数を利用しておくとよい。

古いExcelにも対応するにはCONCATENATE関数を使って文字列を結合する

 CONCAT関数やTEXTJOIN関数は、Microsoft 365(Office 365)やExcel 2019以降で追加された関数なので、Excel 2013以前や永続版Excel 2016などの古いExcelでは対応していない(CONCAT関数やTEXTJOIN関数を使ったシートをこれらのバージョンのExcelで開くと、関数が入ったセルがエラーになる)。こうした古いExcelで処理を行うのであれば、CONCAT関数の代わりにCONCATENATE関数を利用すること。

CONCATENATE(文字列1,[文字列2,文字列3,……])

CONCATENATE関数の書式

 ただし、CONCATENATE関数は、セル範囲での指定ができないため、関数内に文字列やセル番号を並べる必要がある。そのため、「&」で結合するのと使い勝手はあまり変わらない。古いExcelで処理を行う予定があるのであれば、CONCATENATE関数よりも、「&」を利用した方が分かりやすいかもしれない。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。