ExcelのREPLACE関数の使い方|位置指定で文字列を置換する方法

スポンサーリンク

電話番号の下4桁を「****」に伏せたい、社員番号の先頭だけ別の文字に差し替えたい。そんなとき「何文字目から何文字を置き換える」と位置で指定できると便利ですよね。REPLACE関数を使えば、開始位置と文字数を指定してピンポイントで文字列を差し替えられます。この記事では基本の書き方から実務で使えるマスキング・データ整形パターンまで、まとめて紹介します。

この記事は次のような人におすすめ

  • セルの中の「何文字目から何文字」を別の文字に差し替えたい
  • 電話番号や個人情報の一部をマスキング(伏字)したい
  • REPLACE関数とSUBSTITUTE関数の違いを知りたい

REPLACE関数とは?

REPLACE(リプレイス)関数は、文字列の中で「何文字目から何文字」を指定し、その部分を別の文字列に置き換える関数です。英語の「replace」は「取り替える」という意味で、位置指定で文字を差し替える専用の関数です。

たとえば「090-1234-5678」の5文字目から4文字(つまり「1234」の部分)を「****」に変えるといった使い方ができます。置き換えたい文字の内容がわからなくても、位置さえわかっていれば確実に置換できるのがポイントです。

Excel 2007以降のすべてのバージョン(Excel 2010、2013、2016、2019、2021、Microsoft 365)で使用できます。

REPLACE関数の書き方(構文と引数)

基本構文

=REPLACE(文字列, 開始位置, 文字数, 置換文字列)

引数の説明

引数必須/省略可説明
文字列必須置換対象のテキスト、またはセル参照
開始位置必須置き換えを始める位置(1から数える)
文字数必須置き換える文字の数(0を指定すると挿入になる)
置換文字列必須置き換え後の文字列(””を指定すると削除になる)

NOTE

4つの引数はすべて必須です。開始位置は「1」が先頭です。0を指定すると先頭より前に挿入されてしまうので注意してください。

REPLACE関数の基本的な使い方

指定した位置の文字を置き換える

セルA1に「ABCDEFG」と入っている場合に、3文字目から2文字(「CD」)を「XX」に置き換えてみます。

=REPLACE(A1,3,2,"XX")

結果は「ABXXEFG」になります。3文字目の「C」から2文字分が「XX」に差し替わりました。

文字を削除する(空文字で置換)

置換文字列に「””」(空文字)を指定すると、該当する位置の文字を削除できます。

=REPLACE(A1,3,2,"")

A1が「ABCDEFG」なら、結果は「ABEFG」です。3文字目から2文字分が消えます。

文字を挿入する(文字数を0にする)

文字数に「0」を指定すると、何も削除せずに文字列を挿入できます。

=REPLACE(A1,3,0,"★")

A1が「ABCDEFG」なら、結果は「AB★CDEFG」です。3文字目の直前に「★」が挿入されます。既存の文字は削除されません。

REPLACE関数の実務活用パターン

電話番号の一部をマスキング(伏字)する

個人情報保護のため、電話番号の一部を「****」で伏せたい場面はよくあります。

=REPLACE(A1,5,4,"****")

A1が「090-1234-5678」の場合、結果は「090-*-5678」になります。5文字目から4文字(「1234」の部分)が「*」に置き換わります。

ハイフンなしの「09012345678」なら、開始位置を調整してください。

=REPLACE(A1,4,4,"****")

結果は「090****5678」です。

名前の一部を非表示にする

顧客名簿で名字だけ表示し、名前を伏せたいケースです。SEARCH関数と組み合わせて、スペース以降を「●●」に置き換えます。

=REPLACE(A1,SEARCH(" ",A1),LEN(A1)-SEARCH(" ",A1)+1,"●●")

A1が「山田 太郎」の場合、SEARCH関数でスペースの位置(3文字目)を取得し、そこから末尾までを「●●」に置き換えます。結果は「山田●●」です。

TIP

SEARCH関数は大文字・小文字を区別しません。完全一致で検索したい場合はFIND関数を使ってください。

郵便番号にハイフンを挿入する

ハイフンなしの郵便番号「1234567」に、4文字目の位置でハイフンを挿入します。

=REPLACE(A1,4,0,"-")

結果は「123-4567」です。文字数を0にしているので、既存の数字は削除されずにハイフンだけが入ります。

社員番号の先頭コードを変更する

部門コードが変わって先頭2文字を差し替えたい場合です。

=REPLACE(A1,1,2,"BD")

A1が「AC12345」なら、結果は「BD12345」です。先頭2文字の「AC」が「BD」に変わります。

REPLACE関数とLEN関数で末尾の文字を置き換える

末尾から何文字を置き換えたい場合は、LEN関数と組み合わせます。

=REPLACE(A1,LEN(A1)-2+1,2,"XX")

A1が「ABCDEFG」なら、LEN(A1)は7なので開始位置は6になり、結果は「ABCDEXX」です。末尾2文字の「FG」が「XX」に変わります。

よくあるエラーと対処法

症状原因対処法
#VALUE!エラー開始位置または文字数に負の値を指定した開始位置は1以上、文字数は0以上の整数を指定してください
#VALUE!エラー開始位置や文字数にテキストを指定した数値として認識できる値を入力してください。セル参照の場合はそのセルが数値か確認します
意図しない位置で置換される開始位置の数え間違い先頭が「1」であることに注意。MID関数で該当位置の文字を確認してから指定すると間違いを防げます
全角文字で位置がずれるREPLACE関数は1文字を1と数える全角も半角も1文字は1です。バイト数で数えたい場合はREPLACEB関数を使ってください
置換後に文字数が変わる置換文字列の長さが元の文字数と異なるREPLACE関数は指定した文字数分を削除してから置換文字列を挿入するため、長さが変わるのは正常な動作です

REPLACE関数とSUBSTITUTE関数の違い

文字列を置き換える関数にはSUBSTITUTE関数もあります。名前が似ていて混同しやすいですが、置換対象の指定方法がまったく異なります。

項目REPLACE関数SUBSTITUTE関数
置換対象の指定位置(何文字目から何文字)で指定文字列で指定
構文=REPLACE(文字列, 開始位置, 文字数, 置換文字列)=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])
得意な場面決まった位置の文字を置き換える特定の文字を探して置き換える
使用例先頭3文字をマスキング・郵便番号にハイフン挿入ハイフン除去・表記統一
大文字・小文字関係なし(位置で指定するため)区別する
複数箇所の同時置換できない(1回の呼び出しで1箇所のみ)検索文字列にヒットする全箇所を一括置換

「何文字目から何文字を変えたい」ならREPLACE関数、「この文字を消したい・変えたい」ならSUBSTITUTE関数です。

たとえば電話番号のハイフンをすべて消したいなら、どこにハイフンがあるかは関係ないのでSUBSTITUTE関数が適しています。一方、電話番号の4桁目から4文字を伏せたいなら、位置が決まっているのでREPLACE関数の出番です。

REPLACEB関数との違い

REPLACEB(リプレイスビー)関数は、REPLACE関数のバイト数版です。

項目REPLACE関数REPLACEB関数
文字の数え方文字数で数える(全角も半角も1文字=1)バイト数で数える(半角=1バイト、全角=2バイト)
構文=REPLACE(文字列, 開始位置, 文字数, 置換文字列)=REPLACEB(文字列, 開始位置, バイト数, 置換文字列)
使い分け通常はこちらで十分半角と全角が混在するデータでバイト単位の制御が必要な場合

通常の業務ではREPLACE関数で十分です。半角カナと全角文字が混在するデータで正確にバイト位置を指定したい場合にREPLACEB関数を使ってください。

=REPLACEB(A1,1,2,"XX")

A1が「あいうえお」の場合、全角の「あ」は2バイトなので、1バイト目から2バイト分(「あ」1文字分)が「XX」に変わります。結果は「XXいうえお」です。

まとめ

REPLACE関数は「何文字目から何文字を別の文字列に置き換える」ための関数です。

  • 開始位置と文字数で置換範囲を指定するので、置き換えたい文字の内容がわからなくても使える
  • 文字数を0にすると、文字列の挿入として使える
  • 電話番号のマスキングや郵便番号へのハイフン挿入など、位置が決まっているデータの加工に便利
  • SUBSTITUTE関数との違いは「位置で指定するか、文字列で指定するか」
  • バイト数で指定したい場合はREPLACEB関数を使う

LEFT関数RIGHT関数と組み合わせれば、文字列の一部を取り出してから加工するなど、さらに応用の幅が広がります。ぜひ活用してみてください。

関連記事

関数一覧

Excel関数の一覧は下記の記事で確認できます。

エラー値が表示される場合は、下記の記事も参考にしてみてください。

タイトルとURLをコピーしました