Excelで複数のセルの文字列を一つにまとめたい場面は多いです。例えば、顧客リストの氏名や住所を結合して、一覧表を作成する際などに必要となります。しかし、単純に結合するだけでは、区切り文字の挿入や、空のセルを無視するといった柔軟な対応が難しい場合があります。この記事では、Excelで文字列を結合する主要な関数であるCONCAT関数とTEXTJOIN関数について、それぞれの特徴と使い分け、具体的な使い方を解説します。
CONCAT関数とTEXTJOIN関数を使いこなせば、煩雑な手作業を減らし、効率的にデータを整理できます。それぞれの関数の違いを理解し、状況に応じて最適な方を選択できるようになりましょう。
【要点】Excelで複数セルの文字列を1セルに結合する方法
- CONCAT関数: 指定した範囲の文字列を単純に連結します。区切り文字や空セルの無視はできません。
- TEXTJOIN関数: 区切り文字を指定でき、空のセルを無視するかどうかも設定できます。より柔軟な文字列結合が可能です。
- 使い分け: 単純な連結ならCONCAT、区切り文字が必要ならTEXTJOINを選択します。
ADVERTISEMENT
目次
CONCAT関数とTEXTJOIN関数の概要と違い
Excelで複数のセルの文字列を結合するには、主にCONCAT関数とTEXTJOIN関数が利用できます。これらの関数は似ていますが、機能に大きな違いがあります。どちらの関数も、指定したセルの文字列を一つのセルにまとめることができます。しかし、その過程で区切り文字を挿入したり、空のセルをどのように扱うかについて、柔軟な設定ができるかどうかが異なります。
CONCAT関数は、指定したセル範囲の文字列を、そのまま順番に連結するシンプルな関数です。区切り文字を自動で挿入したり、結合対象から空のセルを除外したりする機能はありません。そのため、区切り文字が必要な場合や、データに空のセルが混在している場合には、別途工夫が必要になります。
CONCAT関数による文字列の結合
CONCAT関数は、引数として指定された文字列やセル範囲を、順番に連結する関数です。Excel 2019以降およびMicrosoft 365で利用できます。それ以前のバージョンでは、CONCATENATE関数が同様の機能を持っていました。
CONCAT関数の基本的な構文は以下の通りです。
CONCAT(文字列1, [文字列2], …)
この関数は、引数に指定された文字列やセル参照を、そのまま順番に結合します。例えば、セルA1に「Excel」と入力され、セルB1に「便利」と入力されている場合、=CONCAT(A1,B1)と入力すると、「Excel便利」という結果が得られます。
区切り文字を挿入したい場合は、文字列として明示的に指定する必要があります。例えば、セルA1に「太郎」、セルB1に「山田」が入っている場合、=CONCAT(A1, ” “, B1)と入力すると、「太郎 山田」とスペース区切りで結合できます。ただし、この方法では、結合したいセルの数だけ区切り文字を指定する必要があり、手間がかかります。
CONCAT関数を使った具体的な操作手順
ここでは、CONCAT関数を使って複数セルの文字列を結合する手順を解説します。例として、A列に氏名(姓)、B列に氏名(名)が入力されているデータを、C列に「姓 名」の形式で結合します。
- 結合したいセルを選択する
結果を表示したいセル(例:C2セル)を選択します。 - CONCAT関数を入力する
選択したセルに、以下の数式を入力します。
=CONCAT(A2, ” “, B2) - Enterキーで確定する
数式を入力したら、Enterキーを押して確定します。セルC2に「姓 名」の形式で結合された文字列が表示されます。 - フィルハンドルでコピーする
C2セルの右下にあるフィルハンドル(■)をダブルクリックするか、下にドラッグして、他の行にも数式をコピーします。
このように、CONCAT関数はシンプルですが、区切り文字の指定は手動で行う必要があります。データ量が多い場合や、複雑な区切り文字が必要な場合には、TEXTJOIN関数の方が適しています。
TEXTJOIN関数による柔軟な文字列結合
TEXTJOIN関数は、CONCAT関数よりも高機能な文字列結合関数です。Excel 2019以降およびMicrosoft 365で利用できます。この関数は、区切り文字を指定できるだけでなく、結合対象のセルに空のセルが含まれている場合に、それらを無視するかどうかを設定できます。
TEXTJOIN関数の基本的な構文は以下の通りです。
TEXTJOIN(区切り文字, 空セルを無視, 文字列1, [文字列2], …)
- 区切り文字: 結合する文字列の間に挿入する文字を指定します。空文字列(“”)を指定すると、区切り文字なしで結合されます。
- 空セルを無視: TRUEまたはFALSEを指定します。TRUEを指定すると、空のセルは結合対象から除外されます。FALSEを指定すると、空のセルもそのまま結合されます。
- 文字列1, [文字列2], …: 結合したい文字列やセル範囲を指定します。
例えば、セルA1に「東京」、セルB1に空、セルC1に「都」が入っている場合、=TEXTJOIN(“”, TRUE, A1:C1)と入力すると、「東京都」と結果が得られます。空のセルB1が無視されていることがわかります。
一方、=TEXTJOIN(“”, FALSE, A1:C1)と入力すると、「東京都」と、空のセルB1が結合結果に含まれるため、意図しない結果になることがあります。
TEXTJOIN関数を使った具体的な操作手順
ここでは、TEXTJOIN関数を使って、区切り文字を指定し、空のセルを無視して文字列を結合する手順を解説します。例として、A列に部署名、B列に役職、C列に氏名が入力されているデータを、D列に「部署名/役職/氏名」の形式で結合します。
- 結合したいセルを選択する
結果を表示したいセル(例:D2セル)を選択します。 - TEXTJOIN関数を入力する
選択したセルに、以下の数式を入力します。
=TEXTJOIN(“/”, TRUE, A2:C2) - Enterキーで確定する
数式を入力したら、Enterキーを押して確定します。セルD2に「部署名/役職/氏名」の形式で結合された文字列が表示されます。 - フィルハンドルでコピーする
D2セルの右下にあるフィルハンドル(■)をダブルクリックするか、下にドラッグして、他の行にも数式をコピーします。
この例では、区切り文字に「/」を指定し、空のセルを無視する(TRUE)設定にしています。もし、B列の役職が空の場合でも、D列には「部署名//氏名」のように二重スラッシュが入ることはありません。空のセルを無視しない(FALSE)設定にすると、空のセルにも区切り文字が挿入されるため、意図しない表示になる可能性があります。
ADVERTISEMENT
CONCAT関数とTEXTJOIN関数の使い分け
CONCAT関数とTEXTJOIN関数は、どちらも文字列を結合する機能を持っていますが、その用途には明確な違いがあります。どちらの関数を使うべきかは、結合したいデータの状況や、求める結果によって判断します。
CONCAT関数が適しているケース:
- 単純に文字列を連結したいだけで、区切り文字が不要な場合。
- 区切り文字が必要な場合でも、手動で指定することに抵抗がない場合。
- Excel 2019より前のバージョン(Excel 2016以前)を使用しており、CONCATENATE関数で代替できる場合。
TEXTJOIN関数が適しているケース:
- 文字列の間に特定の区切り文字(スペース、カンマ、スラッシュなど)を挿入したい場合。
- 結合対象のデータに空のセルが含まれており、それらを無視して結合したい場合。
- 複数のセル範囲をまとめて指定して結合したい場合。
一般的に、より柔軟で高度な文字列結合を行いたい場合はTEXTJOIN関数が推奨されます。CONCAT関数は、そのシンプルさゆえに、特定の限定的な状況で役立つことがあります。
CONCATENATE関数との関係
Excel 2019より前のバージョンでは、CONCAT関数に相当する機能はCONCATENATE関数が担っていました。CONCATENATE関数も、引数として指定された文字列やセル範囲を順番に連結する関数です。
構文は以下の通りです。
CONCATENATE(文字列1, [文字列2], …)
CONCATENATE関数もCONCAT関数と同様に、区切り文字の自動挿入や空セルの無視機能はありません。そのため、Excel 2019以降では、より高機能なCONCAT関数が導入され、CONCATENATE関数は互換性のために残されています。
もし、古いバージョンのExcelで文字列結合を行う必要がある場合は、CONCATENATE関数を使用することになります。基本的な使い方や考え方はCONCAT関数とほぼ同じです。
よくある質問とトラブルシューティング
CONCAT関数やTEXTJOIN関数を使用する際に、よく発生する問題や疑問点について解説します。
Q1: CONCAT関数で区切り文字を入れると、数式が長くなってしまう
原因: CONCAT関数は、区切り文字を文字列として明示的に指定する必要があるため、結合するセルの数が増えると、数式が冗長になります。
解決策: このような場合は、TEXTJOIN関数を使用することを強く推奨します。TEXTJOIN関数であれば、区切り文字を一度指定するだけで、すべてのセルに適用されます。
Q2: TEXTJOIN関数で空のセルを無視するように設定したのに、空のセルが結合されてしまう
原因: TEXTJOIN関数の第2引数「空セルを無視」にFALSEが指定されている可能性があります。あるいは、結合対象のセルが実際には空ではなく、スペースなどの見えない文字が含まれている場合も考えられます。
解決策: まず、数式の第2引数がTRUEになっているか確認してください。もしTRUEになっているにも関わらず問題が解消しない場合は、結合対象のセルに不要なスペースなどが含まれていないか、「TRIM関数」などを使って確認・削除してから再度試してください。
Q3: 結合結果の数値が文字列として扱われてしまう
原因: CONCAT関数やTEXTJOIN関数は、基本的に文字列として結合します。そのため、数値データが含まれていても、結果は文字列型になります。この結果を数値として計算に使用したい場合に問題となります。
解決策: 結合結果を数値として扱いたい場合は、数式で結合した後に、必要に応じて「VALUE関数」や「*1」などを適用して数値に変換してください。ただし、結合された文字列が数値として有効な形式である必要があります。
Q4: Excel 2016以前のバージョンでCONCAT関数が使えない
原因: CONCAT関数はExcel 2019以降で導入された関数です。
解決策: Excel 2016以前のバージョンでは、代わりにCONCATENATE関数を使用してください。使い方はCONCAT関数とほぼ同じです。
まとめ
この記事では、Excelで複数セルの文字列を1セルに結合するためのCONCAT関数とTEXTJOIN関数について解説しました。CONCAT関数は単純な文字列連結に、TEXTJOIN関数は区切り文字の指定や空セルの無視といった柔軟な設定が可能です。
どちらの関数もExcel 2019以降で利用可能であり、古いバージョンではCONCATENATE関数が利用できます。データの状況や求める結果に応じて、これらの関数を適切に使い分けることで、効率的なデータ編集が可能になります。
ぜひ、TEXTJOIN関数を活用して、より高度な文字列結合を試してみてください。例えば、住所の各要素(都道府県、市区町村、番地)を結合する際に、TEXTJOIN関数を使えば、簡単に整形された住所を作成できます。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
