Excelで文字を置き換える操作は簡単ですが、「元の文字を残したまま、新しい語句を追加したい」という少し特殊なニーズに対応するには、工夫が必要です。
たとえば、
- 「株式会社」という文字を「株式会社((株))」のように変更したい
- 品番「A123」を「A123_変更後」のように加工したい
- 「●●」を「●●(修正済)」のように元の語句を保持しながら付加したい
といったケースでは、通常の「置換」や「SUBSTITUTE関数」だけでは対応が難しいこともあります。
この記事では、「Excel 置換 元の文字を残す」で検索された方に向けて、関数による置換+追記の方法、検索と置換機能の工夫、VBAによるカスタム処理などを含め、実務で使えるテクニックを詳しく解説します。
目次
- ✅ 基本の考え方:「置換」ではなく「追加」に近い処理
- ✅ SUBSTITUTE関数で「元の文字+追記」を実現する方法|変換しつつ元の語句も残せるテクニック
- ・ SUBSTITUTE関数の基本構文と応用
- ・会社名の略称を追加する方法
- ✅ REPLACE関数を使って指定位置に文字列を追加する方法|先頭・末尾の追記に最適
- ・ REPLACE関数の基本構文
- ・文字列の先頭に語句を追加する方法
- ・文字列の末尾に語句を追加する方法(&演算子)
- ■ 「元の文字を残して追記する」にはSUBSTITUTE+REPLACEを使い分け!
- ✅ CONCAT・TEXTJOINなどで「元の文字+情報追加」を柔軟に制御
- ・元の文字に日付を追加する方法
- ✅ 「検索と置換」機能で元の文字を残す工夫
- ✅ VBAを使えば複数語句への「元の文字+置換語」処理も自動化できる
- ・サンプルVBAコード(元の語句を残しつつ変換語を追加)
- ■ よくある注意点と対処法
- トラブル①:置換対象の文字列が複数回出現し、重複して置換される
- トラブル②:既に追加語句が入っているデータが重複加工されてしまう
- トラブル③:元データを保持したいが上書きしてしまう
- ✅ まとめ|「元の文字を残す置換」は工夫次第で柔軟に対応できる
- ・処理方法と用途まとめ
✅ 基本の考え方:「置換」ではなく「追加」に近い処理
「置換して元の文字を残す」という操作は、実質的には「特定文字の後ろ(または前)に、文字を追加する」という発想に近くなります。
この処理は、
- 関数(SUBSTITUTEやTEXT関数など)
- 検索と置換機能の工夫
- VBA(マクロ)による自動処理
といった複数の方法で実現できます。
【Excel】文字列を一気に置き換える方法|複数セル・複数語句を一括置換するテクニック
✅ SUBSTITUTE関数で「元の文字+追記」を実現する方法|変換しつつ元の語句も残せるテクニック
Excelで語句を置換する際、「完全に置き換える」のではなく、元の文字列を残したまま追加の語句をくっつけたいというケースは意外と多いものです。
たとえば、「株式会社」という語句を「株式会社((株))」のように、略称や補足情報を後ろに追記したいといった場面です。
そんなときに便利なのが、SUBSTITUTE関数を少し工夫して使う方法です。
・ SUBSTITUTE関数の基本構文と応用
まず、SUBSTITUTE関数の基本構文は以下のとおりです:
=SUBSTITUTE(文字列, 検索文字列, 置換後の文字列)
ここで、「置換後の文字列」に“元の文字列+追記”を指定することで、「もとの語句はそのまま残し、あとから追加する」という処理が実現できます。
・会社名の略称を追加する方法
A1セルに「株式会社〇〇」と入力されている場合:
「株式会社」を「株式会社((株))」に変換したいときの関数は次のとおりです。
=SUBSTITUTE(A1, "株式会社", "株式会社((株))")
または、&(アンパサンド)演算子を使ってより柔軟に構成する場合:
=SUBSTITUTE(A1, "株式会社", "株式会社" & "((株))")
どちらも結果として「株式会社〇〇」→「株式会社((株))〇〇」のように、略称付きで表示されます。
✅ この方法のメリット
| 特徴 | 説明 |
|---|---|
| ✅ 元の語句を保持できる | 完全置換ではなく、「元の語句+補足語句」が実現可能 |
| ✅ 表記の補足に便利 | 社名、商品名、日付、数値などに注釈を加えるときに使える |
| ✅ 関数1本で完結 | マクロ不要・データベース構築にも活用できる |
🔍 応用例:商品コードの末尾に分類を追加したい
| 元の値 | 変換後の表示 | 関数例 |
|---|---|---|
| ABC123 | ABC123(食品) | =SUBSTITUTE(A1, "ABC123", "ABC123(食品)") |
| 製品A | 製品A(旧モデル) | =SUBSTITUTE(A1, "製品A", "製品A(旧モデル)") |
このように、特定の文字列が含まれる場合にだけ補足情報を追加する処理にぴったりです。
✅ REPLACE関数を使って指定位置に文字列を追加する方法|先頭・末尾の追記に最適
もう一つの方法として、ExcelのREPLACE関数を使えば、指定した位置にピンポイントで文字列を挿入することができます。
これは、「先頭に“修正:”を追加したい」や、「末尾に“(旧)”と付けたい」など、特定位置への追記が必要なケースに非常に便利です。
・ REPLACE関数の基本構文
=REPLACE(元の文字列, 追加位置, 置換文字数, 追加する文字列)
ここで「置換文字数」を「0」にすれば、文字を削除せずに**文字列の“挿入”**が可能になります。
・文字列の先頭に語句を追加する方法
=REPLACE(A1, 1, 0, "修正:")
✅ A1が「商品A」の場合 → 結果は「修正:商品A」
・文字列の末尾に語句を追加する方法(&演算子)
=A1 & "(旧)"
✅ A1が「型番B123」の場合 → 結果は「型番B123(旧)」
✅ REPLACE関数の活用ポイント
| 使用シーン | メリット |
|---|---|
| データの先頭に追記 | エラーマーク・分類名などを自動付与できる |
| データの末尾に追記 | バージョンや注釈を自動追加する用途に便利 |
| 番号の途中に挿入 | 「AB123」→「AB-123」などのフォーマット補正にも対応可能 |
REPLACE関数は、パターンが明確なデータ処理にとても強い関数です。
SUBSTITUTEでは困難な「文字数位置指定」にも柔軟に対応できます。
■ 「元の文字を残して追記する」にはSUBSTITUTE+REPLACEを使い分け!
- SUBSTITUTE関数は、置き換え対象をキーワードで探して追記したいときに便利
- REPLACE関数は、指定位置に追加文字を挿入したいときに最適
どちらも元の文字列を壊さずに情報を付加できる点で、見た目や意味を強化する場面に非常に有効です。
表記の補足や自動注釈付けなど、業務効率を高める文字列処理テクニックとして、ぜひ覚えておきましょう。
✅ CONCAT・TEXTJOINなどで「元の文字+情報追加」を柔軟に制御
より複数の要素を組み合わせて表示したい場合には、CONCATやTEXTJOINを使って元の文字にさまざまな情報を結合できます。
・元の文字に日付を追加する方法
=CONCAT(A1, "(変更日:" & TEXT(TODAY(), "yyyy/mm/dd") & ")")
→ 「商品名」 → 「商品名(変更日:2025/07/20)」
✅ フィールドの動的情報(現在の日付、担当者名、ステータスなど)を元データに付加する際に便利です。
✅ 「検索と置換」機能で元の文字を残す工夫
Excelの標準機能「検索と置換(Ctrl + H)」でも、工夫次第で元の文字を保持したままの置換が可能です。
方法:
- Ctrl + H を押す
- 「検索する文字列」に対象語句を入力(例:「旧商品」)
- 「置換後の文字列」に「旧商品(修正済)」のように元の語句+追加語句を入力
- 「すべて置換」を実行
例:
- 検索語句:「商品A」
- 置換語句:「商品A(廃番)」
→ 結果:「商品A」がすべて「商品A(廃番)」に置き換わる
✅ 単一の語句に対してのみ対応可能ですが、スピーディーに処理できるのがメリットです。
✅ VBAを使えば複数語句への「元の文字+置換語」処理も自動化できる
複数の語句に対して元の文字を保持したまま追加処理をしたい場合には、VBA(マクロ)での自動処理が便利です。
・サンプルVBAコード(元の語句を残しつつ変換語を追加)
Sub ReplaceWithOriginal()
Dim cell As Range
Dim findWords As Variant
Dim replaceWords As Variant
Dim i As Integer
findWords = Array("株式会社", "有限会社")
replaceWords = Array("株式会社((株))", "有限会社((有))")
For Each cell In Selection
If Not IsEmpty(cell.Value) Then
For i = 0 To UBound(findWords)
cell.Value = Replace(cell.Value, findWords(i), replaceWords(i))
Next i
End If
Next cell
End Sub
使い方:
- セル範囲を選択した状態で実行すれば、指定した語句に対して「元の語句+補足情報」が追加される形式で置換されます。
✅ マクロは複数語句の一括処理や、繰り返し作業の自動化に最適です。
■ よくある注意点と対処法
トラブル①:置換対象の文字列が複数回出現し、重複して置換される
対策:
SUBSTITUTE関数の第4引数で出現回数を制限- VBAの場合は
InStrを使って1回だけ処理するように制御
トラブル②:既に追加語句が入っているデータが重複加工されてしまう
対策:
IF関数やISNUMBER(SEARCH(...))で既に加工済みかどうかを判定して処理を分岐する- 例:
=IF(ISNUMBER(SEARCH("((株))", A1)), A1, SUBSTITUTE(A1, "株式会社", "株式会社((株))"))
トラブル③:元データを保持したいが上書きしてしまう
対策:
- 元データ列を別に残しておき、新しい列で加工表示
IF関数やFILTER関数などと組み合わせて安全に加工表示する
✅ まとめ|「元の文字を残す置換」は工夫次第で柔軟に対応できる
Excelでの「置換しつつ元の文字を残す」処理は、単なる置換ではなく“追加・補足”として考えることがポイントです。
・処理方法と用途まとめ
| 方法 | 特徴 | 向いている用途 |
|---|---|---|
| SUBSTITUTE関数 | 一部文字を保持しつつ変換可能 | 「株式会社」→「株式会社((株))」など |
| REPLACE関数/&演算子 | 文字列の先頭・末尾に文字を追加できる | 「商品A」→「商品A(旧)」など |
| 検索と置換(Ctrl + H) | 1種類の語句であればスピード処理が可能 | 一括作業でシンプルな変換 |
| VBAマクロ | 複数語句や複雑な条件付き処理に対応 | データの大量置換、自動化が必要な場面 |
| Power Query(上級者向け) | 可視化しながら加工・変換履歴も管理可能 | 大量テーブルやルール付き置換処理 |
「置換=削除して置き換える」ではなく、「元の文字を活かしつつ追加・加工する」という柔軟な発想を持つことで、Excelでのデータ整形がより高度かつ安全に行えるようになります。