エクセルで、文字列の中の特定の文字を別の文字に置き換えるには、SUBSTITUTE関数を使います。たとえば、電話番号「090-1234-5678」のハイフンを消すなら、=SUBSTITUTE(A3,"-","") で「09012345678」になります。
置き換え後を「””」(空の文字)にすれば削除、4つ目の引数を使えば何番目だけ置き換えるかを指定できます。この記事では、SUBSTITUTE関数の基本、削除・何番目だけの置き換え・複数の文字の置き換え・文字の数を数える方法までを、1つの表で説明します。下の練習ツールで、元の文字列を書き換えて結果の変わり方を試せます。
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
SUBSTITUTE関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 文字列 | 置き換える元の文字列(セル番地) | 結果は文字列になります。 |
| 検索文字列 | 置き換えたい文字(「”」で囲む) | 大文字・小文字、全角・半角を区別します。 |
| 置換文字列 | 置き換えた後の文字 | 「””」にすると、その文字を削除できます。 |
| 置換対象 | 何番目を置き換えるか(省略可) | 省略すると、見つかった文字をすべて置き換えます。 |
SUBSTITUTE関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| ハイフンを消す | =SUBSTITUTE(A3,”-“,””) | 09012345678 |
| 全角の空白を半角にする | =SUBSTITUTE(A4,” ”,” “) | 山田 太郎 |
| 「.」を「/」にする | =SUBSTITUTE(A5,”.”,”/”) | 2026/10/21 |
| 2つ目だけ置き換える | =SUBSTITUTE(A6,”-“,”_”,2) | AB-12_34 |
| 特定の言葉を消す | =SUBSTITUTE(A7,”株式会社”,””) | みどり商事 |
| 「,」の数を数える | =LEN(A8)-LEN(SUBSTITUTE(A8,”,”,””)) | 2 |
| 2種類の文字を消す | =SUBSTITUTE(SUBSTITUTE(A10,”(“,””),”)”,””) | 株山田商店 |

特定の文字を消す(削除)
電話番号のハイフンを消します。置換文字列を「””」(空の文字)にするのがポイントです。
ハイフンが2つともなくなり、結果は 09012345678 です。先頭の「0」も文字列なので消えません。会社名から「株式会社」を消す =SUBSTITUTE(A7,"株式会社","") も同じ考え方で、結果は みどり商事 です。ハイフンの削除は電話番号のハイフンを削除する方法でもくわしく説明しています。
▶ この式(C3)を、上の練習ツールで試す / この式(C7)を、上の練習ツールで試す
文字を別の文字に置き換える
全角の空白を半角にそろえるときは、検索文字列に全角の空白、置換文字列に半角の空白を入れます。
結果は 山田 太郎(半角の空白)です。「2026.10.21」の「.」を「/」にする =SUBSTITUTE(A5,".","/") は 2026/10/21 になります。
=SUBSTITUTE(A5,".","/")+0 のように数値に変えると、日付のシリアル値(46316)になりました。表示形式を日付にすると「2026/10/21」と表示されます。▶ この式(C4)を、上の練習ツールで試す / この式(C5)を、上の練習ツールで試す
何番目の文字だけを置き換える(置換対象)
「AB-12-34」の2つ目のハイフンだけを「_」にするには、4つ目の引数に「2」を入れます。
結果は AB-12_34 です。1つ目のハイフンはそのまま残ります。文字の数より大きい番号(5 など)を指定すると、何も置き換わらず元の文字列のままになりました。
複数の種類の文字を置き換える(入れ子)
「(」と「)」のように2種類の文字を消すときは、SUBSTITUTE関数を入れ子(中にもう1つ)にします。
内側で「(」を消し、外側で「)」を消すので、結果は 株山田商店 です。3種類以上でも、同じように重ねていけます。
特定の文字の数を数える(LEN+SUBSTITUTE)
元の文字数から、その文字を消した後の文字数を引くと、その文字がいくつあるかが分かります。
「りんご,みかん,ぶどう」は 11 文字、「,」を消すと 9 文字なので、結果は 2 です。くわしくは特定の文字の個数を数える方法を参照してください。
大文字・小文字は区別される
SUBSTITUTE関数は大文字と小文字を区別します。「Excel」の小文字の「e」だけを大文字にする =SUBSTITUTE(A9,"e","E") は、先頭の「E」はそのままで、結果は ExcEl です。
SUBSTITUTE関数と REPLACE関数の違い
| 関数 | 置き換える場所の決め方 | 向いている場面 |
|---|---|---|
| SUBSTITUTE | 「どの文字か」で決める | ハイフン・空白など、決まった文字を消す・変える |
| REPLACE | 「何文字目から何文字」で決める | 位置が決まっている部分を置き換える |
同じ電話番号でも、=REPLACE(A3,4,1,"") は4文字目の1文字だけを消すので「0901234-5678」になります(REPLACE関数の使い方)。
SUBSTITUTE関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 置き換わらない | 全角・半角、大文字・小文字が違う | 検索文字列を元の文字列と同じ種類にする。 |
| 空白が消えない | 全角と半角の空白が混ざっている | 全角用・半角用の SUBSTITUTE を入れ子にする。TRIM関数も検討する。 |
| 数値として計算できない | 結果が文字列になっている | 「+0」を付けるか VALUE関数を使う(VALUE関数)。 |
| 一部だけ置き換えたいのに全部変わる | 置換対象を省略している | 4つ目の引数に番号を入れる。 |
SUBSTITUTE関数のよくある質問
改行を消したいときは?
改行は CHAR(10) で表します。=SUBSTITUTE(A1,CHAR(10),"") で消せます(改行を削除する方法)。
関数を使わずに置き換えたいときは?
Ctrl+H の「置換」を使うと、セルの中身そのものを書き換えられます(検索・置換の使い方)。
あわせて読みたい:文字列の関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
2つの文字列が同じかを確かめるときは、エクセルで文字列を比較する方法もあわせてご覧ください。
