エクセル REPLACE 関数:文字列を指定した位置から置換する

はじめに

エクセルの REPLACE 関数の使い方を紹介します。

REPLACE 関数は、文字列を指定した位置から文字数だけ置換します。

=REPLACE("ABCDE",2,3,"_") のようにして、2 文字目から 3 文字を A_E に置換できます。

=REPLACE("ABCDE",2,LEN("ABCDE"),"_") のようにして、2 文字目から最後まで A_ のように置換できます。

=REPLACE("ABCDE",2,0,"_") のようにして、2 文字目に A_BCDE のように挿入できます。

検索ワードを置換するには「SUBSTITUTE 関数」を使用します。
検索列を置換する方法は「文字列を置換や挿入する」をご覧ください。
  • 目次
    • REPLACE 関数の引数
    • 使い方
    • 高度な使い方
    • 解説

REPLACE 関数の引数

REPLACE(置換対象, 開始位置, 文字数, 置換ワード)
置換対象開始位置から文字数分の文字を置換ワードに置換します。

引数「置換対象」置換対象の文字列を指定します。スピル化
引数「開始位置」置換を開始する位置を指定します。先頭の文字が 1 です。スピル化
引数「文字数」置換する文字数を指定します。スピル化
引数「置換ワード」置換する文字列を指定します。スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

使い方

REPLACE 関数の使い方を紹介します。

2 文字目から 3 文字を置換する

セル「B3」の 2 文字目から 3 文字を _ に置換します。

=REPLACE(B3,2,3,"_")
5

開始位置と文字数を指定して置換する

12345 の開始位置から指定した文字数を置換します。

=REPLACE(B3,C3,D3,"_")

文字数を 0 にすると開始位置に挿入できます。

6

最後の文字まで置換する

12345 の開始位置から最後まで置換します。「LEN 関数」を使用して文字数を取得できます。

=REPLACE(B3,C3,LEN(B3),"_")
7

開始位置に文字を挿入する

12345 の開始位置に _ を挿入します。引数「文字数」に 0 を入力して挿入できます。

=REPLACE(B3,C3,0,"_")
14

高度な使い方

REPLACE 関数と他の関数を組み合わせた使い方などを紹介します。

後ろから置換する

引数「開始位置」に 文字数 - 開始位置 + 1 のように入力して、開始位置を後ろから指定できます。「LEN 関数」を使用して文字数を取得できます。

=REPLACE(B3,LEN(B3)-C3+1,1,"_")
8

後ろから何文字目まで置換する

引数「文字数」に 文字数 - 終了位置 - 開始位置 + 2 のように入力して、後ろから何文字目の終了位置を指定できます。「LEN 関数」を使用して文字数を取得できます。

=REPLACE(B3,C3,LEN(B3)-D3-C3+2,"_")
9

特定の文字より前を置換する

FIND 関数」を使用して、特定の文字の位置を取得できます。引数「文字数」に 検索位置 - 1 のように入力して、特定の文字の前を置換できます。

=REPLACE(B3,1,FIND(C3,B3)-1,"文字")
12

特定の文字より後ろを置換する

FIND 関数」を使用して、特定の文字の位置を取得できます。引数「開始位置」に 検索位置 + 1 のように入力し、引数「文字数」に 文字数 のように入力して、特定の文字の後ろを置換できます。「LEN 関数」を使用して文字数を取得できます。

=REPLACE(B3,FIND(C3,B3)+1,LEN(B3),"文字")
13

特定の文字の範囲を置換する

12[45]78 から [] で囲まれた 45 を置換します。

FIND 関数」を使用して、特定の文字の位置を取得できます。引数「開始位置」に 開始検索位置 + 1 を入力し、引数「文字数」に 終了検索位置 - 開始検索位置 - 1 を入力して、特定の文字で囲まれた範囲を置換できます。

=REPLACE(B3,FIND("[",B3)+1,FIND("]",B3)-FIND("[",B3)-1,"範囲")
10

12_45_78 のように同じ文字で囲まれているときは、引数「文字数」に 2 番目の検索位置 - 開始検索位置 - 1 を入力して置換できます。

=REPLACE(B3,FIND("_",B3)+1,FIND("_",B3,FIND("_",B3)+1)-FIND("_",B3)-1,"範囲")

LET 関数」を使用できるバージョンなら次のように入力できます。

=LET(開始,FIND("_",B3),
終了,FIND("_",B3,開始+1),
REPLACE(B3,開始+1,終了-開始-1,"範囲"))
11

解説

検索ワードを置換するには「SUBSTITUTE 関数」を使用します。

引数「開始位置」が 2 で引数「文字数」が 1 なら、引数「置換対象」の 2 文字目から 1 文字を置換します。ABCA_C

引数「開始位置」が引数「置換対象」の文字数を超えるときは、最後の文字の後ろに引数「置換ワード」を挿入します。

引数「開始位置」に 0 以下や数値以外のときはエラー #VALUE! になります。

引数「文字数」が 0 なら、引数「開始位置」の位置に引数「置換ワード」を挿入します。

引数「文字数」が引数「置換対象」の文字数を超えるときは、最後の文字まで置換します。

引数「文字数」がマイナスの値や数値以外のときはエラー #VALUE! になります。

セルの書式設定から表示形式を指定しているときは、それを適用する前の値を置換します。日付や時間など表示形式を適用した状態から置換するには「TEXT 関数」を使用します。