Excelでセルから文字を削除する10の方法を徹底解説
この記事では、Excelでセルから文字(英字)を削除する方法を、初心者でもわかりやすいように詳しく解説します。
練習用ワークブックのダウンロード
この記事で使用している練習用のExcelワークブックは、無料でダウンロードできます。実際に手を動かしながら学ぶことで、理解がより深まります。
Excelでセルから文字を削除する10の方法
ここからは、Excelのコマンドツール、各種関数、VBAなどを使ってセルから文字を削除する方法を順番に紹介していきます。目的やデータ量に応じて最適な方法を選べるように、それぞれの手順と特徴を丁寧に説明します。
方法1:「検索と置換」機能で特定の文字を削除する
検索と置換コマンドは、Excelでの作業において最も簡単かつ一般的に使われる機能です。まずは、この「検索と置換」機能を使って文字を削除する方法を見ていきましょう。
以下のようなデータセットを例にします。Code列のセルからすべての英字(WWE)を取り除き、数字だけを残します。

手順:
- データセット全体を選択します。
- ホームタブから 検索と選択 → 置換 をクリックします。

- 表示された「検索と置換」ダイアログボックスの「検索する文字列」欄に WWE と入力します。
- 「置換後の文字列」欄は空欄のままにしておきます。

- 「すべて置換」ボタンを押します。

これで、データセット内のすべてのセルからWWEが消去され、数字のみが残ります。
方法2:SUBSTITUTE関数で特定の文字を削除する
「検索と置換」コマンドとは異なり、数式を使う方法は元のデータを変更せずに結果を得られるため、最も安全で管理しやすい方法です。特定の文字を含まない出力结果を得たい場合は、SUBSTITUTE関数を活用しましょう。
SUBSTITUTE関数の基本構文:
=SUBSTITUTE(セル, "置換前の文字列", "置換後の文字列")
- 置換前の文字列:削除したいテキスト
- 置換後の文字列:代わりに入れるテキスト
前のセクションと同じデータセットを使用し、今回は検索と置換ではなくSUBSTITUTE関数で文字を削除してみます。
手順:
- 結果を表示したい空のセルに、次の数式を入力します。
=SUBSTITUTE(C5,"WWE","")
- C5:文字を削除したい値が入ったセル
- "WWE":削除したい文字列
- "":WWEを空文字列に置き換える指定
- Enterキーを押します。

これで、すべてのWWE(または指定した任意のテキスト)が空文字列に置き換えられます。
- フィルハンドルを使って数式を下方向にドラッグし、残りのセルにも適用します。

これで、英字が取り除かれたデータセットの結果が得られます。
方法3:SUBSTITUTE関数で特定の位置の文字だけを削除する
ここまでの方法では、セル内のすべての英字を削除してきました。しかし、「何番目に出てくる文字だけを削除したい」というケースもあります。
例えば、セル内の2番目以降の「WE」だけを削除し、最初のWと数字はそのまま残したい場合です。
手順:
- 先ほどのSUBSTITUTE関数と同様ですが、今回は削除したい文字の出現位置を指定します。
先ほどの数式:
=SUBSTITUTE(C5,"WWE","")
これを次のように変更します。
=SUBSTITUTE(C5,"WE","",1)
末尾の1は「1番目に出現する該当文字列を削除する」という意味です(2番目を削除したい場合は2、3番目なら3と指定します)。
- Enterキーを押します。

- 同様にフィルハンドルで数式を下方向へドラッグして適用します。

これで、最初のWと数字だけが残った結果が得られます。
方法4:ネストしたSUBSTITUTE関数で複数の文字を一度に削除する
SUBSTITUTE関数は1回につき1種類の文字列しか削除できません。そのため、複数の異なる文字を同時に削除したい場合は、SUBSTITUTE関数を入れ子(ネスト)にする必要があります。
手順:
- ネストしたSUBSTITUTE関数を作るには、あるSUBSTITUTE関数の中に別のSUBSTITUTE関数を記述し、それぞれに適切な引数を渡します。イメージは下の画像をご覧ください。

例えば、C5セルからWを削除するには、まず次の数式を書きます。
=SUBSTITUTE(C5,"W","")
さらにEも一緒に削除したい場合は、この数式全体を別のSUBSTITUTE関数の中に入れ、引数として"E",""を渡します。
完成した数式は以下の通りです。
=SUBSTITUTE(SUBSTITUTE(C5,"W",""),"E","")
- Enterキーを押すと、すべてのWとEが空文字列に置き換えられます。
- フィルハンドルで数式を下方向へドラッグして適用します。

これで、英字がすべて除去されたデータセットの結果が得られます。
方法5:数式で先頭または末尾の文字を削除する
このセクションでは、数式を使ってセルの先頭または末尾の文字を削除する方法を解説します。
5.1 先頭の文字を削除する
手順:
- 結果を表示したいセルを選択します。
- そのセルに次の数式を入力します。
=RIGHT(C5, LEN(C5)-3)
- C5:文字を削除したいセル
- Enterキーを押します。

これでセルの先頭から文字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

すべてのセルの先頭から文字が削除されました。
数式の解説
- LEN(C5) → LEN関数はC5セルの文字数を返します。
- 結果:6
- LEN(C5)-3 → 計算すると
- 6-3
- 結果:3
- RIGHT(C5, LEN(C5)-3) → 計算すると
- RIGHT(C5, 3)
- 結果:101
- 説明:C5セルの先頭3文字を削除しています。
5.2 末尾の文字を削除する
手順:
- 結果を表示したいセルを選択します。
- そのセルに次の数式を入力します。
=LEFT(C5, LEN(C5)-2)
- C5:文字を削除したいセル
- Enterキーを押します。

これでセルの末尾から文字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

すべてのセルの末尾から文字が削除されました。
数式の解説
- LEN(C5) → C5セルの文字数
- 結果:6
- LEN(C5)-2 → 計算すると
- 6-2
- 結果:4
- LEFT(C5, LEN(C5)-2) → 計算すると
- LEFT(C5, 4)
- 結果:WWE1
- 説明:C5セルの末尾2文字を削除しています。
方法6:数式で先頭と末尾の両方の文字を削除する
続いて、セルの先頭と末尾の両方から文字を削除する方法を紹介します。
手順:
- 結果を表示したいセルを選択します。
- そのセルに次の数式を入力します。
=MID(C5,3,LEN(C5)-4)
- C5:文字を削除したいセル
- Enterキーを押します。

これでセルの先頭と末尾の両方から文字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

すべてのセルの先頭と末尾から文字が削除されました。
数式の解説
- LEN(C5) → C5セルの文字数
- 結果:6
- LEN(C5)-4 → 計算すると
- 6-4
- 結果:2
- MID(C5,3,LEN(C5)-4) → 計算すると
- MID(C5,3,2)
- 結果:E1
- 説明:MID関数を使い、C5セルの3文字目から2文字分を抽出することで、先頭と末尾の文字を削除しています。
方法7:配列数式で文字を削除する
大量のデータを扱う場合は、より強力な方法が必要です。配列数式を使えば、大容量データに対しても素早く効率的に処理できます。
ここでは、配列数式でセルから英字を削除する方法を紹介します。
手順:
- 結果を表示したいセルを選択します。
- そのセルに次の数式を入力します。
=SUM(MID(0&C5,LARGE(INDEX(ISNUMBER(--MID(C5,ROW($1:$99),1))*ROW($1:$99),),ROW($1:$99))+1,1)*10^ROW($1:$99)/10)
- C5:文字を削除したいセル
- Enterキーを押します。

これでセルからすべての英字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

データセット内のすべてのセルから英字が削除されました。
注意点:
- この配列数式は、数字以外の文字(英字・特殊文字など)をすべて削除します。例えば、元の文字列が abc*123-def の場合、数字以外をすべて取り除いて 123 を返します。
- 元の文字列に数字が1つも含まれていない場合は、0 を返します。
方法8:VBAのユーザー定義関数(UDF)で先頭または末尾の文字を削除する
VBAマクロは、Excelであらゆる操作を実行する際に最も効果的で、速く、安全な方法です。このセクションでは、VBAのユーザー定義関数(UDF)を使ってセルから文字を削除する方法を学びます。
8.1 先頭の文字を削除するVBAコード
手順:
- キーボードで Alt + F11 を押すか、開発 → Visual Basic タブからVisual Basic Editor(VBE)を開きます。

- 開いたコードウィンドウで、メニューバーから 挿入 → 標準モジュール をクリックします。

- 以下のコードをコピーして、コードウィンドウに貼り付けます。
Public Function DeleteFirstL(Irng As String, Icnt As Long)
DeleteFirstL = Right(Irng, Len(Irng) - Icnt)
End Function
これは実行するSubプロシージャではなく、ユーザー定義関数(UDF)を作成するコードです。そのため、コードを書いたらメニューバーの実行ボタンではなく「保存」をクリックしてください。

- 対象のワークシートに戻り、作成した関数(コード1行目のDeleteFirstL)を入力します。括弧内には、文字を削除したいセル参照(ここではB5)と、削除したい文字数(先頭3文字を削除したいので3)を渡します。
- Enterキーを押します。

これでセルの先頭から文字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

すべてのセルの先頭から3文字が削除されました。
8.2 末尾の文字を削除するVBAコード
手順:
- 同じ要領で、開発タブからVisual Basic Editorを開き、コードウィンドウに標準モジュールを挿入します。
- コードウィンドウに、以下のコードをコピーして貼り付けます。
Public Function DeleteLastL(Irng As String, Icnt As Long)
DeleteLastL = Left(Irng, Len(Irng) - Icnt)
End Function

- コードを保存してワークシートに戻り、作成した関数(コード1行目のDeleteLastL)を入力します。括弧内には、文字を削除したいセル参照(ここではB5)と、削除したい文字数(末尾2文字を削除したいので2)を渡します。
- Enterキーを押します。

これでセルの末尾から文字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

すべてのセルの末尾から2文字が削除されました。
8.3 すべての英字を削除するVBAコード
最後に、VBAのユーザー定義関数(UDF)でセルからすべての英字を削除する方法を紹介します。
手順:
- 同じく開発タブからVisual Basic Editorを開き、コードウィンドウに標準モジュールを挿入します。
- コードウィンドウに、以下のコードをコピーして貼り付けます。
Function DeleteLetter(iTxt As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\D"
DeleteLetter = .Replace(iTxt, "")
End With
End Function

- コードを保存してワークシートに戻り、作成した関数(コード1行目のDeleteLetter)を入力します。括弧内には、文字を削除したいセル参照(ここではB5)を渡します。
- Enterキーを押します。

これでセルからすべての英字が削除されます。
- フィルハンドルで数式を下方向へドラッグして適用します。

英字がすべて取り除かれたデータセットが完成します。
方法9:「区切り位置」機能で文字を削除する
Excelには「区切り位置」という標準搭載のコマンドツールがあります。このツールを利用して、セルから文字を削除することができます。
手順:
- 文字を削除したいセル範囲を選択します。
- データ → 区切り位置 をクリックします。

- 表示されたウィザードで、データの種類として「固定長」を選択します。
- 「次へ」をクリックします。

- 次の画面のデータのプレビューで、区切り線をドラッグして、削除したい文字の範囲を囲みます(ここではWWEを削除したいので、データ値のWWE部分全体を覆うように線を引きます)。
- 「次へ」をクリックします。

- 必要に応じて列のデータ形式を選択します。
- 「完了」をクリックします。

これで、英字を除いたデータが別の列に抽出されます。

このように、削除したい文字をセルから切り分けて取り出すことができます。
方法10:フラッシュフィルで文字を削除する
Excelのフラッシュフィル(Flash Fill)機能を使っても、セルから文字を削除できます。フラッシュフィルは、ユーザーが入力したパターンを認識し、そのパターンに従って他のセルを自動的に入力してくれる便利な機能です。
具体的な例で手順を見ていきましょう。
手順:
- 下の画像のように、Code列の「WWE101」からWWEを削除したい場合、隣のセルにはパターンを示すために101だけを入力します。
- 次に、残りのセル範囲を選択した状態で データ → フラッシュフィル をクリックします。

すると、入力したパターンに従って残りのセルも自動的に入力され、WWEが取り除かれた数字だけのデータになります。

なお、キーボードショートカット Ctrl + E を押すことでもフラッシュフィルを実行できます。
まとめ
この記事では、Excelでセルから文字を削除する10の方法を紹介しました。「検索と置換」やSUBSTITUTE関数といった基本的な手法から、VBAやフラッシュフィルを活用した効率的な手法まで、状況に応じて使い分けることができます。この記事が皆さんのExcel作業のお役に立てば幸いです。ご不明な点があれば、お気軽にお問い合わせください。
関連記事
- Excelで定義された名前を削除する3つの方法
-
Excelで壊れたリンクを削除する3つの簡単な方法
Microsoft Excelは非常に強力なソフトウェアです。Excelのツールや機能を活用すれば、データセットに対してさまざまな操作を行うことができます。数式の作成に役立つExcel関数も多数用意されており、教育機関や企業では貴重なデータの管理にExcelファイルが広く活用されています。場合によっては、複数のExcelファイルをリンクさせて、異なるソースからデータを取り込むこともあるでしょう。しかし、リンクはさまざまな理由で切れてしまうことがあり、その結果、作業中のワークシートにエラーが発生します。そこで必要になるのが、壊れたリンクの削除です。この記事では、Excelで壊れたリンクを削除する
-
Excelでハイパーリンクをすべて削除する5つの方法【テキストはそのまま残す】
Excelでは、URLを入力すると自動的にハイパーリンクへ変換されます。便利な機能ですが、必ずしも望ましいとは限りません。誤ってハイパーリンク付きのセルをクリックすると、意図せずWebサイトが開いてしまうこともあります。そこで「テキストは残したまま、ハイパーリンクだけを削除したい」というニーズが生まれます。本記事では、Excelの文字列を保持しながら、すべてのハイパーリンクを削除する基本的な方法を5つご紹介します。 練習用ワークブックについて 以下の手順は、実際にハイパーリンクが設定されたサンプルデータを使って確認できます。ご自身のブックでも同じ流れで試してみてください。 Excelですべ