Excelを使ってデータを整形・修正していると、「複数の語句を一気に置換したい」という場面にたびたび直面します。
たとえば、以下のようなケースです。
- 略語や記号を正式名称に一括変換したい
- 複数の誤字・表記ゆれを一度に修正したい
- 商品名や部署名などを統一したい
この記事では、「Excel 関数 置換 複数」というキーワードをもとに、VBAを使わず関数だけで複数の置換処理を実現する方法を、初心者にも分かりやすく解説します。
目次
- ✅ SUBSTITUTE関数で複数語句を置換する基本
- ・SUBSTITUTE関数の構文
- ・A1セルの「(株)ABC(有)」を「株式会社ABC有限会社」に変換
- ✅ SUBSTITUTE関数で3つ以上の語句を一括置換する方法
- ・記号をまとめて削除する方法
- ✅ LET関数でネストSUBSTITUTEを整理(Excel365以降)
- ・LET関数の構文
- ✅ 置換リストとXLOOKUPを使って一括置換(完全一致)
- ✅ セル内の一部を置換リストで対応したい場合(部分一致置換)
- ・手順(Excel関数のみ)
- ✅ REDUCE+LAMBDAを使った高度な複数置換(Excel365以降)
- ・置換リストを使った一括置換式(高度)
- ■ SUBSTITUTEかXLOOKUPか?状況別の使い分け
- ■ 注意点とトラブル防止のポイント
- ■ よくある活用例
- ・ 会社名表記の統一
- ・ 商品コードから記号を削除
- ・ フィードバックの感情表現を変換
- ■ まとめ:複数語句の置換を関数でスマートに処理
✅ SUBSTITUTE関数で複数語句を置換する基本
Excelでデータ整形をしていると、「1つだけ置換したい」のではなく、複数の語句をまとめて修正したい場面が非常によくあります。
しかし実際には、検索と置換を何度も繰り返してしまい、修正漏れや誤変換が発生しているケースも少なくありません。
特に実務では、
- 略語を正式名称へ統一したい
- 商品名の表記ゆれを修正したい
- 不要記号をまとめて削除したい
- 社内データの名称ルールを揃えたい
といった処理が頻繁に発生します。
ここで重要なのが、「あとから置換ルールが増えても管理しやすい形」で作ることです。
単純な置換だけで組み始めると、後から数式が読めなくなり、修正時に大きく困るケースもあります。
まずは、Excelで最も基本となる「SUBSTITUTE関数」を使った複数置換の考え方から確認していきましょう。
・SUBSTITUTE関数の構文
=SUBSTITUTE(文字列, 検索文字列, 置換文字列)
1回の使用で1組の置換しかできませんが、入れ子(ネスト)にすることで複数の語句を順番に置き換えることができます。
・A1セルの「(株)ABC(有)」を「株式会社ABC有限会社」に変換
=SUBSTITUTE(SUBSTITUTE(A1, "(株)", "株式会社"), "(有)", "有限会社")
✅ これにより、「(株)ABC(有)」が「株式会社ABC有限会社」に変換されます。
複数語句の置換は、最初はSUBSTITUTE関数だけでも十分対応できます。
しかし実務では、
- 置換対象が増える
- 修正ルールが頻繁に変わる
- データ量が多くなる
といった理由から、「どの方法を選ぶべきか」が非常に重要になります。
検索と置換・SUBSTITUTE関数・置換リスト・VBAなど、状況に応じた複数置換の考え方をまとめて確認したい方は、こちらの記事も参考にしてみてください。
→ 【Excel】複数の置換を一括で行う方法|検索と置換・関数・VBAまで徹底解説
✅ SUBSTITUTE関数で3つ以上の語句を一括置換する方法
置換対象が2〜3個程度なら問題ありませんが、実務では「修正したい語句が大量にある」というケースが非常によくあります。
例えば、
- 部署名の統一
- 記号の削除
- 半角・全角の整理
- 商品名ルールの統一
- 略称の正式名称化
などを行う場合、置換対象が増えやすくなります。
ここで単純にSUBSTITUTE関数を追加し続けると、数式が極端に長くなり、「どこを何に変換しているのか」が分からなくなりやすいです。
特に後から別の人が修正する場合、ネストが深すぎる数式は保守性が大きく低下します。
また、置換順によって結果が変わるケースもあるため、「とりあえず追加する」運用は危険です。
まずは、複数SUBSTITUTEを使った基本的な一括置換の考え方を確認していきましょう。
・記号をまとめて削除する方法
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "-", ""), "(", ""), ")", "")
✅ A1セルが「A-123(旧)」の場合 → 結果:「A123旧」
ただしこの方法は、語句数が多いと式が長くなって可読性が悪くなるのが欠点です。
複数置換を行っていると、「置換はしたいけれど、元の文字列も残して比較したい」というケースが実務では非常によくあります。
特にデータ整形や変換作業では、変換前後を確認できないと、誤変換や修正漏れに気付きにくくなることがあります。
元データを保持しながら安全に置換処理を進めたい方は、こちらの記事もあわせて確認してみてください。
→ 【Excel】置換しつつ元の文字を残す方法|関数・置換機能・VBAまで徹底解説
✅ LET関数でネストSUBSTITUTEを整理(Excel365以降)
Excel365やExcel2021以降では、LET関数 を使うことでネストが整理しやすくなります。
・LET関数の構文
=LET(
text, A1,
step1, SUBSTITUTE(text, "(株)", "株式会社"),
step2, SUBSTITUTE(step1, "(有)", "有限会社"),
result, SUBSTITUTE(step2, "(名)", "名古屋"),
result
)
✅ 各置換処理に名前を付けて管理できるので、読みやすさと保守性が格段に向上します。
LET関数を使うと、複雑になりがちなネストSUBSTITUTEをかなり整理しやすくなります。
ただし、置換対象がさらに増えてくると、「数式内へ直接書く」のではなく、“置換リストとして外部管理する設計”が実務では非常に重要になります。
特に頻繁に置換ルールが変わる業務では、SUBSTITUTEとXLOOKUPを組み合わせた「管理しやすい置換設計」を知っておくと、後からの修正がかなりラクになります。
→ 【Excel】置換リストを使った関数置換のやり方|SUBSTITUTEやXLOOKUPで一括変換
✅ 置換リストとXLOOKUPを使って一括置換(完全一致)
複数の語句と置換先を一覧にした「置換リスト」を用意すれば、XLOOKUP関数で置換が可能です。
準備:
| A列(変換前) | B列(変換後) |
|---|---|
| (株) | 株式会社 |
| (有) | 有限会社 |
| (名) | 名古屋 |
このリストをSheet2に作成し、Sheet1のA列に置換対象の値があるとします。
置換式:
=XLOOKUP(A2, Sheet2!A:A, Sheet2!B:B, A2)
✅ セルの値が完全一致する場合に一括で置換可能。該当がないときは元の値を返します。
XLOOKUPは単純な完全一致置換だけでなく、実務では「複数条件を組み合わせたデータ検索」に発展していくケースが非常に多いです。
特に、
- 部署+社員番号
- 商品コード+支店
- 日付+担当者
のような条件管理では、通常のXLOOKUPだけでは対応しきれない場面もあります。
INDEX関数やFILTER関数との違いも含めて、“実務で壊れにくい検索設計”を理解したい方は、こちらの記事もあわせて確認してみてください。
→ 【Excel】XLOOKUP関数で複数条件を扱う方法とは?INDEX・FILTERとの違いも解説【実務対応】
✅ セル内の一部を置換リストで対応したい場合(部分一致置換)
XLOOKUPでは「完全一致」が必要ですが、セル内の一部を置換したい場合には次のような手順が有効です。
・手順(Excel関数のみ)
TEXTJOIN関数+SUBSTITUTEを組み合わせて、複数語句を動的に置換- または
LAMBDA関数 +REDUCE(Excel365以降)を使う
✅ REDUCE+LAMBDAを使った高度な複数置換(Excel365以降)
REDUCE と LAMBDA を使うことで、置換リストの語句を1つずつ適用して一括変換する関数も作れます。
・置換リストを使った一括置換式(高度)
=REDUCE(A2, FILTER(Table1[変換前], Table1[変換前]<>""),
LAMBDA(acc, word, SUBSTITUTE(acc, word,
XLOOKUP(word, Table1[変換前], Table1[変換後]))))
✅ これにより、任意の語句数に動的に対応できる関数的な置換処理が可能になります。
■ SUBSTITUTEかXLOOKUPか?状況別の使い分け
| 方法 | 特徴・利点 | 向いている状況 |
|---|---|---|
| SUBSTITUTE(入れ子) | 単純な固定語句の置換には強力。部分一致に対応 | 対象語句が2〜4つ程度で式が固定の場合 |
| LET + SUBSTITUTE | ネストが多い場合の見やすさ向上 | 読みやすく、保守性を高めたいとき |
| XLOOKUP | セルの値が完全一致で置換 | 略語→正式名称変換やコード変換など |
| REDUCE + LAMBDA | 多語句かつ可変な語句数に対応可能 | 置換リストのメンテナンスが頻繁な場合 |
■ 注意点とトラブル防止のポイント
- SUBSTITUTEはワイルドカード( や ?)に非対応*
- 複数語句が含まれていると、置換順によって結果が異なる
- 記号の全角・半角で一致しないことがあるため、CLEAN/TRIM関数で前処理がおすすめ
■ よくある活用例
・ 会社名表記の統一
- 元データ:「(株)ABC」「ABC(有)」
- 処理:複数SUBSTITUTEで「(株)」→「株式会社」、「(有)」→「有限会社」
- 結果:「株式会社ABC」「ABC有限会社」
・ 商品コードから記号を削除
- 元:「A-123」「B-456」
- 処理:
SUBSTITUTE(A1, "-", "") - 結果:「A123」「B456」
・ フィードバックの感情表現を変換
- 元:「良い」「まあまあ」「悪い」
- 処理:XLOOKUPで「良い」→「高評価」などに一括変換
- 結果:「高評価」「中評価」「低評価」
■ まとめ:複数語句の置換を関数でスマートに処理
複数の語句を一括で置換するには、次のような選択肢があります。
| 方法 | 特徴 |
|---|---|
| SUBSTITUTE(入れ子) | 少数語句に最適、Excel全バージョン対応 |
| LET + SUBSTITUTE | 複雑なネストでも見やすく管理しやすい |
| XLOOKUP + 置換リスト | 完全一致の語句を大量に変換できる |
| REDUCE + LAMBDA | 可変な語句リストに対応、最新Excel向け |
Excel関数だけでも、複数の語句を一括で効率よく置換する処理は十分に実現可能です。
繰り返し使う置換ルールは「置換リスト」として整理し、関数と組み合わせることで、日々の作業効率を格段に向上させることができます。