Excelで1つのセルに他のセルの文字列を結合した文字列を表示する方法を紹介します。
5つの方法を紹介しますので、使用環境に合った方法で操作してみてください。
Excel2013以降であれば、フラッシュフィルがお勧めです。
参考Excel2019では、CONCAT関数 と TEXTJOIN関数 が追加されました。
関数や演算子で設定していると、参照元の値が変更になっても自動的に変更されますが、フラッシュフィルでは自動的に変更はされません。
どちらを選択した方がいいのかは、使用する状況によって選択してください。
この記事の目次
[&](アンバサンド)で結合する
下のような表があります。
セル[E2]にセル[B2]と、セル[C2]と、セル[D2]の文字を結合した文字列を表示します。
セル[E2]を選択して、以下のように入力します。
=B2&C2&D2
もちろん、セル番号はクリックして挿入して構いません。
数式バーに、「=」を入力、セル[B2]をクリック、「&」を入力、セル[C2]をクリック、「&」を入力、セル[D2]をクリックです。
そして、この数式をコピーします。
ドラッグでもいいですし、フィルハンドルをダブルクリックでもいいです。
この方法については、以下のページでも解説しています。
参考フィルハンドルが表示されない場合は、設定を確認してください。
-
オートフィル機能が使用できない時は[Excelのオプション]で確認
フィルハンドルってご存知ですか?Excelのワークシートでアクティブセルの右下に現れる小さい四角の形のものです。 これって便利ですよね? こ ...
空白を追加して結合
空白文字を途中に追加したい場合は、以下のようにします。
=B2&" "&C2&" "&D2
文字列を追加したい場合
数式内に文字列を追加したい場合は、ダブルクォーテーションで囲んで入力します。
=A1&"様"
文字列と日付を結合する場合
文字列と日付を結合すると、日付の表示形式がシリアル値になってしまいます。
表示形式のまま結合したい場合は、先に日付のセルを文字列に変換しておきます。
セル[B1]の表示形式を先に[文字列]にして入力します。
参考セルの値を文字列にするには、TEXT関数を使う方法と、メモ帳に貼り付けて、それをコピーして貼り付ける方法もあります。
データが多い場合は、TEXT関数を使ったほうが効率的です。
CONCATENATE関数を使う
CONCATENATE(コンカティネイト)関数を使う方法です。
セル[E2]を選択した状態で、[数式]タブをクリックして、[関数ライブラリ]グループにある[文字列操作]から[CONCATENATE]をクリックします。
ポップヒントには、下のように記されています。
CONCATENATE(文字列1,文字列2,)
複数の文字列を結合して1つの文字列にまとめます。
クリックすると、下のように[関数の引数]ダイアログボックスが表示されます。
[関数の引数]ダイアログボックスを表示する方法は、ほかにもあります。
[文字列1]のテキストボックスにカーソルがあることを確認して、セル[B2]をクリックします。
[文字列1]のテキストボックスにはセル[B2]が入ります。
続けて、同じように操作して、[文字列2]のテキストボックスには、セル[C2]、[文字列3]のテキストボックスにはセル[D2]が表示されるようにします。
[OK]ボタンをクリックして、[関数の引数]ダイアログボックスを閉じます。
=CONCATENATE(B2,C2,D2)
セル[E2]の数式バーには下のように「=CONCATENATE(B2,C2,D2)」と表示されて、セル[E2]には文字列が結合された状態になっていれば、フィルハンドルをダブルクリックして関数をコピーします。
下のように隣の列と同じ最終行まで、関数がコピーされます。
新関数[CONCAT関数]ではセル範囲を指定可
Excel2019では、CONCAT(コンカット)関数が追加されています。
使用できる環境については、Microsoftのページで確認してください。
CONCAT 関数 - Microsoft サポート(Microsoft)
[数式]タブの[関数ライブラリ]グループにある[文字列操作]には、[CONCATENATE]はありませんが、使用できないわけではありません。使用できます。
CONCAT(テキスト1,)
テキスト文字列の一覧または範囲を連結します
引数にセル参照だけでなく、セル範囲も指定できるようになっています。便利になりました。
=CONCAT(B2:D2)
以下は、[CONCAT]の[関数の引数]ダイアログボックスです。
[CONCATENATE関数]との違いが分かると思います。
参考新関数を使用できないバージョンのExcelで表示した場合の挙動については、以下で解説しています。
新関数[TEXTJOIN関数]は区切り文字を挿入して結合
Excel2019では、TEXTJOIN(テキストジョイン)関数も追加されています。
使用できる環境については、Microsoftのページで確認してください。
TEXTJOIN 関数 - Microsoft サポート(Microsoft)
[数式]タブの[関数ライブラリ]グループにある[文字列操作]の中にあります。
[文字列操作]の下方にあります。
TEXTJOIN(区切り文字,空のセルは無視,テキスト1,)
区切り文字を使用してテキスト文字列の一覧または範囲を連結します
参考以下の画像で使用している省略波線は、Excelの図形で作成しています。
例えば、以下のように使用します。
=TEXTJOIN(",",TRUE,B2,C2,D2)
TEXTJOIN関数の引数ダイアログボックスです。
- 区切り文字
文字列の間に挿入する区切り文字を指定します。テキストボックスには、ダブルクォーテーションで挟まれていますが、これは、自動的に入力されます。
ここでは[,]を使用していますが、[-]などの区切り文字でも構いません。 - 空のセルは無視
空のセルに対しての処理を指定します。
[TRUE]を指定した場合、空のセルを無視して、区切り文字は挿入されません。
[FALSE]を指定した場合、空のセルも文字列として、必ず区切り文字を挿入します。 - テキスト
結合する文字列を指定します。252個まで可能です。セル範囲でも構いません。
以下のように指定しても同じということです。
改行して連結したい場合
改行して連結したい場合は、[区切り文字]に[CHAR(10)]を使用します。
数式を入力するセルは、[ホーム]タブの[配置]グループにある[折り返して全体を表示する]をオンにしておきます。
そして、以下の数式を入力します。
=TEXTJOIN(CHAR(10),TRUE,B2:D2)
[関数の引数]ダイアログボックスは以下のようになります。
2つのセルを改行して連結する場合は、[=A1&CHAR(10)&B1]でかまいませんが、連結するセルが多くなると面倒なので[TEXTJOIN]関数を使用したほうが効率的です。
参考Excel2019では、IFS関数とSWITCH関数も追加されています。IF関数の入れ子(ネスト)が苦手な方は、IFS関数はお勧めです。
-
日付から月・四半期・上期下期を求める(MONTH/IFS/SWITCH関数)
Excel2019では、複数の条件や値を検索して結果を求める[IFS(イフエス)関数]と[SWITCH(スイッチ)関数]が追加されています。 ...
MAXIFS関数とMINIFS関数も使用できるようになっています。
-
複数の条件で最大値/最小値を求める[MAXIFS関数]と[MINIFS関数]
Excel2019では複数の検索条件で最大値・最小値を求められる[MAXIFS(マックスイフエス)関数]と[MINIFS(ミニマムイフエス) ...
フラッシュフィルを使う
フラッシュフィルという機能は、Excel2013以降のバージョンで使用できる機能です。
セル[E2]に下のように表示したい文字列を入力します。文字列をコピーして貼り付けしても構いません。数式や関数ではなく、入力します。
面倒かもしれませんが、1回切りでOKです。
入力が終わったら確定して、[ホーム]タブの右端の方にある[フィル]ボタンをクリックして、[フラッシュフィル]をクリックします。
もし、一行の入力でうまくいかない場合は、その下の行も入力して[フラッシュフィル]を実行してみてください。
あっという間に文字列を結合した状態にしてくれます。
フラッシュフィルのポップヒントには以下のように記されています。
フラッシュフィル(Ctrl+E)
値を自動的に埋め込みます。結果として使いたいサンプルをいくつか入力したら、値を埋め込みたい列のセルをアクティブにした状態にしておきます。
フラッシュフィルについては、以下の記事で詳しく解説しています。フラッシュフィルであれば、文字列の結合も分割もできます。
-
フラッシュフィル(文字列の結合や抜き出しをワンクリックで)
フラッシュフィルとは、Excelが入力されたデータから規則性を自動的に認識して実行してくれる機能です。Excel2013の新機能です。 これ ...
参考セルの文字列を複数のセルに分割したい場合の方法は、以下の記事で解説しています。
-
氏名の列を姓と名の列に分割するなら[区切り位置指定ウィザード]
Excelで氏名セルを姓と名の別々のセルに分けるという作業をしなければならないことがあります。 F列の氏名は、空白スペースで区切られています ...
-
1つのセルの内容を複数のセルに分割(指定した文字数で分割)
区切り位置指定ウィザードを使って、8個の並んだ数字を4個の数字(年)、2個の数字(月)、2個の数字(日)に分割します。 区切り位置指定ウィザ ...
-
関数を使って氏名の列を[姓]と[名]に分割してふりがなを表示
Excelで氏名の列を姓と名の列に分割したい場合がありますね。 区切り位置指定ウィザードを使用して分割する方法は、以下の記事で解説しています ...