複数のセルに分かれたデータを1つにまとめたい場面は、日常的なExcel作業で頻繁に発生します。
顧客名簿で姓と名を結合したり、住所データを都道府県・市区町村・番地に分かれた状態から1つの完全な住所にしたり、商品コードと商品名を組み合わせて管理用IDを作成したりと、文字列結合は業務効率化に欠かせない基本操作といえるでしょう。手作業で一つひとつコピー&ペーストするのは時間がかかりますし、ミスも発生しやすくなります。
Excelには文字列を結合する方法が複数用意されており、それぞれに特徴があります。シンプルな&演算子から、複数セルを効率的に結合できるCONCAT関数、区切り文字を自動挿入できるTEXTJOIN関数まで、状況に応じて最適な方法を選択することが重要です。
本記事では、各結合方法の基本的な使い方から、実務で差がつく応用テクニック、それぞれのメリット・デメリットまで、実践的な知識を詳しく解説します。文字列結合を効率化したい方は、ぜひ最後までお読みください。
ポイントは
・&演算子でシンプルに文字列を結合
・CONCAT関数で複数セルを一度に結合
・TEXTJOIN関数で区切り文字を自動挿入
です。
それでは詳しく見ていきましょう。
&演算子による基本的な文字列結合
それではまず&演算子を使った基本的な文字列結合方法について解説していきます。
&演算子の基本構文と使い方
&演算子とは、複数の文字列を連結して1つの文字列にする最もシンプルな方法です。
基本的な構文は非常に分かりやすく、以下のように表せます。
=セル1 & セル2
例:
A2セルに「山田」、B2セルに「太郎」と入力されている場合
=A2&B2
結果:山田太郎
&演算子は、セル参照だけでなく直接文字列を指定することもできます。直接文字列を指定する場合は、ダブルクォーテーション(””)で囲む必要があります。
| 姓 | 名 | フルネーム |
|---|---|---|
| 山田 | 太郎 | =A2&B2 |
| 佐藤 | 花子 | |
| 鈴木 | 一郎 |
この数式をコピーすれば、複数行のデータを一度に結合できます。&演算子は古いバージョンのExcelでも使用できるため、互換性が高い点も大きなメリットでしょう。
空白セルと結合しても空白として扱われるため、エラーを気にせず使用できます。
スペースや記号を挿入した結合
実務では、単純に結合するだけでなく、間にスペースや記号を挿入したいというケースが一般的です。
この場合も&演算子を使って、結合したい文字列の間に任意の文字を指定できます。
姓と名の間にスペースを入れる:
=A2&” “&B2
結果:「山田」+「 」+「太郎」= 山田 太郎
商品情報を結合する:
=A2&B2&C2&D2
カテゴリー・商品コード・商品名・型番を結合
例:家電ABC商品Aモデル01
複数の区切り文字を使った結合も可能です。
メールアドレス形式:
=A2&”.”&B2&”@example.com”
例:yamada.taro@example.com
カンマ区切り:
=A2&”,”&B2&”,”&C2
例:商品A,1000,在庫あり
| 姓 | 名 | スペース区切り | アンダーバー区切り |
|---|---|---|---|
| 山田 | 太郎 | =A2&” “&B2 | =A2&”_”&B2 |
| 佐藤 | 花子 | ||
| 鈴木 | 一郎 |
この方法により、用途に応じた柔軟な文字列結合が実現できるでしょう。
複数セルを連続して結合する方法
3つ以上のセルを結合する場合も、&演算子を繰り返し使用することで対応できます。
4つのセルを結合:
=A2&B2&C2&D2
区切り文字を挟んで結合:
=A2&”-“&B2&”-“&C2&”-“&D2
例:AAA-BBB-CCC-DDD(管理コード形式)
改行を挟んで結合:
=A2&CHAR(10)&B2&CHAR(10)&C2
※CHAR(10)は改行コードを表す
| 部門 | カテゴリ | 商品名 | 型番 | 完全な商品ID |
|---|---|---|---|---|
| A部門 | 家電 | 商品X | 001 | =A2&B2&C2&D2 |
| B部門 | 食品 | 商品Y | 002 | |
| C部門 | 雑貨 | 商品Z | 003 |
長い数式になる場合は、途中で改行を入れると見やすくなります。ただし、結合するセルが10個以上になる場合は、後述するCONCAT関数やTEXTJOIN関数の使用を検討した方が効率的でしょう。
&演算子を使う際は、数値との結合に注意が必要です。数値セルを&演算子で結合すると、書式設定が失われて表示形式が変わることがあります。
例えば、日付や金額の書式が設定されたセルを結合すると、シリアル値や小数点表示になってしまう場合があります。この場合は、TEXT関数を併用して書式を指定すると良いでしょう。
CONCAT関数による効率的な文字列結合
続いてはCONCAT関数を使った効率的な文字列結合方法を確認していきます。
CONCAT関数の基本構文と特徴
CONCAT関数は、複数のセル範囲を一度に指定して結合できる関数です。
比較的新しいバージョンのExcelで使用可能で、従来のCONCATENATE関数の後継として登場しました。
=CONCAT(値1, 値2, …)
範囲指定も可能:
=CONCAT(A2:D2)
※A2からD2までのすべてのセルを結合
例:
A2:部門A、B2:カテゴリB、C2:商品C、D2:型番D
結果:部門AカテゴリB商品C型番D
CONCAT関数の大きな特徴は、セル範囲を指定できる点です。&演算子では1つずつセル参照を記述する必要がありますが、CONCAT関数なら範囲指定だけで済むため、数式がシンプルになります。
| 項目1 | 項目2 | 項目3 | 項目4 | 結合結果 |
|---|---|---|---|---|
| 商品 | A | 型番 | 01 | =CONCAT(A2:D2) |
| 部品 | B | コード | 02 | |
| 材料 | C | 番号 | 03 |
ただし、CONCAT関数には区切り文字を自動挿入する機能がないため、すべてのセル内容がそのまま連結されます。区切り文字が必要な場合は、別の方法を検討する必要があるでしょう。
CONCAT関数と&演算子の使い分け
実務では、状況に応じてCONCAT関数と&演算子を使い分けることが重要です。
それぞれの特性を理解して、最適な方法を選択しましょう。
&演算子が適している場合:
・結合するセルが少ない(2〜3個程度)
・区切り文字を挿入したい
・旧バージョンのExcelとの互換性が必要
CONCAT関数が適している場合:
・結合するセルが多い(5個以上)
・連続した範囲のセルをまとめて結合
・数式をシンプルにしたい
| 結合方法 | 数式例 | メリット | デメリット |
|---|---|---|---|
| &演算子 | =A2&” “&B2 | 区切り文字を自由に挿入可能 | セルが多いと数式が長くなる |
| CONCAT関数 | =CONCAT(A2:F2) | 範囲指定で数式が簡潔 | 区切り文字の自動挿入不可 |
例えば、氏名の結合(姓と名の2つだけ)なら&演算子、複数列にわたる商品情報の結合ならCONCAT関数という使い分けが効果的でしょう。
CONCAT関数の実践的な活用例
CONCAT関数は、大量のセルを一度に結合する場面で真価を発揮します。
特にデータベースからエクスポートされた分割データを統合する際に便利です。
実務での活用例:
商品マスタの統合:
=CONCAT(A2:J2)
※10列にわたる商品情報を1つの文字列に
ログデータの結合:
=CONCAT(B2:Z2)
※タイムスタンプ、ユーザーID、アクションなど複数項目を結合
| 列1 | 列2 | 列3 | 列4 | 列5 | 結合結果 |
|---|---|---|---|---|---|
| データ1 | データ2 | データ3 | データ4 | データ5 | =CONCAT(A2:E2) |
| 情報A | 情報B | 情報C | 情報D | 情報E |
複数行にわたる結合も可能ですが、この場合は縦方向のすべてのセルが1つの文字列になるため、用途を十分に検討する必要があります。通常は行ごとに結合する方が実用的でしょう。
CONCAT関数を使う際の注意点として、空白セルが含まれていても問題なく動作しますが、エラー値(#N/Aなど)が範囲内にあると結果全体がエラーになります。
エラーが混在する可能性がある場合は、IFERROR関数と組み合わせて対策すると安全です。また、CONCAT関数は文字列以外のデータ型も自動的に文字列に変換して結合するため、数値や日付の書式には注意が必要です。
TEXTJOIN関数による高度な文字列結合
続いてはTEXTJOIN関数を使った高度な文字列結合方法を確認していきます。
TEXTJOIN関数の基本構文と特徴
TEXTJOIN関数は、区切り文字を自動挿入しながら複数のセルを結合できる最も強力な関数です。
Office 365やExcel 2019以降で使用可能で、文字列結合の作業効率を大幅に向上させます。
=TEXTJOIN(区切り文字, 空白セルを無視, 範囲1, [範囲2], …)
引数の説明:
・区切り文字:結合する文字列の間に挿入する文字
・空白セルを無視:TRUE(無視する)またはFALSE(無視しない)
・範囲:結合したいセル範囲
例:
=TEXTJOIN(“,”, TRUE, A2:D2)
結果:商品A,カテゴリB,型番C,コードD(空白セルは除外)
| 項目1 | 項目2 | 項目3 | 項目4 | カンマ区切り結合 |
|---|---|---|---|---|
| りんご | みかん | バナナ | ぶどう | =TEXTJOIN(“,”, TRUE, A2:D2) |
| 商品A | 商品C | 商品D | ||
| データ1 | データ2 | データ4 |
TEXTJOIN関数の最大の利点は、空白セルを自動的にスキップできる点です。2行目の例では、B2セルが空白ですが、TRUEを指定することで「商品A,商品C,商品D」と不要なカンマが入りません。
様々な区切り文字を使った結合パターン
TEXTJOIN関数では、任意の区切り文字を指定できるため、用途に応じた柔軟な文字列結合が可能です。
カンマ区切り(CSV形式):
=TEXTJOIN(“,”, TRUE, A2:E2)
スペース区切り:
=TEXTJOIN(” “, TRUE, A2:C2)
例:山田 太郎 様
スラッシュ区切り(パス形式):
=TEXTJOIN(“/”, TRUE, A2:D2)
例:カテゴリA/サブカテゴリB/商品C/型番D
改行区切り(複数行表示):
=TEXTJOIN(CHAR(10), TRUE, A2:A10)
※セル内で複数行として表示
| データ1 | データ2 | データ3 | カンマ区切り | スペース区切り | ハイフン区切り |
|---|---|---|---|---|---|
| A | B | C | =TEXTJOIN(“,”,TRUE,A2:C2) | =TEXTJOIN(” “,TRUE,A2:C2) | =TEXTJOIN(“-“,TRUE,A2:C2) |
| 東京 | 大阪 | 名古屋 |
複数文字の区切り文字も使用できます。例えば「 / 」(スペース+スラッシュ+スペース)や「、」(全角読点)なども指定可能です。
TEXTJOIN関数の実務活用テクニック
TEXTJOIN関数は、条件に応じた動的な文字列結合にも活用できます。
IF関数やFILTER関数と組み合わせることで、さらに高度な処理が可能になります。
条件に合うデータのみ結合:
=TEXTJOIN(“,”, TRUE, IF(B2:B10>100, A2:A10, “”))
※B列の値が100を超える行のA列のみを結合
空白以外のセルのみ結合:
=TEXTJOIN(” | “, TRUE, A2:Z2)
※26列のデータから空白以外を自動選択して結合
| 商品名 | 在庫数 | カテゴリ | 備考 | 全項目結合 |
|---|---|---|---|---|
| 商品A | 50 | 家電 | =TEXTJOIN(” / “, TRUE, A2:D2) | |
| 商品B | 120 | 食品 | 人気商品 | |
| 商品C | 雑貨 |
複数の非連続範囲を同時に結合することもできます。例えば「=TEXTJOIN(“,”, TRUE, A2:B2, D2:E2)」とすれば、A2:B2とD2:E2の両方の範囲が結合されます。
TEXTJOIN関数を使う際の重要なポイントは、第2引数の「空白セルを無視」設定です。TRUEにすると空白セルをスキップして結合するため、余分な区切り文字が入りません。
ただし、数値のゼロは空白として扱われないため注意が必要です。また、TEXTJOIN関数は比較的新しい関数のため、古いバージョンのExcelでは使用できません。互換性が必要な場合は&演算子やCONCAT関数を使用しましょう。
文字列結合の応用テクニックと注意点
続いては文字列結合の応用的な活用方法と注意すべきポイントを確認していきます。
TEXT関数と組み合わせた書式付き結合
数値や日付を結合する際、TEXT関数を併用することで書式を維持したまま結合できます。
&演算子で単純に結合すると、日付がシリアル値に、金額が小数点表示になってしまう問題を解決できます。
日付の書式を維持:
=A2&” “&TEXT(B2,”yyyy年mm月dd日”)
例:「注文日 令和6年11月17日」
金額の書式を維持:
=A2&” “&TEXT(B2,”#,##0円”)
例:「合計金額 10,000円」
パーセント表示を維持:
=A2&” “&TEXT(B2,”0%”)
例:「達成率 85%」
| 項目名 | 数値データ | 書式なし結合 | TEXT関数使用 |
|---|---|---|---|
| 売上金額 | 1000000 | =A2&B2 | =A2&TEXT(B2,”#,##0円”) |
| 達成率 | 0.85 | =A3&TEXT(B3,”0%”) |
TEXT関数の書式指定を工夫することで、様々な表示形式に対応できます。カスタム書式を理解しておくと、より柔軟な文字列結合が可能になるでしょう。
条件分岐を含む動的な文字列結合
IF関数と組み合わせることで、条件によって結合内容を変えることもできます。
在庫状況に応じた表示:
=A2&” “&IF(B2>0,”在庫あり (“&B2&”個)”,”在庫なし”)
例:
B2が50の場合:「商品A 在庫あり (50個)」
B2が0の場合:「商品A 在庫なし」
敬称の自動付与:
=IF(B2=”様”,A2&B2,A2&” “&B2)
| 商品名 | 在庫数 | 表示結果 |
|---|---|---|
| 商品A | 50 | =A2&” “&IF(B2>0,”在庫あり (“&B2&”個)”,”在庫なし”) |
| 商品B | 0 | |
| 商品C | 120 |
このテクニックにより、データの状態に応じた柔軟な表示が実現でき、レポート作成の効率が大幅に向上します。
大量データ結合時のパフォーマンス対策
数万行のデータで文字列結合を行う場合、関数の選択によって処理速度が大きく変わることがあります。
処理速度の傾向:
&演算子:やや遅い(セル参照が多い場合)
CONCAT関数:中程度
TEXTJOIN関数:やや遅い(高機能な分処理が重い)
パフォーマンス向上のポイント:
・不要な揮発性関数(TODAYなど)を避ける
・計算結果を値として貼り付ける
・必要な範囲のみに数式を適用
大量データを扱う場合は、数式で結合した後に「値として貼り付け」を実行し、数式を削除することで、ファイルサイズの増大と計算遅延を防げるでしょう。
文字列結合を行う際の共通の注意点として、結合後の文字列が32,767文字を超えるとエラーになります。これはExcelのセルに格納できる文字数の上限です。
また、結合した文字列を再度分割する必要が生じる可能性がある場合は、元のデータを別シートに保持しておくことをおすすめします。一度結合してしまうと、元のデータ構造に戻すのは困難です。
まとめ エクセルで文字列結合する方法(&・CONCAT・TEXTJOIN)
エクセルで文字列を結合する方法をまとめると
・&演算子:シンプルな結合に最適で区切り文字を自由に挿入可能、互換性が高い
・CONCAT関数:範囲指定で複数セルを一度に結合でき、数式が簡潔になる
・TEXTJOIN関数:区切り文字の自動挿入と空白セルの除外が可能で最も高機能
・TEXT関数併用:日付や金額などの書式を維持したまま結合できる
これらの方法を状況に応じて活用していけば、効率的かつ正確な文字列結合が実現できます。
特に基本的な&演算子の使い方をマスターすることが第一歩ですので、まずこれを試すことをおすすめします。
ただし、文字列結合は目的によって最適な手法が異なります。
単純な2つのセルの結合なのか、大量のセルを区切り文字付きで結合するのか、条件付きの動的な結合なのかを明確にして、用途に合った関数を選択することが重要でしょう。
Excelの文字列結合機能を正しく活用して、業務効率化を進めていきましょう!