【Excel】エクセルで文字を追加(先頭や途中や末尾に一括:ユーザー定義:書式設定:関数:置換など)
Excelでデータを扱っていると、既存の文字列に新しい文字を追加したい場面が頻繁に発生します。
商品名の先頭に分類記号を追加したい、顧客名の末尾に「様」を付けたい、電話番号の途中にハイフンを挿入したい、価格の後ろに「円」という単位を表示したいなど、文字の追加作業を手作業で行っていては時間がかかりすぎ、ミスも発生しやすくなります。
数百、数千件のセルに対して一つずつ編集していくのは現実的ではなく、効率的な方法を知っておくことが重要です。
文字を追加する方法は目的や状況に応じて複数存在します。
関数を使った追加、ユーザー定義の書式設定による表示上の追加、置換機能を使った一括追加、フラッシュフィルによる自動追加など、それぞれにメリットとデメリットがあります。
本記事では、Excelで文字を追加する様々な方法を詳しく解説し、先頭・途中・末尾への追加や、元のデータを保持したまま表示だけ変える方法など、実践的なテクニックを紹介します。
効率的なデータ編集を実現したい方は、ぜひ最後までお読みください。
ポイントは
・関数(&演算子やCONCATENATE関数)で文字を結合できる
・ユーザー定義の書式設定なら元データを変えずに表示を変更できる
・置換機能やフラッシュフィルで一括追加が可能
です。
それでは詳しく見ていきましょう。
関数で文字を追加する基本テクニック
それではまず、関数を使って文字を追加する基本的な方法を確認していきます。
&演算子で文字を結合する方法
&演算子は、最もシンプルで直感的に文字を結合できる方法です。
構文は「=セル&”追加する文字”」または「=”追加する文字”&セル」という形式で、セルの内容と指定した文字列を結合します。
例えば、A1セルに「田中商店」という顧客名が入っている場合、B1セルに「=A1&”様”」と入力すると、「田中商店様」という結果が返されます。
これは元のA1セルの内容はそのままで、B1セルに新しい結果を作成する方法です。
先頭に文字を追加したい場合は「=”【重要】”&A1」とすれば、A1に「契約書送付のご案内」が入っていれば「【重要】契約書送付のご案内」という結果になります。
&演算子の動作イメージ
元のデータ
A1セル
追加文字
追加する文字
結果
B1セル
途中に文字を挿入する場合は、LEFT関数やMID関数と組み合わせます。
例えば、A1セルに「0363845721」という電話番号が入っている場合、「=LEFT(A1,3)&”-“&MID(A1,4,4)&”-“&RIGHT(A1,4)」とすれば「03-6384-5721」という形式に変換できます。
これは左から3文字、次の4文字、最後の4文字を取り出して、それぞれの間にハイフンを挿入しています。
| A列(元データ) | B列(数式) | 結果 |
|---|---|---|
| 田中商店 | =A1&”様” | 田中商店様 |
| 見積書 | =”【確認依頼】”&A2 | 【確認依頼】見積書 |
| 128500 | =A3&”円(税込)” | 128500円(税込) |
| 渋谷区神南 | =”東京都”&A4 | 東京都渋谷区神南 |
複数のセルの内容を結合することもできます。
A1セルに「営業部」、B1セルに「第二課」、C1セルに「鈴木一郎」が入っている場合、D1セルに「=A1&”/”&B1&”/”&C1」と入力すれば「営業部/第二課/鈴木一郎」となり、各要素の間にスラッシュが入ります。
さらに「=A1&B1&” “&C1&”様”」とすれば「営業部第二課 鈴木一郎様」という結果になります。
数式を他のセルにコピーする場合は、B1セルに数式を入力した後、B1セルの右下の小さな四角(フィルハンドル)をダブルクリックするか、下方向にドラッグすることで、連続したセル範囲に一括でコピーできます。
この時、A1は自動的にA2、A3と変わっていくため、各行のデータに対して同じ処理が適用されます。
CONCATENATE関数とCONCAT関数の使い方
CONCATENATE関数は、複数の文字列を結合する専用の関数です。
構文は「=CONCATENATE(文字列1,文字列2,…)」という形式で、最大255個までの引数を指定できます。
例えば、A1セルに「東京都」、B1セルに「渋谷区」、C1セルに「神南一丁目」が入っている場合、D1セルに「=CONCATENATE(A1,B1,C1)」と入力すると「東京都渋谷区神南一丁目」という結果が返されます。
区切り文字を入れる場合は「=CONCATENATE(A1,” “,B1,” “,C1)」とすれば「東京都 渋谷区 神南一丁目」となります。
CONCATENATE関数の動作イメージ
A1
B1
C1
結果
Excel 2016以降では、CONCAT関数が導入されました。
構文は「=CONCAT(文字列1,文字列2,…)」で、CONCATENATEと同様に使えますが、より新しい関数として推奨されています。
さらにExcel 365やExcel 2019以降では、TEXTJOIN関数が使えます。
TEXTJOIN関数で区切り文字を指定して結合
TEXTJOIN関数は、複数の文字列を指定した区切り文字で結合できる強力な関数です。
構文は「=TEXTJOIN(区切り文字,空白セルを無視,範囲1,[範囲2],…)」という形式で、区切り文字を一度指定すれば、すべての要素の間に自動的に挿入されます。
例えば、A1セルに「営業部」、B1セルに「課長」、C1セルに「佐藤健一」が入っている場合、D1セルに「=TEXTJOIN(“_”,TRUE,A1:C1)」と入力すると「営業部_課長_佐藤健一」という結果が返されます。
第2引数のTRUEは空白セルを無視する設定で、途中に空白セルがあっても問題なく結合できます。
| 範囲 | 数式 | 結果 |
|---|---|---|
| A1:C1に「営業部」「課長」「佐藤健一」 | =TEXTJOIN(“_”,TRUE,A1:C1) | 営業部_課長_佐藤健一 |
| A2:D2に「令和」「6」「11」「17」 | =TEXTJOIN(“年”,TRUE,A2:D2)&”日” | 令和年6年11年17日 |
| A3:C3に「商品A」(空白)「在庫有」 | =TEXTJOIN(“-“,TRUE,A3:C3) | 商品A-在庫有 |
| A4:B4に「重要」「至急確認」 | =TEXTJOIN(“】【”,TRUE,A4:B4) | 重要】【至急確認 |
TEXTJOIN関数の大きなメリットは、範囲指定ができることです。
「=TEXTJOIN(“,”,TRUE,A1,B1,C1,D1,E1)」のように個別に指定する代わりに、「=TEXTJOIN(“,”,TRUE,A1:E1)」と範囲で指定できるため、数式がシンプルになります。
複数行のデータを一度に結合したい場合にも便利で、例えば「=TEXTJOIN(CHAR(10),TRUE,A1:A10)」とすれば、A1からA10までのセルを改行で結合できます。
CHAR(10)は改行コードを表し、セル内改行で複数行のデータを1つのセルにまとめることができます。
ただしセル内改行を表示するには、セルの書式設定で「文字の制御」の「折り返して全体を表示する」にチェックを入れる必要があります。
関数を使った文字追加の最大のメリットは、元のデータを変更せずに新しいデータを作成できることです。
元データが更新されれば、結果も自動的に更新されるため、動的なデータ管理に適しています。
ただし、数式が残るため、最終的に値として確定させたい場合は、結果のセルをコピーして「値として貼り付け」を実行する必要があります。
また、大量のデータに対して複雑な数式を使用すると、ファイルサイズが大きくなり、動作が重くなる可能性があるため、処理が完了したら値に変換することをおすすめします。
ユーザー定義の書式設定で表示上の文字を追加
続いては元のデータを変更せず、表示だけを変える方法を確認していきます。
セルの書式設定でユーザー定義を作成
ユーザー定義の書式設定を使うと、セルの実際の値を変更せずに、表示だけを変えることができます。
対象のセルを選択して右クリックし「セルの書式設定」を選択、「表示形式」タブの「ユーザー定義」を選択します。
種類の欄に「@”追加する文字”」と入力すれば、セルの内容の後ろに指定した文字が表示されます。
例えば、A1セルに「85000」という数値が入っている場合、書式設定で「@”円(税込)”」と設定すると、表示は「85000円(税込)」となりますが、セルの実際の値は「85000」のままです。
数式で参照した場合も「85000」として扱われるため、計算に影響を与えません。
ユーザー定義書式の動作イメージ
実際の値
セル内の数値
表示形式設定
ユーザー定義
表示結果
画面上の見た目
先頭に文字を追加する場合は「”追加する文字”@」という形式になります。
例えば「”商品番号:”@」と設定すれば、「A-5280」というデータが「商品番号:A-5280」と表示されます。
前後両方に追加する場合は「”【”@”】”」のように設定すれば、「重要案件」が「【重要案件】」と表示されます。
| 元データ | ユーザー定義形式 | 表示結果 | 実際の値 |
|---|---|---|---|
| 128500 | @”円(税込)” | 128500円(税込) | 128500 |
| 田中商店 | @”御中” | 田中商店御中 | 田中商店 |
| 重要案件 | “【”@”】” | 【重要案件】 | 重要案件 |
| A-5280 | “商品番号:”@ | 商品番号:A-5280 | A-5280 |
数値に対して書式設定を行う場合は、@の代わりに「0」や「#」を使います。
例えば「#,##0″個”」と設定すれば、「15000」が「15,000個」と表示され、桁区切りカンマと単位の両方が追加されます。
「”¥”#,##0」とすれば、「85000」が「¥85,000」と表示され、通貨記号が先頭に追加されます。
複数の条件で表示を切り替える高度な設定
ユーザー定義の書式設定では、正の数、負の数、ゼロ、文字列でそれぞれ異なる表示形式を設定できます。
形式は「正の数の書式;負の数の書式;ゼロの書式;文字列の書式」という順序でセミコロンで区切って指定します。
例えば「#,##0″個(在庫あり)”;-#,##0″個(不足)”;0″在庫なし”」と設定すれば、正の数なら「1,500個(在庫あり)」、負の数なら「-300個(不足)」、ゼロなら「在庫なし」と表示されます。
実務では、在庫管理や売上データで正負を視覚的に区別したい場合に便利です。
| 元データ(数値) | ユーザー定義形式 | 表示結果 |
|---|---|---|
| 1500 | #,##0″個(在庫あり)”;-#,##0″個(不足)”;0″在庫なし” | 1,500個(在庫あり) |
| -300 | #,##0″個(在庫あり)”;-#,##0″個(不足)”;0″在庫なし” | -300個(不足) |
| 0 | #,##0″個(在庫あり)”;-#,##0″個(不足)”;0″在庫なし” | 在庫なし |
| 250000 | [青]#,##0″円(黒字)”;[赤]-#,##0″円(赤字)” | 250,000円(黒字) |
色の指定も可能で、「[青]#,##0″円”;[赤]-#,##0″円”」とすれば、正の数は青色、負の数は赤色で表示されます。
使用できる色は、黒、白、赤、緑、青、黄、紫、水色の8色です。
複雑な条件を設定したい場合は、「[条件]書式」という形式も使えます。
例えば「[>=10000]#,##0″円(高額)”;#,##0″円”」とすれば、10000以上なら「高額」という文字が追加され、それ未満なら通常の表示になります。
ユーザー定義の書式設定を使うメリットは、セルの実際の値を変更しないため、数式での計算や並べ替え、フィルターなどが正常に機能することです。
特に数値データに単位を追加する場合、関数で文字を結合すると数値として認識されなくなりますが、書式設定なら数値のまま扱えます。
ただし、表示形式はあくまで「見た目」の変更なので、データをコピーして他のアプリケーションに貼り付けた場合、書式設定が失われることがあります。
また、セルの書式設定は印刷にも反映されますが、CSVファイルで出力すると書式情報は失われ、実際の値のみがエクスポートされます。
置換機能を使って一括で文字を追加
続いては既存のデータを直接編集して文字を追加する方法を確認していきます。
作業列と数式を組み合わせた確実な方法
置換機能で文字を追加する最も確実な方法は、一時的に作業列を使う方法です。
まず隣の列に数式で文字を追加し、その結果を元の列に値として貼り付けます。
具体的な手順を確認していきます。
A列に元データ「東京本社」「大阪支社」「名古屋支社」があるとします。
B列の先頭セル(B1)に「=A1&”-2024年度”」という数式を入力します。
この数式は、A1セルの内容に「-2024年度」という文字を追加するものです。
B1セルに数式を入力したら、B1セルの右下にある小さな四角(フィルハンドル)をダブルクリックするか、下方向にドラッグしてオートフィルでコピーします。
するとB列に「東京本社-2024年度」「大阪支社-2024年度」「名古屋支社-2024年度」という結果が得られます。
| 手順 | A列(元データ) | B列(作業列) | 操作 |
|---|---|---|---|
| ①初期状態 | 東京本社 | (空白) | – |
| ②数式入力 | 東京本社 | =A1&”-2024年度” | B1に数式を入力 |
| ③オートフィル | 東京本社 | 東京本社-2024年度 | B1をオートフィルで下にコピー |
| ④結果確認 | 東京本社 大阪支社 名古屋支社 |
東京本社-2024年度 大阪支社-2024年度 名古屋支社-2024年度 |
すべての行で結果を確認 |
| ⑤値貼り付け | 東京本社-2024年度 大阪支社-2024年度 名古屋支社-2024年度 |
(削除) | B列をコピーしA列に値貼り付け後、B列削除 |
次にB列全体を選択してコピー(Ctrl+C)し、A列を選択して右クリック、「形式を選択して貼り付け」から「値」を選択して貼り付けます。
これでA列のデータが更新され、数式ではなく値として確定します。
最後にB列は不要になったので削除すれば完了です。
この方法のメリットは、数式の柔軟性を活用しながら、最終的には値として確定できることです。
複雑な条件での文字追加も可能で、例えばIF関数と組み合わせれば「=IF(LEN(A1)>5,A1&”(長文)”,A1&”(短文)”)」のように、セルの文字数によって追加する文字を変えることもできます。
複数の文字列を一度に置換する応用技
複数の異なる文字列に対して異なる文字を追加したい場合は、IF関数やSWITCH関数を使った条件分岐が便利です。
例えば、商品名の先頭2文字が「冷蔵」なら「【要冷蔵】」、「冷凍」なら「【要冷凍】」、「常温」なら「【常温保管】」という文字を先頭に追加したい場合、IF関数とLEFT関数を組み合わせます。
数式は「=IF(LEFT(A1,2)=”冷蔵”,”【要冷蔵】”&A1,IF(LEFT(A1,2)=”冷凍”,”【要冷凍】”&A1,IF(LEFT(A1,2)=”常温”,”【常温保管】”&A1,A1)))」となります。
この数式は、A1の左から2文字を取得し、それが「冷蔵」なら「【要冷蔵】」を先頭に追加、「冷凍」なら「【要冷凍】」を追加、「常温」なら「【常温保管】」を追加し、どれにも該当しなければそのまま表示します。
| 元データ(A列) | 結果 |
|---|---|
| 冷蔵牛乳 | 【要冷蔵】冷蔵牛乳 |
| 冷凍食品セット | 【要冷凍】冷凍食品セット |
| 常温保存可能スープ | 【常温保管】常温保存可能スープ |
| お菓子詰め合わせ | お菓子詰め合わせ |
より高度な方法として、Excel 365以降ではSWITCH関数が使えます。
「=SWITCH(LEFT(A1,2),”冷蔵”,”【要冷蔵】”&A1,”冷凍”,”【要冷凍】”&A1,”常温”,”【常温保管】”&A1,A1)」とすれば、より読みやすい数式になります。
SWITCH関数は最初の引数(この場合はLEFT(A1,2))の値に応じて、対応する値を返す関数で、複数の条件分岐をシンプルに記述できます。
末尾に追加する場合も同様の考え方で、「=A1&IF(RIGHT(A1,2)=”完了”,”✓”,IF(RIGHT(A1,2)=”保留”,”△”,IF(RIGHT(A1,2)=”未着手”,”×”,””)))」のように、末尾の文字を判定して追加する文字を変えることができます。
作業列を使う方法の注意点として、元データと作業列が混在している状態で誤って保存してしまうと、どちらが正しいデータか分からなくなることがあります。
作業が完了したら速やかに作業列を削除し、ファイルを整理することが重要です。
また、大量のデータを処理する場合は、一部のデータで試してから全体に適用することをおすすめします。
数式が正しく機能しているか、想定通りの結果になっているかを確認してから、全データに対して実行することで、予期しないエラーを防げます。
フラッシュフィルで自動的に文字を追加
続いてはExcelのAI機能を活用した自動追加方法を確認していきます。
フラッシュフィルの基本的な使い方
フラッシュフィルは、入力パターンをExcelが自動認識して、残りのセルを自動入力する機能です。
Excel 2013以降で利用でき、数式を書かなくても複雑なデータ加工ができます。
例えば、A列に「東京本社」「大阪支社」「名古屋支社」という拠点名があり、それぞれの末尾に「-2024年度」を追加したい場合を考えます。
まずB1セルに手動で「東京本社-2024年度」と入力し、B2セルに「大阪支社-2024年度」と入力します。
この時点でExcelがパターンを認識し、B3セル以降を選択して「データ」タブの「フラッシュフィル」をクリック(またはCtrl+E)すると、残りのセルが自動的に「名古屋支社-2024年度」などと入力されます。
フラッシュフィルの動作イメージ
A列に元データ
B1に「東京本社-2024年度」
B2に「大阪支社-2024年度」
と入力
B3以降を選択し
Ctrl+Eまたは
「フラッシュフィル」
をクリック
残りのセルが
自動的に
「名古屋支社-2024年度」
と入力される
フラッシュフィルは単純な文字追加だけでなく、より複雑なパターンも認識できます。
例えば、A列に「田中 一郎」「鈴木 花子」という氏名があり、これを「田中一郎様」「鈴木花子様」のように全角スペースを削除して「様」を追加したい場合も、2件ほど手動で入力すればパターンを認識して自動入力できます。
また、先頭に文字を追加する場合も同様で、B1に「【重要】契約書」、B2に「【重要】見積書」と入力すれば、B3以降も「【重要】」が自動的に追加されます。
| A列(元データ) | B列(手動入力) | B列(フラッシュフィル後) |
|---|---|---|
| 東京本社 | 東京本社-2024年度 | 東京本社-2024年度 |
| 大阪支社 | 大阪支社-2024年度 | 大阪支社-2024年度 |
| 名古屋支社 | (空白) | 名古屋支社-2024年度(自動入力) |
| 福岡支社 | (空白) | 福岡支社-2024年度(自動入力) |
フラッシュフィルが認識しやすいパターンの作り方
フラッシュフィルを効果的に使うには、Excelが認識しやすいパターンを作ることが重要です。
基本的には2~3件の例を入力すれば十分ですが、パターンが複雑な場合はもう少し多めに入力する必要があります。
例えば、商品名の先頭に分類コードを追加する場合で、「食品-りんご」「飲料-緑茶」「日用品-ティッシュ」のように、追加する文字が元のデータによって変わる場合は、各パターンを1つずつ入力する必要があります。
単純に末尾や先頭に同じ文字を追加するだけなら、1~2件の例で十分認識されます。
フラッシュフィルが正しく動作しない場合は、手動入力の例をもう1~2件追加してみてください。
また、元データに不規則なスペースや改行が含まれていると、パターン認識がうまくいかないことがあります。
その場合は、TRIM関数で余分なスペースを削除するなど、事前にデータをクリーニングすることをおすすめします。
フラッシュフィルの大きなメリットは、数式を書かなくても複雑なデータ加工ができることです。
特にExcel初心者にとって、関数の構文を覚える必要がないため、直感的に使えます。
ただし、フラッシュフィルで入力されたデータは「値」として確定されるため、元データが変更されても自動的に更新されません。
動的なデータ管理が必要な場合は、数式を使った方法の方が適しています。
また、フラッシュフィルはパターン認識に基づいているため、時々意図しない結果になることがあります。
実行後は必ず結果を確認し、正しく変換されているかチェックすることが重要です。
まとめ エクセルで文字を追加する実践ガイド
エクセルで文字を追加する方法をまとめると
・関数による追加:&演算子「=A1&”様”」やCONCATENATE関数、TEXTJOIN関数「=TEXTJOIN(“-“,TRUE,A1:C1)」で文字を結合、元データを保持したまま新しいデータを作成でき、動的な管理に適している
・ユーザー定義の書式設定:「@”円(税込)”」のように設定すれば表示だけを変更でき、実際の値は変わらないため計算やフィルターが正常に機能する、数値データに単位を追加する場合に特に便利
・作業列と値貼り付け:隣の列に数式「=A1&”-2024年度”」を入力してオートフィルでコピーし、結果を値として元の列に貼り付ける方法で、複雑な条件分岐にも対応可能
・フラッシュフィル:2~3件の例を手動入力すれば、Excelがパターンを自動認識して残りを入力、数式不要で直感的に使えるが結果は値として確定される
これらの方法にはそれぞれ適した用途があり、状況に応じた使い分けが重要です。
動的なデータ管理が必要なら関数、表示だけを変えたいならユーザー定義の書式設定、一度だけ処理して確定させたいなら作業列または置換、数式が苦手ならフラッシュフィルが適しています。
ただし、文字を追加する際は元データの品質に注意が必要です。
全角と半角の混在、前後のスペース、不要な改行などがあると、正しく処理できないことがあります。
特に他のシステムからインポートしたデータや、手入力されたデータには不規則な要素が含まれていることが多いため、TRIM関数やSUBSTITUTE関数でクリーニングしてから処理することをおすすめします。
Excelの文字追加テクニックを適切に活用して、効率的なデータ編集と管理を実現していきましょう!