Menu

SUBSTITUTE関数とREPLACE関数の使い方: 文字列を置き換える

=SUBSTITUTE(A2,"-","")はA2のハイフンをすべて取り除きます。SUBSTITUTEは文字列の内容で探して置き換えます。REPLACEは位置で置き換え、=REPLACE(A2,1,3,"XYZ")は先頭の3文字を上書きします。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=SUBSTITUTE(A2,"-","")は、A2の文字列からハイフンをすべて取り除きます。SUBSTITUTEは古い文字列を探し、その場所に新しい文字列、ここでは空の文字列を入れます。=SUBSTITUTE(A2,"-",".")なら、ハイフンをそれぞれピリオドに変えます。

電話番号からハイフンを取り除く
B2
ABC
1PhoneDigits onlyWith dots
2555-201-33445552013344555.201.3344
3555-870-11225558701122555.870.1122
4555-433-90015554339001555.433.9001
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

数字だけが残っても、結果は文字列です。数値が必要なときは前に--を付けます:=--SUBSTITUTE(A2,"-","")。

SUBSTITUTEとREPLACEの違い

=SUBSTITUTE(text, old_text, new_text, [instance_num])
=REPLACE(old_text, start_num, num_chars, new_text)

SUBSTITUTEは内容を探すので、old_text(検索文字列)がどこにあっても構いません。REPLACEは何も探さず、文字を数えてstart_num(開始位置)からnum_chars(文字数)分を上書きします。

内容で一致させるか、位置で一致させるか
B2
AB
1TextResult
2Report 2025 finalReport 2026 final
3Report 2025 finalReport 2026 final
4ID-0042SKU-0042
55551234555-1234
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
  • B2とB3は同じ結果になりますが、B3がうまくいくのは年が8文字目から始まっているからにすぎません。文字列が変わっても、SUBSTITUTEは見つけますがREPLACEは見つけません。
  • B4は、中身にかかわらず先頭の2文字をSKUに置き換えます。
  • B5は長さに0を指定しています。何も取り除かれないので、REPLACEは3文字目の後にハイフンを挿入します。指定した位置に文字を挿入する定番の方法です。

文字列がわかっているならSUBSTITUTEを、位置がわかっているならREPLACEを使います。位置で編集するときはFINDで位置を求められます。=REPLACE(A2,FIND(" ",A2),1,"_")は最初のスペースを置き換えます。

2番目(n番目)だけを置き換える

SUBSTITUTEの4つ目の引数は、何番目に出てくるものを変えるかを選びます。省略するとすべて変わります:

置換対象の指定
B3
AB
1PathResult
22026-03-15-final2026/03/15/final
32026-03/15-final
42026-03-15 final
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

B2はハイフンをすべて変えます。2を指定したB3は2番目のハイフンだけを変えて2026-03/15-finalになり、B4は3番目をスペースに変えます。一致する数より大きい番号を指定すると、何も変わりません。

プラン名を変える
B2
AB
1PlanNew name
2Basic monthly
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2で、数式を使ってA2のプラン名のBasicをStandardに置き換えてください。

複数の種類の文字を取り除く

SUBSTITUTEが1回で扱えるold_textは1つです。複数あるときは入れ子にします。それぞれが内側の結果に対して動きます。

電話番号をきれいにする
B2
AB
1PhoneDigits
2(555) 201-33445552013344
3(555) 870-11225558701122
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

内側から順に読みます。(を取り除き、次に)、-、最後にスペースを取り除きます。Microsoft 365では、=REGEXREPLACE(A2,"[^0-9]","")が数字以外のすべての文字を一度に取り除きます。余分なスペースに限るなら、単語の間のスペースを1つ残すTRIMのほうが向いています。

文字や単語が出てくる回数を数える

空の文字列を指定したSUBSTITUTEはすべての出現を取り除くので、減った長さが取り除いた文字の数になります。単語を数えるときは、その単語の長さで割ります:

カンマはいくつ、"red"は何回
B2
ABC
1TextCommas"red" appears
2red, green, red, blue32
3Red, red, red22
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C3は3ではなく2を返します。SUBSTITUTEは大文字と小文字を区別するので、Redは取り除かれません。大文字と小文字を問わずに数えるにはSUBSTITUTE(LOWER(A3),"red","")を使います。

タグを数える
B2
AB
1TagsCount
2excel,text,formulas,tips
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: A2のタグはカンマで区切られています。B2で、タグがいくつあるかを数えてください(カンマの数より1つ多くなります)。

よくある間違い: SUBSTITUTEで数値を変える

SUBSTITUTEは数値の文字列に対して動き、結果は文字列です。1050に=SUBSTITUTE(A2,"0","")を使うと文字列の15になり、$1,050.00のような表示形式は無視されます。SUBSTITUTEが読むのは保存されている値1050だからです。数値を変えるには計算を使います。数式を使わずに多くのセルの中の文字列を一度に変えるなら、ホーム > 検索と選択 > 置換(Ctrl+H、MacではControl+H)を使います。「大文字と小文字を区別する」のオプションがあり、その場で置き換えます。

よくある質問

ExcelのSUBSTITUTEとREPLACEの違いは何ですか?

SUBSTITUTEは内容で文字列を探します。=SUBSTITUTE(A2,"old","new")はすべてのoldを変えます。REPLACEは位置で動きます。=REPLACE(A2,5,3,"new")は、中身にかかわらず5文字目から3文字を上書きします。

Excelでセルから特定の文字を削除するには?

空の文字列に置き換えます:=SUBSTITUTE(A2,"-","")はハイフンをすべて取り除きます。複数の文字なら入れ子にします:=SUBSTITUTE(SUBSTITUTE(A2,"(",""),")","")。

セルの中にある文字が何回出てくるか数えるには?

取り除く前と後の長さを比べます。=LEN(A2)-LEN(SUBSTITUTE(A2,",",""))はA2のカンマを数えます。単語なら、その長さで割ります:=(LEN(A2)-LEN(SUBSTITUTE(A2,"red","")))/3。

SUBSTITUTEは大文字と小文字を区別しますか?

区別します。=SUBSTITUTE("Red red","red","blue")はRed blueになります。区別しないようにするには、先に小文字にする=SUBSTITUTE(LOWER(A2),"red","blue")か、既定で大文字と小文字を区別しない「検索と置換」(Ctrl+H)を使います。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める