1. 「&」でまとめる
Excel で複数の文字列を統合! CONCAT 関数や & の使い方を解説
2022 年 5 月 20 日
Microsoft Excel で文字列を統合すると、帳票や一覧表でのデータ管理、他システムへの連携の際や、複数の項目の内容をつなげて検索キーにしたい場合などに便利です。
本稿ではそのような場合に利用する Excel の文字列の結合の方法について、文字を足す関数を使った方法も含めて解説します。
文字を結合する場合一番シンプルな方法は、数式に「&」 (アンパサンド) を利用することです。数式バー内に文字列を含めた式を作成することもできますし、セルとセルを & でまとめることもできます。
以下の例では、A 列と B 列のセルを C 列で文字列と共に & で結合しています。
この場合、セル名と「””」 (ダブル クォーテーション) で囲んだ文字列の間に & を入力し、1 つの文字列としてセルに表示しています。
このように、& を使うことで直感的に文字を結合することができます。
2. 関数を利用する 3 つの方法
& は「+」や「-」といった演算子と同じように利用できますが、これを関数で表すことも可能です。
ここでは、CONCAT 関数、CONCATENATE 関数、TEXTJOIN 関数の 3 種類の関数を紹介します。
2-1. 「,」を使う CONCAT 関数
まず覚えておきたいのは CONCAT 関数です。CONCAT 関数は & と同じ動作をする関数で、結合するテキスト項目を引数に取り、引数に設定したセルや文字列を結合します。関数の挿入ボタンを使うことで、& と異なりグラフィカルに引数の内容を見ることができます。
そのため、関数を入れ子にして利用する場合などに、& と比べて数式を誤りにくくなります。
数式が長くなる場合は、この関数を利用することで誤入力を減らすことが可能です。
実際に、& と同じ例を用いて文字列を結合してみましょう。
【関数の挿入ボタンを使った CONCAT 関数の利用】
1. 関数を入力するセルを選択し、関数ボタンをクリックする
2. 関数の検索欄に「CONCAT」と入力し、「検索開始」ボタンをクリック、関数名に「CONCAT」が表示されたら選択し、「OK」ボタンをクリックする
3. セルを選択する場合はテキスト欄の「↑」ボタンでセルを選択、テキストを入力する場合は直接テキスト欄に入力し、プレビューを確認し、「OK」ボタンをクリックする
※テキストはダブル クォーテーションなしで入力しても、ポイントを外すと自動的にダブル クォーテーションが追加される
4. セルをコピーして、下のセルに貼り付ける
以上のように、CONCAT 関数を使って文字列の結合ができました。
なお、結果の文字列が、セルが含むことができる合計文字数の上限である 32,767 文字を超えると、「#VALUE!エラー」となるので注意が必要です。
例では、CONCAT 関数を用いて B1 と B2 のセルの文字列を結合しようとしました。
この場合、C 列で文字数を表示していますが、B1、B2 の合計文字数が 32,767 文字の上限を超えているため、「#VALUE!エラー」となります。
2-2. CONCAT 関数とほぼ同じ CONCATENATE 関数
Microsoft Office 2016 など、2019 より前のバージョンの Office 製品を利用している場合、CONCAT 関数を利用することができません。これらのバージョンを利用している場合は CONCATENATE 関数を利用します。
CONCATENATE 関数は、CONCAT 関数同様に関数の挿入ボタンを使うと引数の内容を見ながら式を入力することができます。
ただ、CONCAT 関数の引数は 254 項目まで、CONCATENATE 関数の引数は 255 項目まで指定が可能という違いがあります。
例では、CONCAT 関数と CONCATENATE 関数を B 列にそれぞれ入力し、1 番目、254 番目、255 番目にそれぞれ引数として「テキスト 1」のように値を入力しています。
この場合、CONCAT 関数の式に 255 番目の引数を入力するとエラーとなるので入力できません。関数の挿入ボタンで見てみると、CONCAT 関数の式はテキスト 254 までが表示され、説明でも 254 までと表記されています。
一方、CONCATENATE 関数は文字列 255 までが表示され、説明でも 255 個までと表記されています。
2-3. 区切り文字を指定できる TEXTJOIN 関数
TEXTJOIN 関数は最初に指定した文字で間を区切れる関数です。
CONCAT 関数および CONCATENATE 関数は単純に文字列を結合するだけですが、TEXTJOIN 関数を利用すると文字の間にスペースなどの指定した文字を入れることができます。
& や CONCAT 関数で同じことを行う場合、間に入れたい文字を結合する文字列分すべて入力するため記述が複雑になってしまいますが、TEXTJOIN を利用することで数式を簡素化することができるのです。
「区切り記号、空白のセルは無視 (TRUE/FALSE)、文字列 1,文字列 2,…」のように引数を指定します。
2 つ目の引数「空白のセルは無視するか」は、指定したセルが空白だった場合でも区切り記号を入れるかどうかを指定します。空白なら記号を入れない場合に「TRUE」、空白でも記号を入れる場合は「FALSE」を入力します。
なお、TEXTJOIN 関数で指定できるテキスト項目またはセルの範囲などのテキスト部分の引数は 252 項目までです。
以下の例では、F2 のセルに「=TEXTJOIN(" ",TRUE,A2:E2)」の式を入力しています。
この場合、郵便番号、都道府県、市区町村、住所 1、住所 2 の項目に半角スペースを入れてTEXTJOIN 関数を使って結合し表示しています。空白のセルは無視が TRUE になっているため、住所 1 が空であっても 2 つスペースは入りません。
次の例では記号を「,」 (カンマ)、空白のセルは無視を FALSE に指定します。
この場合、住所 1 が空白でもカンマが挿入されていることが分かります。
まとめたい文字列が複数あり、接続位置に文字や記号を入れたい場合は TEXTJOIN 関数を利用するのがよいでしょう。
3. 文字列の結合の応用
次に、文字列結合の応用例を手順と共に紹介します。
3-1. 固定の文字列を追加する
文字列の末尾に「様」や単位などの固定の文字列を追加するときは、数式の末尾に文字列を入れます。末尾に追加する文字がすべて同じであれば、参照するセルを固定する絶対参照を利用するとよいでしょう。
以下の例では、絶対参照を利用して末尾に県を付けます。
【絶対参照を用いて固定の文字列を追加する】
1. 結果を表示するセルを選択し、文字列を結合するセルを & で結ぶ式を入力する (例では「茨城」と「県」を結合するため「=A2&A1」と入力する)
2. 式の中の絶対参照にするセル名を選択し、F4 キーを押下するか、セル名の列と行の前に「$」 (ドル記号) を入力する
3. 下のセルにコピー アンド ペーストする
県のセルへの参照を固定したまま、県名に県を追加できました。また、末尾でなくともこの方法で固定の文字列を追加することが可能です。
3-2. 結合した文字列を数値に変換
結合した後の文字は、文字列として扱われます。数値として扱いたい場合は VALUE 関数を使うとよいでしょう。VALUE 関数は、文字列を数値に変換する関数で文字列を引数に取ります。
また、特定の書式に変換する際は TEXT 関数を使います。TEXT 関数は表示形式コードを使用して数値に書式設定を適用することで、数値の表示方法を変更する関数で、「書式設定する値, 適用する表示形式コード」を引数とし多くの表示形式に対応します。
以下の例では、B5 から B7 でそれぞれ「123」と「45」の文字列を結合しています。
この場合、VALUE 関数を使ったセルは数値として扱われ、TEXT 関数を使った式は指定した書式で表示されています。
ただし、数値を計算するためだけであれば、わざわざ変換しなくても Excel が自動的に判断してくれるため、計算が可能です。以下の例では、B5 から B7 に「+1」の式を入力しています。
この場合、数値として扱われるためすべての式で「12346」が表示されています。
3-3. TODAY 関数と文字列を結合
3-2 の応用で、結合の式に本日の日付を表示する TODAY 関数が入っている場合の対処法を紹介します。
Excel の日付は「1900/1/1」の「1」から始まる整数の通し番号となるシリアル値で管理されていて、TODAY 関数でもシリアル値を返しています。結合の式に TODAY 関数が入っていると、シリアル値として結合され、「今日は 44599 です」のように表示されます。そこで、これを回避する場合も TEXT 関数が有効です。
以下の例では、上の 3 つのセルを結合して「今日は 2022/2/7 です」と表示させるのに、単に結合した場合と TEXT 関数を利用した場合を比較しています。
この場合、B7 のセルでは TEXT 関数を使って「44599」を「yyyy/m/d」に書式設定し「=B1&TEXT(B2,"yyyy/m/d")&B3」と入力したことで、シリアル値から日付となり「今日は 2022/2/7 です」と表示されます。
3-4. 検索に利用
文字列の結合は表の中のデータを検索する場合にも有効です。検索したい値が複数のセルにまたがっている場合、それらを結合し XLOOKUP 関数などで検索すると、元のデータに列を追加するだけでオリジナル データを変更せずに検索を行えます。
以下の例では、部課名の列を作成し、課長名を検索します。XLOOKUP 関数は表を検索し一致する値に対応するデータを返す関数で、引数は「検索値,検索範囲,戻り範囲,見つからない場合,一致モード,検索モード」ですが、引数の後半 3 つは省略可能です。
【文字列結合の検索への利用】
1. 上の表の右に検索用列を作成し、部門名と課名を結合し、表の下までコピーする
(例では、D2 のセルに「=A2&B2」と入力し、D7 までコピー)
2. XLOOKUP 関数を用いて部課名を検索し、課長名を取得する
(例では、「=XLOOKUP(A10,D2:D7,C2:C7)」と入力し、A10 のセルの値を D2 から D7 の範囲で検索、戻り範囲を C2 から C7 に指定)
3. 該当する課長名が返る
4. 検索範囲と戻り範囲でそれぞれ F4 キーを押下し絶対参照にしてから、同じく値を求めるセルにコピーする
(例では、式を「=XLOOKUP(A10,$D$2:$D$7,$C$2:$C$7)」に修正し、下の B11 のセルにコピー)
XLOOKUP 関数を使った式で、課長名「課長C」、「課長D」をそれぞれ取得できました。
4. まとめ
文字列をまとめる場合は「&」または CONCAT 関数を利用します。Excel で CONCAT 関数が利用できないバージョンの場合は CONCATENATE 関数を利用します。使い方は CONCAT 関数とほぼ同じです。
また、まとめる文字列の間を特定の記号などで区切りたい場合は、TEXTJOIN を使うと便利です。
結合した文字列はセルの種類を標準とした場合の値となるため表示に注意し、数値としたい場合は VALUE 関数、文字列として特定の書式を適用したい場合は TEXT 関数を利用しましょう。
【参考】関連する関数
- CONCAT セルや文字列を結合する。Office 2019 以降から利用可能。
- CONCATENATE セルや文字列を結合する。
- TEXTJOIN セルや文字列を指定した結合文字を間に挟んで結合する。
- VALUE 数値を表す文字列を数値に変換する
- TEXT 数値を文字列として扱えるようにする。
- TODAY 表示したタイミングの日付を返す。
リモートワーク・ハイブリッドワークに適した環境設置のために
リモートワーク・テレワーク・在宅勤務環境を安全・快適に実現するためには、「セキュリティの確保」「Web 会議のためのデバイス選択」「グループワークのためのアプリケーション」など検討する課題も多く、またこれらを潤沢な資金で準備するのではなくコスト削減につなげることが大切です。
これらの達成のための Microsoft 365、Excel の使い方や、リモートワーク・ハイブリッドワーク環境を充実させるために以下の記事が参考になります。
- Microsoft 365・Excel: Microsoft 365 から、Excel の使い方など生産性を向上させるコラム
- Teams・Web 会議: Microsoft Teams を始め、Web 会議をワンランクアップさせるコラム
- リモートワーク・テレワーク: リモートワークやテレワークなど、新しい働き方のお役立ちコラム
他にも Excel 作業を高速化するテクニックを厳選! 無料ガイドブック
Excel ショートカット 30 選
Microsoft 公式の超時短仕事術 Excel ショートカット 30 選です。
もっと PC スキルを学びたい、より効率的に業務を行いたいという方におすすめです。
ご購入検討の問い合わせ先
Web フォームで購入相談
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。