Excelでデータを扱っていると、「複数の語句を一括で置き換えたい」「何百行にも及ぶ表を一気に修正したい」という状況はよくあります。特に、
- 「株式会社」と「有限会社」をそれぞれ「(株)」「(有)」に変換したい
- 商品コードの一部をパターン別に変更したい
- 特定の文字列をまとめて削除・統一したい
というようなケースでは、Excelの置換機能だけでは足りないこともあります。
この記事では、「Excel 置換 複数 一括」をテーマに、検索と置換・関数・VBAを活用した複数語句の一括変換方法を詳しく紹介します。
目次
- ✅ 「検索と置換」機能は基本だが、1回で複数の語句を置換できない点に注意
- ・ 操作手順
- ・ 注意:「検索と置換」機能には1つの制限がある
- ✅ 複数語句を一括で置換したいときの次の一手は?
- ✅ SUBSTITUTE関数を使って複数語句を一括置換する方法|式のネストでまとめて処理!
- ・ SUBSTITUTE関数の基本書式
- ・ 複数語句を一括で置き換えるには?
- ・ ポイントと注意点
- ・ 実用例:記号を一括で削除する
- ・ SUBSTITUTE関数は「安全に一部だけ置換したい」場面で最適
- ・ 関数で対応できる範囲を超えたら?
- ✅ REPLACE関数との違いと使い分け
- ・A1の3文字目から3文字を「XYZ」に置き換える
- ■ VBAで複数語句の置換を一括処理する方法(大量データ向け)
- ・複数語句の一括置換VBAコード
- ・ 補足:関数 or VBA、どちらを使うべき?
- ✅ Power Queryを使って複数語句を一括置換(GUI操作OK)
- ■ よくある置換時の注意点とエラー対処法
- トラブル①:一部の置換が反映されない
- トラブル②:置換しすぎて意図しない変換になる
- トラブル③:関数が複雑になりすぎて読みづらい
- ■ まとめ|Excelでの複数置換を一括処理して作業効率を最大化しよう
- ・方法別まとめ
✅ 「検索と置換」機能は基本だが、1回で複数の語句を置換できない点に注意
Excelで文字列を一括で置き換える際、まず思い浮かぶのが「検索と置換」機能(ショートカット:Ctrl + H)です。
これは、特定の語句をまとめて別の語句に置き換えるための、非常に手軽で便利な標準機能です。
たとえば、以下のようなケースに最適です:
- 「株式会社」を「(株)」に短縮したい
- 古い商品名をすべて「新商品名」に書き換えたい
- 全角スペースを半角にまとめて直したい
このように、表記の統一や大量データの修正に役立つ、基本中の基本とも言える操作です。
【Excel】IFERRORとVLOOKUPの使い方を徹底解説!エラー対策で見やすい表を作る関数の基本と応用
・ 操作手順
- Ctrl + H を押して「検索と置換」ダイアログを開く
- 「検索する文字列」欄に変換前の語句を入力
- 「置換後の文字列」欄に変換後の語句を入力
- 「すべて置換」ボタンをクリックすると、一括変換が完了します
✅ 例:
| 変換前 | 変換後 | 用途例 |
|---|---|---|
| 株式会社〇〇 | (株)〇〇 | 社名の表記簡略化 |
| 商品A旧版 | 商品A新版 | 商品データの更新 |
| サンプル全角 | サンプル半角 | CSV連携や入力統一 |
・ 注意:「検索と置換」機能には1つの制限がある
この機能は便利ですが、**1回の操作で置き換えられるのは“1種類の語句のみ”**という制限があります。
たとえば、以下のような複数語句を一度にまとめて変換したいときには対応していません。
❌ できない例(通常の「Ctrl + H」では不可):
- 「株式会社」→「(株)」、かつ「有限会社」→「(有)」
- 「旧A」→「新A」、かつ「旧B」→「新B」
- 「未記入」→「-」、かつ「不明」→「-」
このように、複数の置換処理を連続で行いたい場合は、何度も手動で「検索と置換」を繰り返す必要があります。これでは、作業効率が大きく落ちてしまいますし、ミスのリスクも高くなります。
【Excel】文字列を一気に置き換える方法|複数セル・複数語句を一括置換するテクニック
✅ 複数語句を一括で置換したいときの次の一手は?
「複数の文字列をまとめて一気に変換したい!」
そんなときに頼りになるのが、以下の方法です:
- Excel関数(SUBSTITUTEやTEXT関数など)を組み合わせる方法
- VBA(マクロ)を使って一括変換処理を自動化する方法
これらを使えば、複数語句を一気に変換したり、複雑な条件に応じた置換を効率よく処理したりできます。
✅ たとえばVBAなら、以下のような複数置換もワンクリックで可能:
ReplaceTextArray = Array("株式会社", "(株)", "有限会社", "(有)", "未記入", "-")
→ このように配列で複数の語句をまとめて定義し、一括処理することができます。
【VBA】InStr関数で文字列のうしろから特定の文字を検索する方法
✅ SUBSTITUTE関数を使って複数語句を一括置換する方法|式のネストでまとめて処理!
Excelで文字列の一部を置き換えたいときに使えるのが、SUBSTITUTE関数です。特に、セル内に含まれる特定の語句や記号を、まとめて複数種類一括で置き換えたい場合に効果を発揮します。
一見すると単語1つずつしか置換できなさそうなこの関数ですが、“入れ子(ネスト)構造”にすることで、2つ以上の置換処理を連続で実行できるという特徴があります。
・ SUBSTITUTE関数の基本書式
=SUBSTITUTE(文字列, 検索文字列, 置換文字列)
この関数は、指定した文字列の中から、検索文字列を見つけて、別の文字列に置き換えるというシンプルな動作をします。1つの語句を変更するだけなら非常に簡単です。
・ 複数語句を一括で置き換えるには?
複数の語句を同時に置き換えるには、SUBSTITUTE関数をネストして使うのがポイントです。
🔧 具体例:会社名を略称に変換
セルA1に入っている文字列
「株式会社〇〇と有限会社△△」
を以下のように変換したい場合:
| 元の語句 | 置換後 |
|---|---|
| 株式会社 | (株) |
| 有限会社 | (有) |
✏ 使用する関数式:
=SUBSTITUTE(SUBSTITUTE(A1, "株式会社", "(株)"), "有限会社", "(有)")
このように、内側のSUBSTITUTEから順に実行され、2つの置換を連続で処理できます。
【Excel】「#N/Aならば空白」にする方法|エラーを自動で非表示にし資料をきれいに整える基本
・ ポイントと注意点
| 項目 | 説明 |
|---|---|
| ✅ ネスト構造で連続置換可能 | SUBSTITUTEを重ねて記述することで複数語句の置換が可能 |
| ✅ 3つ以上も対応可能 | 3段階、4段階と続けてネストすれば複数対応できる |
| ⚠ 式が長くなりやすい | 語句が多くなると関数が読みにくくなり、メンテナンス性が低下 |
| ⚠ 大量データにはやや非効率 | 関数が重なるほど処理が重くなることがあるため、VBAの検討も視野に入れる |
・ 実用例:記号を一括で削除する
SUBSTITUTE関数は「削除」にも使えます。置換後の文字列に空文字 "" を指定すれば、その文字を削除したことになります。
✏ 記号を削除してデータをクリーニング:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "-", ""), "(", ""), ")", "")
この関数は、以下のような変換を行います:
「A-123(旧)」 → 「A123旧」
📌 このように、CSVインポート前のデータ整形や、表示をスッキリさせたいときに非常に便利です。
・ SUBSTITUTE関数は「安全に一部だけ置換したい」場面で最適
- 文中の一部分だけ変更したい
- 数式内で複雑な置換処理を行わず、関数ベースで柔軟に制御したい
- マクロを使いたくない環境でも、簡易的に多重置換をしたい
このようなケースでは、SUBSTITUTE関数が最も安心して使える選択肢です。
・ 関数で対応できる範囲を超えたら?
SUBSTITUTE関数はシンプルで強力ですが、置換語句が10個以上あるようなケースでは、式の可読性が大きく下がります。
そうした場合には、次のようなステップアップを検討しましょう。
- ✔ VLOOKUP関数+SUBSTITUTEの組み合わせで置換辞書的な使い方
- ✔ VBA(マクロ)で配列を使った一括処理
実際の業務では、最初はSUBSTITUTEで試して、必要に応じてVBAに移行するという流れが一般的です。
✅ REPLACE関数との違いと使い分け
REPLACE関数 は「何文字目から何文字分を新しい文字列に置き換える」関数です。
書式:
=REPLACE(文字列, 開始位置, 文字数, 新しい文字列)
・A1の3文字目から3文字を「XYZ」に置き換える
=REPLACE(A1, 3, 3, "XYZ")
✅ REPLACE は**位置で指定するため、パターンが固定されているデータ(商品コード、社員IDなど)**の変換に適しています。
■ VBAで複数語句の置換を一括処理する方法(大量データ向け)
数百行、数千セルのデータを処理したい場合、VBA(Visual Basic for Applications) を使えば効率的に複数の置換を一括で実行できます。
・複数語句の一括置換VBAコード
Sub 複数置換一括処理()
Dim words As Variant
Dim replacements As Variant
Dim i As Integer
words = Array("株式会社", "有限会社", "特別価格", "キャンペーン中")
replacements = Array("(株)", "(有)", "通常価格", "終了")
For i = 0 To UBound(words)
Cells.Replace What:=words(i), Replacement:=replacements(i), LookAt:=xlPart
Next i
End Sub
実行手順:
- Alt + F11 でVBEを開く
- 挿入 → モジュール
- 上記コードを貼り付け
- Alt + F8 でマクロを実行
VBAの特徴:
- 数千語句でも処理可能
- ワークシート全体やブック全体に一括適用可能
- 複雑な置換条件も追加可能(例:正規表現)
✅ VBAは繰り返し作業を自動化したい方、業務効率を上げたい方に最適です。
・ 補足:関数 or VBA、どちらを使うべき?
| 方法 | 特徴 | おすすめユーザー |
|---|---|---|
| 関数 | 複雑な設定なし・元データを残せる | 初心者・関数慣れしている人向け |
| VBA | 1クリックで大量処理・作業を自動化できる | 上級者・作業効率を追求したい人向け |
✅ Power Queryを使って複数語句を一括置換(GUI操作OK)
Excel 2016以降なら、Power Queryを活用して複数の置換ルールを視覚的に管理することが可能です。
操作手順:
- データタブ →「テーブルまたは範囲から」
- Power Queryエディタが開く
- 対象列の見出しを右クリック →「値の置換」
- 複数の置換ルールを次々に追加
- 完了後「閉じて読み込む」でExcelに戻る
特徴:
- GUIで簡単に複数語句を置換
- 処理履歴が残るため、修正・再利用が容易
- 定期的な更新があるデータの加工に最適
✅ 関数やVBAが苦手な方でも、ビジュアルで直感的に操作可能です。
■ よくある置換時の注意点とエラー対処法
トラブル①:一部の置換が反映されない
- 原因: 全角・半角、空白、改行などの違い
- 対策:
LEN()やCODE()関数で文字コードを確認する
トラブル②:置換しすぎて意図しない変換になる
- 例:「商品A」と「商品AB」の両方が変換される
- 対策:
LookAt:=xlWhole(完全一致)を指定する、または正規表現を活用(VBA)
トラブル③:関数が複雑になりすぎて読みづらい
- 対策:
- サポート列を使って段階的に置換
LET関数(Excel 365以降)で変数化してスッキリさせる- VBAやPower Queryに切り替える
■ まとめ|Excelでの複数置換を一括処理して作業効率を最大化しよう
Excelで複数の置換を一括で処理したいとき、状況に応じて最適な方法を選ぶことで、作業時間の短縮と精度向上が実現できます。
・方法別まとめ
| 方法 | 特徴 | 向いているケース |
|---|---|---|
| Ctrl + H(検索と置換) | 最も手軽で即効性あり | 1語ずつ処理でOKな場合 |
| SUBSTITUTE関数 | セル単位の複数置換に最適 | 表記統一・記号削除 |
| REPLACE関数 | 位置指定型の置換 | 固定構造のデータ(ID・コードなど) |
| VBAマクロ | 大量データ・複数語句の自動化に対応 | 高速処理が必要な業務・繰り返し処理 |
| Power Query | 視覚的・再利用性が高い | テーブル型データのルール変換・定期処理 |
文字列の置換はExcel業務の基本中の基本ですが、正しい方法を使えば、作業はもっと早く・安全に・スマートに進められます。
ぜひこの記事を参考に、あなたの業務にぴったりな「一括置換」方法を見つけて、作業効率を大きく改善してください。