エクセルで大量のデータを扱っていると、特定の文字や単語を一括で置き換えたいという場面は非常に多いものです。
手作業で1つずつ修正していては時間がかかりすぎますし、ミスも生じやすくなります。
そこで活躍するのが、エクセルの置換機能や関数を使った文字の一括変更です。
本記事では、エクセルで文字を置き換える一括操作について、検索・変更・範囲指定・関数の活用まで幅広く解説していきます。
初心者の方から中級者の方まで役立つ内容となっていますので、ぜひ最後までお読みください。
エクセルで文字を一括置換する最も簡単な方法
それではまず、エクセルで文字を一括置換する基本的な方法について解説していきます。
エクセルには標準機能として「検索と置換」ダイアログが搭載されており、これを使えば瞬時に大量の文字を置き換えることができます。
操作はとてもシンプルで、キーボードショートカット「Ctrl+H」を押すだけでダイアログが開きます。
検索と置換ダイアログの基本操作
「Ctrl+H」を押すと「検索と置換」ダイアログが表示されます。
「検索する文字列」に変更前の文字、「置換後の文字列」に変更後の文字を入力し、「すべて置換」をクリックするだけで一括変更が完了します。
たとえば、「東京」という文字を「大阪」に一括変更したい場合は、検索欄に「東京」、置換欄に「大阪」と入力して実行するだけです。
この操作はシート全体に対して適用されるため、数百・数千件のデータでも一瞬で処理できます。
置換が完了すると、変更された件数がポップアップで表示されるので確認も簡単です。
範囲を指定して置換する方法
シート全体ではなく、特定の範囲だけを対象に置換したい場合は、あらかじめ対象のセル範囲を選択してから「Ctrl+H」を実行します。
選択範囲内のみに置換が適用されるため、意図しないデータの変更を防ぐことができます。
たとえばA列だけを対象にしたい場合は、A列全体を選択してから置換ダイアログを開くのが確実な方法です。
複数の列や飛び飛びのセルも「Ctrl+クリック」で複数選択してから実行できます。
この範囲指定置換は、同じ文字列が複数の意味で使われている場合に特に有効な方法です。
大文字・小文字や全角・半角を区別して置換する方法
「検索と置換」ダイアログの「オプション」ボタンをクリックすると、詳細な検索条件を設定できます。
「大文字と小文字を区別する」にチェックを入れると、「abc」と「ABC」を別々に扱って置換が可能です。
また「セル内容が完全に同一であるものを検索する」にチェックを入れると、セル全体が完全一致する場合のみ置換対象となります。
全角・半角の区別も同様にオプションで設定できるため、データのクレンジング作業にも大変役立ちます。
オプション機能を使いこなすことで、より精度の高い一括置換が実現できるでしょう。
関数を使った文字の置き換え方法
続いては、エクセルの関数を使った文字置き換えの方法を確認していきます。
関数を使う場合は元データを保持したまま別セルに結果を出力できるため、元データを残しつつ変換結果を確認したい場面に適しています。
代表的な関数として「SUBSTITUTE関数」と「REPLACE関数」の2つがあります。
SUBSTITUTE関数の使い方
SUBSTITUTE関数は、文字列の中に含まれる特定の文字を別の文字に置き換える関数です。
書式は「=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])」となります。
=SUBSTITUTE(A1, “東京”, “大阪”)
→ A1セルの「東京」をすべて「大阪」に置き換えた結果を返します。
=SUBSTITUTE(A1, “東京”, “大阪”, 1)
→ A1セルの「東京」のうち、最初に登場するものだけを「大阪」に置き換えます。
第4引数を省略するとすべての該当文字が置換対象になります。
第4引数に数字を指定することで、「何番目の出現箇所だけを置換する」という細かい制御が可能です。
SUBSTITUTE関数は大文字・小文字を区別する点にも注意が必要です。
REPLACE関数の使い方
REPLACE関数は、文字列の指定した位置から指定した文字数分を別の文字列に置き換える関数です。
書式は「=REPLACE(文字列, 開始位置, 文字数, 置換文字列)」となります。
=REPLACE(A1, 3, 2, “XX”)
→ A1セルの3文字目から2文字分を「XX」に置き換えた結果を返します。
REPLACE関数は文字の「内容」ではなく「位置」で置換するため、規則的な位置にある文字を変換したい場合に便利です。
たとえば、商品コードの特定の桁だけを変更するような用途に適しているでしょう。
SUBSTITUTE関数と使い分けることで、あらゆる置換シナリオに対応できます。
複数の文字を連続して置換する方法
複数の文字を同時に置換したい場合は、SUBSTITUTE関数を入れ子(ネスト)にして使う方法が有効です。
=SUBSTITUTE(SUBSTITUTE(A1, “東京”, “大阪”), “神奈川”, “兵庫”)
→ 「東京」を「大阪」に、「神奈川」を「兵庫」に同時置換する例です。
入れ子の数が増えると数式が複雑になりますが、置換パターンが少ない場合は非常に有効な手法です。
多数の置換パターンがある場合は、マクロ(VBA)を活用するとより効率的に処理できます。
ワイルドカードを使った高度な一括検索・置換
続いては、ワイルドカードを使った高度な検索・置換の方法を確認していきます。
ワイルドカードとは、任意の文字列を表す特殊文字のことです。
エクセルの検索と置換ダイアログでは、「?」(任意の1文字)と「*」(任意の文字列)の2つのワイルドカードが使えます。
ワイルドカード「*」の活用方法
「*」はあらゆる文字列(0文字以上)に一致するワイルドカードです。
たとえば検索欄に「東京*」と入力すると、「東京都」「東京タワー」「東京スカイツリー」など「東京」で始まるすべての文字列が対象になります。
これを活用することで、接尾語や前置語が異なる類似データを一括で変更することが可能です。
置換後の文字列に「*」は使えないため、変換後の内容は固定文字列で指定します。
ワイルドカード「?」の活用方法
「?」は任意の1文字に一致するワイルドカードです。
「東京?」と検索すると「東京都」「東京市」など、「東京」の後ろに1文字だけ続く文字列にマッチします。
文字数が決まっているコードや番号の一部を変換したい場合に特に役立つでしょう。
「?」を複数並べれば、文字数を指定した検索が可能です。
ワイルドカードを使う際の注意点
ワイルドカードは便利な一方で、意図せず広い範囲にマッチしてしまうリスクがあります。
必ず「すべて置換」の前に「次を検索」でどのセルがヒットするかを確認するのが安全です。
また、実際の「?」や「*」という文字そのものを検索したい場合は、「~?」「~*」のように「~(チルダ)」を前に付けてエスケープする必要があります。
ワイルドカード使用時は必ず事前に「次を検索」で対象セルを確認してから「すべて置換」を実行しましょう。意図しないデータ変更を防ぐために、対象範囲を選択してから実行することも重要です。
マクロ(VBA)を使った文字の一括置換
続いては、マクロ(VBA)を使った文字の一括置換方法を確認していきます。
VBAを活用すると、複数のシートや複数のファイルにまたがる大規模な置換処理を自動化できます。
定期的に同じ置換処理を行う業務であれば、一度マクロを作成しておくと大幅な時間短縮が可能です。
基本的なVBA置換コード
VBAでの置換処理は「Replace」メソッドや「Cells.Replace」を使って記述します。
Sub 一括置換()
Cells.Replace What:=”東京”, Replacement:=”大阪”, LookAt:=xlPart
End Sub
このコードを実行すると、シート内の「東京」をすべて「大阪」に置換します。
「LookAt:=xlPart」はセルの一部に一致する場合に置換、「LookAt:=xlWhole」はセル全体が一致する場合のみ置換します。
用途に応じて適切なオプションを選ぶと精度が上がります。
複数シートを対象にした一括置換マクロ
複数シートを対象にするには、シートをループ処理するコードを書きます。
Sub 全シート一括置換()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Cells.Replace What:=”旧文字”, Replacement:=”新文字”, LookAt:=xlPart
Next ws
End Sub
このマクロを実行するだけで、ブック内のすべてのシートに対して一括置換が適用されます。
大量のシートを持つファイルでの作業効率が劇的に向上するでしょう。
VBA使用時の注意点とバックアップの重要性
VBAによる置換処理は「Ctrl+Z」での取り消しができない場合があります。
必ず実行前にファイルのバックアップを取っておくことが重要です。
また、マクロを含むファイルは「.xlsm」形式で保存する必要があります。
テスト用のデータで動作確認をしてから本番データに適用するのが安全な手順です。
まとめ
本記事では、エクセルで文字を一括置換する方法について、基本操作から関数・ワイルドカード・VBAまで幅広く解説しました。
日常的な作業には「Ctrl+H」の検索と置換が最も手軽で便利です。
元データを保持しながら変換したい場合はSUBSTITUTE関数やREPLACE関数が有効です。
より高度な条件での置換にはワイルドカード、定期的な大規模処理にはVBAマクロが適しています。
用途に応じて最適な方法を選び、エクセルでの文字一括置換を効率よく活用していきましょう。