Excelを使ってデータを整形・修正していると、「複数の語句を一気に置換したい」という場面にたびたび直面します。
たとえば、以下のようなケースです。
- 略語や記号を正式名称に一括変換したい
- 複数の誤字・表記ゆれを一度に修正したい
- 商品名や部署名などを統一したい
この記事では、「Excel 関数 置換 複数」というキーワードをもとに、VBAを使わず関数だけで複数の置換処理を実現する方法を、初心者にも分かりやすく解説します。
目次
- ✅ SUBSTITUTE関数で複数語句を置換する基本
- ・SUBSTITUTE関数の構文
- ・A1セルの「(株)ABC(有)」を「株式会社ABC有限会社」に変換
- ✅ SUBSTITUTE関数で3つ以上の語句を一括置換する方法
- ・記号をまとめて削除する方法
- ✅ LET関数でネストSUBSTITUTEを整理(Excel365以降)
- ・LET関数の構文
- ✅ 置換リストとXLOOKUPを使って一括置換(完全一致)
- ✅ セル内の一部を置換リストで対応したい場合(部分一致置換)
- ・手順(Excel関数のみ)
- ✅ REDUCE+LAMBDAを使った高度な複数置換(Excel365以降)
- ・置換リストを使った一括置換式(高度)
- ■ SUBSTITUTEかXLOOKUPか?状況別の使い分け
- ■ 注意点とトラブル防止のポイント
- ■ よくある活用例
- ・ 会社名表記の統一
- ・ 商品コードから記号を削除
- ・ フィードバックの感情表現を変換
- ■ まとめ:複数語句の置換を関数でスマートに処理
✅ SUBSTITUTE関数で複数語句を置換する基本
Excelで特定の語句を他の語句に置き換える関数といえば、まず代表的なのが SUBSTITUTE関数 です。
・SUBSTITUTE関数の構文
=SUBSTITUTE(文字列, 検索文字列, 置換文字列)
1回の使用で1組の置換しかできませんが、入れ子(ネスト)にすることで複数の語句を順番に置き換えることができます。
・A1セルの「(株)ABC(有)」を「株式会社ABC有限会社」に変換
=SUBSTITUTE(SUBSTITUTE(A1, "(株)", "株式会社"), "(有)", "有限会社")
✅ これにより、「(株)ABC(有)」が「株式会社ABC有限会社」に変換されます。
【Excel】複数の置換を一括で行う方法|検索と置換・関数・VBAまで徹底解説
✅ SUBSTITUTE関数で3つ以上の語句を一括置換する方法
さらに語句が増える場合も、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
)
✅ 各置換処理に名前を付けて管理できるので、読みやすさと保守性が格段に向上します。
【Excel】置換リストを使った関数置換のやり方|SUBSTITUTEやXLOOKUPで一括変換
✅ 置換リストとXLOOKUPを使って一括置換(完全一致)
複数の語句と置換先を一覧にした「置換リスト」を用意すれば、XLOOKUP関数で置換が可能です。
準備:
| A列(変換前) | B列(変換後) |
|---|---|
| (株) | 株式会社 |
| (有) | 有限会社 |
| (名) | 名古屋 |
このリストをSheet2に作成し、Sheet1のA列に置換対象の値があるとします。
置換式:
=XLOOKUP(A2, Sheet2!A:A, Sheet2!B:B, A2)
✅ セルの値が完全一致する場合に一括で置換可能。該当がないときは元の値を返します。
【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関数だけでも、複数の語句を一括で効率よく置換する処理は十分に実現可能です。
繰り返し使う置換ルールは「置換リスト」として整理し、関数と組み合わせることで、日々の作業効率を格段に向上させることができます。