概要
REPLACE関数は「文字列の一部を指定位置から指定文字数分だけ置き換える」関数です。SUBSTITUTEが「一致する文字列」を置き換えるのに対し、REPLACEは「位置と長さ」で置き換えるのが特徴です。文字列の一部を修正したり、桁数を揃えたり、コードの一部を差し替えるときに便利です。
基本の使い方
書式
=REPLACE(文字列, 開始位置, 文字数, 置き換え文字列)
- 文字列:対象となる文字列やセル
- 開始位置:左から数えて何文字目から置き換えるか
- 文字数:置き換える文字数
- 置き換え文字列:新しく差し込む文字列
例
=REPLACE("ABCDEF", 2, 3, "xxx") // "AxxxEF"
=REPLACE("20251216", 5, 2, "12") // "20251216" → "20251216"(例:月を修正)
=REPLACE("山田太郎", 3, 2, "花子") // "山田花子"
具体例
電話番号の一部をマスクする
=REPLACE(A2, 4, 4, "****")
電話番号の中央部分を「****」に置き換えて個人情報を隠せます。
商品コードの一部を修正する
=REPLACE(B2, 1, 3, "XYZ")
先頭3文字を「XYZ」に差し替え、コード体系を変更できます。
日付文字列の月だけ修正する
=REPLACE(TEXT(C2,"yyyymmdd"), 5, 2, "12")
「20251116」を「20251216」に修正するなど、月部分だけを置き換えられます。
応用テンプレート
固定長コードの一部を差し替え
=REPLACE(D2, 6, 2, "99")
6文字目から2文字を「99」に置き換え、バージョン番号を更新。
末尾の桁を置き換える
=REPLACE(E2, LEN(E2)-1, 2, "00")
文字列の最後2桁を「00」に修正。
名前の一部をニックネームに差し替え
=REPLACE(F2, 3, 2, "ちゃん")
「佐藤太郎」→「佐藤ちゃん」。
数値を文字列化して一部置換
=REPLACE(TEXT(G2,"000000"), 4, 2, "55")
ゼロ埋めした数値の中間桁を差し替え。
よくあるつまずきと対策
開始位置は「1始まり」
Excelの文字列は1文字目から数えます。0や負数は使えません。
文字数が長すぎると末尾まで消える
指定文字数が残り文字数より大きい場合は末尾まで削除されます。必要ならMIN関数で調整しましょう。
=REPLACE(A2, 3, MIN(5,LEN(A2)-2), "X")
数値や日付は文字列化してから
REPLACEは文字列操作なので、数値や日付はTEXT関数で文字列化してから使うのが安全です。
SUBSTITUTEとの違い
- REPLACE:位置と長さで置換
- SUBSTITUTE:一致する文字列を置換
用途に応じて使い分けましょう。
例題
問題1: A2の文字列の3文字目から2文字を「XX」に置き換えてB2に表示してください。
解答例:
=REPLACE(A2, 3, 2, "XX")
問題2: C2の電話番号の中央4桁を「****」に置き換えてD2に表示してください。
解答例:
=REPLACE(C2, 4, 4, "****")
問題3: E2の日付文字列「yyyymmdd」の月部分を「12」に修正してF2に表示してください。
解答例:
=REPLACE(E2, 5, 2, "12")
問題4: G2のコードの末尾2桁を「00」に置き換えてH2に表示してください。
解答例:
=REPLACE(G2, LEN(G2)-1, 2, "00")
問題5: I2の名前の3文字目から2文字を「花子」に置き換えてJ2に表示してください。
解答例:
=REPLACE(I2, 3, 2, "花子")
まとめ
REPLACEは「文字列の位置と長さを指定して置き換える」関数です。部分的な修正、マスク処理、コード更新などに役立ちます。開始位置は1から数えること、数値や日付はTEXTで文字列化してから扱うことを押さえれば、初心者でも安心して使えます。講師として強調したいのは「REPLACEは位置指定、SUBSTITUTEは語指定」。この違いを理解すれば、文字列処理の幅がぐっと広がります。
