
【Excel】文字列置換関数REPLACE/REPLACEBとSUBSTITUTEを徹底比較
このページでは、Excelで利用できる文字列置換の関数であるREPLACE/REPLACEBとSUBSTITUTEについて、初心者にもわかりやすく詳しく解説しています。各関数の基本的な使い方や具体的な例を多数ご紹介しますので、ぜひ参考にしてください。
目次
はじめに
Excelで作業をしていると、文字列の一部を変更したい、不要な部分を削除したいといった場面がよくあります。そんなときに活躍するのがREPLACE/REPLACEBとSUBSTITUTEの各関数です。
これらの関数は、手作業で文字を編集する手間を大幅に省いてくれるため、データのクリーニングやレポート作成に非常に役立ちます。
初めての方でも、ここでご紹介する具体例を参考にすれば、すぐに使いこなすことができるでしょう。
REPLACEとREPLACEBの基本
REPLACE関数は、指定した位置から特定の文字数を削除し、その場所に新しい文字列を挿入するための関数です。基本的な書式は次の通りです。
=REPLACE(元の文字列, 開始位置, 文字数, 新しい文字列)
この関数では、置換を開始する位置と、置き換える文字数を明示的に指定します。
一方、REPLACEB関数はREPLACEと同様の機能を持ちますが、文字数ではなくバイト数を基準に置換を行います。特に日本語などのマルチバイト文字を扱う場合に効果を発揮します。
REPLACEBの書式は以下のようになります。
=REPLACEB(元の文字列, 開始バイト位置, バイト数, 新しい文字列)
全角文字は通常2バイトとカウントされるため、正確な文字数を把握する必要がある場合はREPLACEBを使用すると便利です。
REPLACEの使用例
例1: 単純な文字置換
元の文字列「ABCDE」のうち、2文字目から3文字を「XYZ」に置き換える場合、次のように記述します。
=REPLACE(“ABCDE”, 2, 3, “XYZ”)
この式は、「A」+「XYZ」+「E」となり、結果は「AXYZE」となります。
例2: 文字列の一部を削除
日付の区切り記号など、特定の文字を削除したいときにもREPLACEは有効です。たとえば、文字列「2023-04-15」から最初のハイフンを削除する場合は、
=REPLACE(“2023-04-15”, 5, 1, “”)
結果として「202304-15」となります。必要に応じて、さらに別のREPLACE関数を用いて残りのハイフンも削除できます。
例3: 部分文字列の変更
文字列「abcdefg」の中の「cde」を「123」に置換する場合、
=REPLACE(“abcdefg”, 3, 3, “123”)
実行すると、「ab123fg」という結果が得られます。
REPLACEBの使用例
例1: 全角文字の置換
全角文字を含む文字列「あいうえお」で、2文字目から2文字分(合計4バイト)を「かき」に置換する場合、
=REPLACEB(“あいうえお”, 3, 4, “かき”)
全角文字は各2バイトとして計算されるため、結果は「あいかきお」となります。
例2: 部分文字列の削除
文字列「日本語テスト」から「語テ」を削除するには、正確なバイト位置とバイト数を指定する必要があります。例えば、
=REPLACEB(“日本語テスト”, 5, 4, “”)
この式を実行すると、「日本スト」という結果が得られます。使用する前に、バイト数の計算に注意してください。
SUBSTITUTEの使用例
SUBSTITUTE関数は、指定した文字列内で特定の文字列を全て、または指定した回数だけ別の文字列に置換する関数です。書式は以下の通りです。
=SUBSTITUTE(元の文字列, 検索文字列, 置換文字列, [置換対象の出現回数])
例1: 全ての置換
文字列「apple, banana, apple, cherry」において、「apple」を「orange」にすべて置換する場合、
=SUBSTITUTE(“apple, banana, apple, cherry”, “apple”, “orange”)
結果は「orange, banana, orange, cherry」となります。
例2: 指定回数の置換
同じく文字列「dog, dog, cat, dog」で、2回目に出現する「dog」だけを「wolf」に置換したい場合、
=SUBSTITUTE(“dog, dog, cat, dog”, “dog”, “wolf”, 2)
この場合、結果は「dog, wolf, cat, dog」となります。
例3: 特定部分の変更
文字列「2023年04月15日」で、「年」を「/」に置換する例では、
=SUBSTITUTE(“2023年04月15日”, “年”, “/”)
この式により、結果は「2023/04月15日」となり、必要に応じて他の記号も同様に変更することが可能です。
注意点と活用方法
REPLACE関数とSUBSTITUTE関数は、似た目的で使用されますが、用途に応じた使い分けが必要です。
REPLACE関数は、置換開始位置と文字数を指定するため、置換する部分が常に同じ位置にある場合に最適です。
一方、SUBSTITUTE関数は、文字列の中から特定のパターンを検索して置換するため、文字の位置が一定でない場合に有効です。
さらに、SUBSTITUTEではオプション引数を使って、置換対象の出現回数を指定することができるので、特定の箇所だけを変更する場合に柔軟に対応できます。
これらの関数を理解し、適切に使い分けることで、Excelでのデータ処理が大幅に効率化されます。
また、複数の関数を組み合わせることで、より複雑な文字列操作も可能となります。
その他の応用例
Excelでは、REPLACE/REPLACEBとSUBSTITUTEを組み合わせて、実務で役立つ様々な応用例が考えられます。
例として、電話番号の形式を統一するために、ハイフンを削除して数値のみの形式に変換する場合があります。
このときは、以下のようにSUBSTITUTE関数を利用します。
=SUBSTITUTE(“03-1234-5678”, “-“, “”)
この式の結果は「0312345678」となり、電話番号のデータ整形に役立ちます。
また、住所データに含まれる不要な全角スペースや記号を削除する際にも、SUBSTITUTE関数が有用です。
たとえば、全角スペースを空文字に置換して住所を整形する場合、
=SUBSTITUTE(“東京都 新宿区”, “ ”, “”)
と記述することで、「東京都新宿区」という結果が得られ、データの一貫性が向上します。
さらに、REPLACE関数を活用して、特定の位置にある文字列だけを別の文字に変更することで、定型フォーマットのデータに柔軟に対応できます。
これにより、Excel上でのデータクリーニングやレポート作成がより迅速かつ正確に行えるようになります。
複雑なデータ変換が必要な場合は、これらの関数を他のExcel関数と組み合わせることで、さらに高度な処理も可能です。
例えば、IF関数やLEFT、RIGHT、MID関数と併用することで、条件に応じた動的な文字列操作が実現できます。
実務においては、データの整形やフォーマット変更の自動化が求められるシーンが多く、これらの関数の知識は非常に価値があります。
まとめ
今回の解説では、Excelの文字列置換に関するREPLACE/REPLACEBとSUBSTITUTEの使い方について、初心者向けに詳しく解説しました。
REPLACE/REPLACEBは、指定した位置やバイト数に基づいて文字列を置換するのに適しており、特に全角文字の扱いが重要な場合に有用です。
一方、SUBSTITUTE関数は、指定した文字列パターンをすべて、または特定の回数だけ置換するため、柔軟な文字列操作が可能です。
各例を参考に、実際のExcel作業でこれらの関数を活用すれば、データ処理の効率化が期待できます。
ぜひ、自分の業務に合わせた活用方法を見つけ、より快適なExcel作業を実現してください。
以上、ExcelのREPLACE/REPLACEBとSUBSTITUTEに関する詳細な解説でした。