エクセルで、文字列の何文字目から何文字と位置を指定して置き換えるには、REPLACE関数を使います。たとえば電話番号「090-1234-5678」の真ん中の4桁は、=REPLACE(A3,5,4,"****") で「090-****-5678」と隠せます。
置き換える文字数を 0 にすると文字を挿入、新しい文字を “” にすると文字を削除できます。この記事では、REPLACE関数の基本、挿入と削除、FIND関数と組み合わせた置き換え、SUBSTITUTE関数との違い、REPLACEB関数までを、1つの表で説明します。下の練習ツールで、元の文字列を書き換えて結果の変わり方を試せます。
REPLACE関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 文字列 | 元の文字列(セル番地) | |
| 開始位置 | 何文字目から置き換えるか | 1 なら先頭からです。 |
| 文字数 | 何文字分を置き換えるか | 0 にすると、置き換えずに挿入します。 |
| 置換文字列 | 新しく入れる文字 | “” にすると、その部分を削除します。 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
REPLACE関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| 一部を「****」で隠す | =REPLACE(A3,5,4,”****”) | 090-****-5678 |
| 文字を挿入する | =REPLACE(A4,3,0,”-“) | AB-1023 |
| 先頭の文字を消す | =REPLACE(A5,1,5,””) | 10月21日 |
| 先頭の文字を置き換える | =REPLACE(A6,1,2,”OS”) | OS-5501 |
| 「@」より前を置き換える | =REPLACE(A8,1,FIND(“@”,A8)-1,”info”) | info@example.com |
| 数字8桁を日付の形にする | =REPLACE(REPLACE(A9,7,0,”/”),5,0,”/”) | 2026/10/21 |

位置を指定して置き換える
5文字目の「1」から4文字の「1234」が「****」に置き換わり、結果は 090-****-5678 です。個人情報の一部を隠すときに使えます。
▶ この式(C3)を、練習ツールで試す / この式(C6)を、練習ツールで試す / この式(C7)を、練習ツールで試す
文字を挿入する(文字数を 0 にする)
3つ目の引数を 0 にすると、元の文字を消さずに、開始位置の前に文字を入れます。
「AB1023」の3文字目「1」の前にハイフンが入り、結果は AB-1023 です。
文字を削除する(置換文字列を “” にする)
「2026年10月21日」の先頭5文字「2026年」が消え、結果は 10月21日 です。
FIND関数と組み合わせて置き換える
置き換える位置や文字数が行ごとに違うときは、FIND関数で位置を調べて使います。
「@」は7文字目なので、先頭から6文字の「yamada」が「info」に置き換わり、結果は info@example.com です(FIND関数の使い方)。
数字8桁を日付の形にする(入れ子)
REPLACE関数を入れ子にすると、2か所に文字を入れられます。後ろの位置から先に入れると、前の位置がずれません。
「20261021」の7文字目の前、5文字目の前の順に「/」が入り、結果は 2026/10/21 です。この結果は文字列なので、日付として計算するときは DATEVALUE関数で変換します(DATEVALUE関数の使い方)。
SUBSTITUTE関数との違い
| REPLACE関数 | SUBSTITUTE関数 | |
|---|---|---|
| 置き換える場所の決め方 | 位置(何文字目から何文字) | 文字(「-」など) |
| 向いている場面 | 桁の位置が決まっているコード・番号 | 特定の文字をまとめて置き換える・消す |
| 例 | =REPLACE(A3,5,4,”****”) | =SUBSTITUTE(A3,”-“,””) |
同じ文字を全部置き換えるなら SUBSTITUTE関数が簡単です(SUBSTITUTE関数の使い方)。
バイト数で位置を指定する(REPLACEB)
REPLACEB関数は、位置と文字数をバイト数(全角は2、半角は1)で指定します。「東京都千代田区」の先頭6バイトは全角3文字の「東京都」なので、=REPLACEB(A10,1,6,"大阪府") の結果は 大阪府千代田区 です。
REPLACE関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 1文字ずれる | 開始位置や文字数の数え間違い | LEN関数・FIND関数で位置を確かめる。 |
| 文字が消えてしまう | 挿入のつもりで文字数を 1 以上にした | 挿入するときは文字数を 0 にする。 |
| 数値の先頭の 0 が消える | 元の値が数値で、0 が入っていない | 元の値を文字列で入力するか、TEXT関数で桁をそろえる。 |
| 日付が数字になる | 日付はシリアル値(数値)として置き換えられる | TEXT関数で文字列にしてから使う。 |
REPLACE関数のよくある質問
元のセルの文字を直接書き換えたい
関数は別のセルに結果を出します。結果をコピーして、元のセルに「値」で貼り付けます。
開始位置が文字数より大きいと?
元の文字列の後ろに、置換文字列がそのまま付きます。たとえば =REPLACE("AB",5,1,"C") は「ABC」です。
あわせて読みたい:文字列の関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
