セル同士の結合 ~ 異なるセルの数値や文字列を結合する ~

字列や数値を分割する方法は前項で学習しました。分割する方法を理解したら、今度は結合する方法も知っておかなくてはなりません。

Excelでは、計算表ソフトという性質上、文字列や数値といったデータを「分割」して細かく集計していくというのがステップアップの流れになりますが、逆に、どんな場面で「結合」したいと思うでしょうか?

おそらく、それほどあるわけではないと思います。前項でも触れましたが、自身で一から作成したデータであれば、文字列や数値を結合したいと思うことはあまりないでしょう。

しかし、他のソフトからエクスポートしたCSVファイル等をExcelで利用する場合や、他の人が作成したデータを利用する場合は、自分の使いやすいように加工する必要性が出てくる場合があります。

例えば、下図のように「書籍番号」と「書籍名」を別の列に分けて入力している場合で、他の一覧などで使う名称には書籍番号と書籍名を結合した「登録名」を使いたいような場合です。

「書籍番号」と「書籍名」の表のイメージ

それでは、「B列」の「書籍番号」と「C列」の「書籍名」を結合させ、「D列」に結合させた文字列を表示させてみましょう。

代表的な方法は2つあります。

まず、1つ目の方法はシンプルに「&」で結合させる方法です。「D3」セルに「=」から数式を直接入力します。「B3」セルと「C3」セルの値を結合するので、「=B3&C3」と記述します。

セルに数式を記述したイメージ

すると、セル同士の値が結合されます。単純に「B3」セルの「A1001」と「C3」セルの「新大陸紀行」が結合して「A1001新大陸紀行」と表示さます。

いたってシンプルな方法で、あとは数式をオートフィルでコピーすればすべての列で文字列を結合させることができます。(オートフィルについて詳しくは、絶対参照と相対参照 を参照していください)

オートフィルで数式をコピーしたイメージ

ただ、これだけでは芸がないので、この方法を少し応用してみましょう。

単純に文字列や数字をくっ付けて結合するだけではなく、前項で学習したような区切り文字で連結させることも可能です。例えば、「書籍番号」と「登録名」の間に「半角スペース」をプラスして結合することができます。

なにも「&」で結合できるのはセル同士の値だけではありません。固定の文字列や記号等を組み込むこともできます。「&"文字列"」と記述することで、「""」で囲んだ文字列等を結合することができます。また、「&」は同一式の中に複数使用することができます。

したがって、「=B3&" "&C3」と記述することで、半角スペースを挟んで結合させることができます。「""」の中はスペースだけでなく、記号でも文字列でもかまいません。

セルに数式を記述したイメージ

また、特定の文字列を結合させたい場合は、「="文字列"&セル」のように記述すると、固定の文字列を文字の先頭に結合することができます。

例えば、「県名」を省略している住所録があって、すべての住所の先頭に「県名」を付け加えたい場合などに効果的です。

「県名」を文字列の先頭に結合させたイメージ

では、次の方法です。同様に数式を用いますが、今度は関数を使います。利用するのは、

CONCATENATE関数(コンカティネイト関数)・CONCAT関数(コンカット関数)

になります。基本的にはこれら2つは同じ関数です。Excel2016バージョンからCONCAT関数が新たに追加されています。ただし、2016バージョンであればすべて利用できるわけでなく、CONCATENATE関数の上位関数になるので、本項では、CONCATENATE関数のみ解説します。

関数式の検索方法は、数式バー横の「fx」ボタン(「関数の挿入」ボタン)から検索する方法に慣れている方も多いと思いますが、最近のバージョンでは「数式」タブより検索する方法が簡単です。

下図のように、カテゴリ別にボタンがあって、そのリストメニューからダイレクトに関数を選択することができます。ここでは、「文字列操作」ボタンより「CONCATENATE」を選択します。

「数式」タブの「文字列操作」ボタンのイメージ

すると、「関数の引数」画面が表示されます。あとは、連結したいセルを「文字列1」と「文字列2」に指定するだけです。

「関数の引数」画面のイメージ

これで、指定したセルの文字列を結合させることができます。

CONCATENATE関数で文字列を結合したイメージ

このように、CONCATENATE関数の操作は非常に簡単です。連結するセルは、最大30まで指定することができます。同様に、関数式をオートフィルでコピーすればすべての列で文字列を結合させることができます。

また、CONCAT関数と同じく、Excel2016バージョンから追加された、

TEXTJOIN関数(テキストジョイン関数)

も、簡単に文字列を結合させることができます。TEXTJOIN関数はCONCATENATE関数よりも機能が上です。

例えば、マウスで範囲指定した範囲すべてのセルに入力されている文字を結合させたり、区切り文字を指定して、例えばハイフン「-」を指定すれば「-」で文字列同士を連結させることもできます。

ただし、CONCAT関数同様、2016バージョンであればすべて利用できるというわけではないので、本項では割愛したいと思います。

さて、このように異なるセルの文字列を結合させるのは非常に簡単です。しかし、これらの方法による結合は、ある問題が生じることになります。

どういうことかというと、結合したセルの値は、あくまで計算式による「計算結果」となるため、元のデータを削除したり変更したりすると、ともなって値が変化してしまうということです。

結合値を値として確定するためには、コピーして「形式を選択して貼り付け」より「値」を選択し、計算式ではなく値として、もう一度貼り付け直す必要があります。(「形式を選択して貼り付け」について詳しくは、基本操作の 形式を選択して貼り付け を参照してください)

別の列に「形式を選択して貼り付け」しているイメージ

なお、すべての結合が完了したあと、同じセル(列)に「形式を選択して貼り付け」をすると、新しい列を作成する必要もなく、元データの変更に影響されなくなります。

このほか、もうひとつの注意点があります。

それは、数字を結合させる場合です。「&」による結合でも「CONCATENATE関数」による結合でもどちらでもかまわないので、数字同士を結合させてみましょう。

数字のセル同士を結合させたイメージ

すると、おわかりのとおり、数字を結合すると左揃えレイアウトとなり「文字列」として認識されます。したがって、「文字列」認識では、これらのセルの計算が正しく実行されない場合があります。

下図のように、単純な足し算(SUM関数)の計算結果が「0」になっています。

SUM関数の値が「0」のイメージ

数値認識させたい場合は、これも同様に、コピーして「形式を選択して貼り付け」より「値」を選択し、計算式ではなく値として、もう一度貼り付け直す必要があります。

更新履歴

2018年3月22日
ページを公開。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
なし
サイト
なし