Excelでデータを扱っていると、セル内の不要な文字を削除したい場面が頻繁に訪れます。
例えば、商品コードから「No.」という接頭辞を削除したい、電話番号のハイフンを取り除きたい、余計なスペースや改行を消したいなど、データクレンジング(データの整理・修正)は実務で避けて通れない作業です。
1つや2つのセルであれば手作業で編集できますが、数百、数千のセルに対して同じ処理を行う場合、手作業では膨大な時間がかかり、ミスも発生しやすくなります。
このような場合、Excelの関数や置換機能を使えば、特定の文字を一括で削除できます。
特定の文字を削除する方法には、複数のアプローチがあります。
SUBSTITUTE関数やREPLACE関数を使った関数による削除、検索と置換機能を使った直接削除、LEFT関数やRIGHT関数を使った文字の抽出など、状況に応じて最適な方法が異なります。
また、削除したい文字の位置(先頭、末尾、途中)や種類(固定文字、可変文字、空白文字)によっても、使用する関数や手法が変わってきます。
本記事では、セル内の特定の文字を削除する様々な方法を、具体例を交えながら詳しく解説します。
単純な文字列の削除から、複数の文字を同時に削除する応用技、空白や改行などの特殊文字の削除まで、実務で即活用できるテクニックを網羅的に紹介していきます。
ポイントは
・SUBSTITUTE関数で特定の文字を空文字に置換して削除
・検索と置換機能で直接データを書き換えて一括削除
・TRIM関数やCLEAN関数で余分な空白や改行を削除
です。
それでは詳しく見ていきましょう。
SUBSTITUTE関数で特定の文字を削除する基本
それではまず、最も汎用性が高く使いやすいSUBSTITUTE関数を使った文字削除の方法を確認していきます。
SUBSTITUTE関数の基本構文と使い方
SUBSTITUTE関数は、文字列内の特定の文字を別の文字に置き換える関数です。
構文は「=SUBSTITUTE(文字列,検索文字列,置換文字列,[置換対象])」で、検索文字列を置換文字列に変更します。
文字を削除したい場合は、置換文字列を空文字「””」にすることで実現できます。
例えば、A1セルに「No.12345」という文字列があり、「No.」を削除したい場合、B1セルに「=SUBSTITUTE(A1,”No.”,””)」と入力します。
結果は「12345」となり、「No.」という文字列が削除されます。
空文字「””」は、ダブルクォーテーションを2つ続けて入力したもので、「何もない文字列」を意味します。
これにより、検索文字列が「何もない」に置き換えられ、実質的に削除されます。
SUBSTITUTE関数による文字削除のイメージ
元の文字列
数式
結果
| 元の文字列(A列) | 数式(B列) | 結果 |
|---|---|---|
| No.12345 | =SUBSTITUTE(A1,”No.”,””) | 12345 |
| 商品A(赤) | =SUBSTITUTE(A2,”(赤)”,””) | 商品A |
| 090-1234-5678 | =SUBSTITUTE(A3,”-“,””) | 09012345678 |
| ¥1,000円 | =SUBSTITUTE(A4,”¥”,””) | 1,000円 |
複数の文字を同時に削除する方法
複数の異なる文字を削除したい場合は、SUBSTITUTE関数を入れ子(ネスト)にして使用します。
例えば、電話番号「090-1234-5678」からハイフンとスペースの両方を削除したい場合、「=SUBSTITUTE(SUBSTITUTE(A1,”-“,””),” “,””)」と入力します。
内側のSUBSTITUTE関数でハイフンを削除し、外側のSUBSTITUTE関数でスペースを削除するという2段階の処理です。
さらに多くの文字を削除する場合は、SUBSTITUTE関数を3つ、4つと重ねていきます。
例えば、「¥1,000円」から「¥」「,」「円」をすべて削除して「1000」にする場合、「=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,”¥”,””),”,”,””),”円”,””)」となります。
数式が長くなりますが、一つずつ丁寧に入力すれば確実に処理できます。
| 元の文字列 | 削除したい文字 | 数式 | 結果 |
|---|---|---|---|
| 090-1234-5678 | ハイフン | =SUBSTITUTE(A1,”-“,””) | 09012345678 |
| ¥1,000円 | ¥と,と円 | =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,”¥”,””),”,”,””),”円”,””) | 1000 |
| 【重要】お知らせ | 【と】 | =SUBSTITUTE(SUBSTITUTE(A1,”【”,””),”】”,””) | 重要お知らせ |
大文字小文字を区別する削除
SUBSTITUTE関数は、デフォルトで大文字と小文字を区別します。
例えば、「ABC123abc」という文字列から「abc」を削除しようとして「=SUBSTITUTE(A1,”abc”,””)」と入力すると、小文字の「abc」だけが削除され、大文字の「ABC」は残ります。
結果は「ABC123」となります。
大文字小文字を区別せずに削除したい場合は、UPPER関数やLOWER関数と組み合わせる方法があります。
まず元の文字列を全て大文字(または小文字)に変換してから、SUBSTITUTEで削除し、必要に応じて元の形式に戻します。
ただし、この方法は元の大文字小文字の情報が失われるため、慎重に使用する必要があります。
SUBSTITUTE関数の強みは、どこに出現する文字でも削除できる点です。
文字列の先頭、途中、末尾のどこにあっても、検索文字列と一致すれば削除されます。
また、同じ文字が複数回出現する場合、第4引数で置換対象を指定しない限り、すべての出現箇所が置換(削除)されます。
例えば、「aaa123aaa」から「a」を削除すると「123」になり、すべての「a」が削除されます。
特定の出現箇所だけを削除したい場合は、第4引数に出現回数を指定します。
REPLACE関数で位置を指定して文字を削除
続いては、削除したい文字の位置がわかっている場合に便利なREPLACE関数を確認していきます。
REPLACE関数の基本構文
REPLACE関数は、文字列の指定した位置から指定した文字数を別の文字列に置き換える関数です。
構文は「=REPLACE(文字列,開始位置,文字数,置換文字列)」で、開始位置から指定文字数分を置換文字列に変更します。
文字を削除する場合は、置換文字列を空文字「””」にします。
例えば、A1セルに「No.12345」があり、先頭3文字「No.」を削除したい場合、「=REPLACE(A1,1,3,””)」と入力します。
1文字目から3文字を空文字に置き換える、つまり削除するという意味です。
結果は「12345」となり、先頭の「No.」が削除されます。
SUBSTITUTE関数と異なり、削除する文字の内容ではなく、位置と文字数で指定する点が特徴です。
REPLACE関数による位置指定削除
元の文字列
No.12345
123文字目から3文字
数式
結果
FIND関数と組み合わせた動的な削除
削除したい文字の位置が固定でない場合、FIND関数と組み合わせて動的に位置を特定できます。
例えば、「商品A(赤)」から括弧とその中身を削除したい場合、括弧の開始位置を探してから削除します。
「=REPLACE(A1,FIND(“(”,A1),LEN(A1)-FIND(“(”,A1)+1,””)」という数式で、「(」以降をすべて削除できます。
より実用的な例として、メールアドレスから@以降を削除してユーザー名だけを抽出する場合、「=LEFT(A1,FIND(“@”,A1)-1)」という数式が使えます。
これはREPLACE関数ではなくLEFT関数とFIND関数の組み合わせですが、特定の文字の前までを取得することで、実質的に後ろ部分を削除する効果があります。
| 元の文字列 | 削除内容 | 数式 | 結果 |
|---|---|---|---|
| No.12345 | 先頭3文字 | =REPLACE(A1,1,3,””) | 12345 |
| 商品A(赤) | (以降すべて | =LEFT(A1,FIND(“(”,A1)-1) | 商品A |
| user@example.com | @以降すべて | =LEFT(A1,FIND(“@”,A1)-1) | user |
| 12345ABCDE | 6文字目から5文字 | =REPLACE(A1,6,5,””) | 12345 |
LEFT関数・RIGHT関数・MID関数による文字抽出
文字を削除する別のアプローチとして、必要な部分だけを抽出する方法もあります。
LEFT関数は左から指定文字数を、RIGHT関数は右から指定文字数を、MID関数は途中から指定文字数を抽出します。
不要な部分を削除するのではなく、必要な部分だけを取り出すという発想です。
例えば、「No.12345」から数字部分だけを抽出したい場合、「=RIGHT(A1,5)」で右から5文字を取得すれば「12345」が得られます。
または「=MID(A1,4,10)」で4文字目から10文字を取得することでも同じ結果になります。
この方法は、削除したい部分と残したい部分が明確に分かれている場合に有効です。
REPLACE関数とSUBSTITUTE関数の使い分けは、「位置で指定するか、内容で指定するか」で決まります。
「先頭の3文字を削除」「5文字目から2文字を削除」のように位置がわかっている場合はREPLACE関数が適しています。
「特定の文字列を削除」「すべてのハイフンを削除」のように内容で指定する場合はSUBSTITUTE関数が適しています。
また、LEFT・RIGHT・MID関数による抽出は、数式がシンプルで理解しやすいという利点があります。
状況に応じて最も適した方法を選択することが重要です。
検索と置換機能で直接データを削除
それでは、関数を使わずに元のデータを直接書き換える方法を確認していきます。
検索と置換の基本操作
「検索と置換」機能を使うと、セル内の特定の文字を一括で削除できます。
削除したいセルの範囲を選択し、Ctrl+Hキーを押すと「検索と置換」ダイアログが開きます。
「検索する文字列」に削除したい文字(例:「No.」)を入力し、「置換後の文字列」は空欄のままにして「すべて置換」をクリックします。
すると、選択範囲内のすべてのセルで、「No.」という文字列が削除されます。
削除された件数がメッセージで表示されるため、期待通りの数だけ削除されたか確認できます。
この方法は、元のデータを直接書き換えるため、関数のように別の列を用意する必要がなく、データがシンプルに整理できます。
検索と置換による削除手順
対象範囲を選択
Ctrl+H
検索文字列に
削除したい文字
置換後は空欄
すべて置換
ワイルドカードを使った柔軟な削除
検索と置換では、ワイルドカードを使ってパターンマッチングができます。
「オプション」ボタンをクリックして「ワイルドカードを使用する」にチェックを入れると、「*」(任意の文字列)や「?」(任意の1文字)が使用できます。
例えば、括弧とその中身を削除したい場合、「検索する文字列」に「(*)」と入力すれば、括弧とその間のすべての文字が一括削除されます。
また、「検索する文字列」に「 *」(スペース+アスタリスク)と入力すると、スペース以降の文字がすべて削除されます。
これは、名前の後ろに余分な情報が付いている場合などに便利です。
ワイルドカードは強力な機能ですが、意図しない削除が発生する可能性もあるため、重要なデータでは事前にバックアップを取ることをおすすめします。
| 検索文字列 | 意味 | 例(元→結果) |
|---|---|---|
| No. | 「No.」を削除 | No.12345 → 12345 |
| – | ハイフンを削除 | 090-1234-5678 → 09012345678 |
| (*) | 括弧と中身を削除 | 商品A(赤) → 商品A |
| * | スペース以降を削除 | 山田太郎 様 → 山田太郎 |
置換機能の注意点とバックアップ
検索と置換は元のデータを直接書き換えるため、一度実行すると元に戻せません(Ctrl+Zで取り消し可能ですが、次の操作を行うと戻せなくなります)。
重要なデータで置換を実行する前には、必ずシートをコピーしてバックアップを取ることが推奨されます。
または、置換前に「すべて検索」ボタンで対象を確認し、意図した箇所だけが選択されているか確認してから「すべて置換」を実行します。
また、置換範囲を明示的に選択してから置換を実行することで、シート全体ではなく特定の範囲だけを対象にできます。
例えば、A列だけで置換したい場合は、A列全体を選択してからCtrl+Hを押します。
これにより、他の列に同じ文字列があっても影響を受けずに済みます。
検索と置換機能は、関数と比べて次のようなメリット・デメリットがあります。
メリットは、元のデータを直接変更できるため別の列が不要、大量のデータでも高速処理、ワイルドカードで柔軟なパターンマッチングが可能という点です。
デメリットは、元に戻せない(取り消し履歴が消えると復元不可)、処理過程が残らないため後から検証しにくい、誤操作のリスクがあるという点です。
一時的なデータクレンジングには置換機能、継続的に同じ処理を行うには関数、というように使い分けることが重要です。
空白・改行・特殊文字の削除
最後に、目に見えにくい空白文字や改行、特殊文字を削除する方法を確認していきます。
TRIM関数で余分な空白を削除
TRIM関数は、文字列の先頭と末尾の空白、および単語間の余分な空白を削除します。
構文は「=TRIM(文字列)」で、非常にシンプルです。
例えば、A1セルに「 山田 太郎 」(前後と途中に複数のスペース)が入っている場合、「=TRIM(A1)」の結果は「山田 太郎」となり、前後の空白が削除され、途中の空白は1つにまとめられます。
TRIM関数は、外部システムからインポートしたデータや、手入力されたデータに含まれる余分な空白を整理する際に非常に便利です。
データの前後に見えない空白があると、VLOOKUPなどの検索関数が正しく機能しなかったり、並べ替えが意図通りにならなかったりするため、データクレンジングの基本として必ず実行すべき処理です。
TRIM関数の動作
元の文字列
「 山田 太郎 」
前後と途中に空白
TRIM関数適用後
「山田 太郎」
空白が整理される
CLEAN関数で改行を削除
CLEAN関数は、文字列から印刷できない文字(改行、タブなど)を削除します。
構文は「=CLEAN(文字列)」です。
セル内で改行(Alt+Enter)されているデータから改行を削除したい場合、「=CLEAN(A1)」と入力すると、改行が削除されて1行のテキストになります。
改行だけでなく、タブ文字やその他の制御文字も削除されるため、外部データのクリーニングに有効です。
ただし、CLEAN関数では半角スペースや全角スペースは削除されないため、空白も同時に整理したい場合は、「=TRIM(CLEAN(A1))」のように、CLEAN関数とTRIM関数を組み合わせて使用します。
SUBSTITUTE関数で改行を削除
CLEAN関数以外にも、SUBSTITUTE関数を使って改行を削除する方法があります。
改行コードを直接指定して削除する方法で、「=SUBSTITUTE(A1,CHAR(10),””)」という数式を使います。
CHAR(10)は改行コード(ラインフィード)を表し、これを空文字に置換することで改行が削除されます。
Windowsの改行コードはCR+LF(キャリッジリターン+ラインフィード)の組み合わせの場合もあるため、より確実に削除するには「=SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),””),CHAR(13),””)」とします。
CHAR(13)はキャリッジリターンを表します。
この方法は、改行だけを削除し、他の制御文字は残したい場合に有効です。
| 関数 | 削除対象 | 数式例 |
|---|---|---|
| TRIM | 前後の空白、余分な空白 | =TRIM(A1) |
| CLEAN | 印刷できない文字(改行、タブ等) | =CLEAN(A1) |
| SUBSTITUTE(改行) | 改行コードのみ | =SUBSTITUTE(A1,CHAR(10),””) |
| TRIM+CLEAN | 空白と制御文字の両方 | =TRIM(CLEAN(A1)) |
数字や英字だけを残す高度な処理
文字列から数字だけ、または英字だけを抽出したい場合、配列数式や高度な関数の組み合わせが必要になります。
Excel 365やExcel 2021では、TEXTJOIN関数とFILTER関数を組み合わせることで実現できます。
ただし、数式が複雑になるため、VBAマクロやPower Queryを使う方が効率的な場合もあります。
より実用的な方法として、検索と置換で不要な文字を段階的に削除していく方法があります。
例えば、「商品A123」から数字だけを抽出したい場合、「商品」「A」などの文字を個別に削除していくことで、最終的に「123」だけが残ります。
または、数字が含まれる位置や文字数が決まっている場合は、MID関数などで直接抽出する方が簡単です。
データクレンジングでは、複数の関数を組み合わせることが一般的です。
例えば、外部からインポートしたデータを整理する場合、「=TRIM(CLEAN(SUBSTITUTE(A1,”不要文字”,””)))」のように、3つの関数を重ねて使用します。
処理の順序は、内側から外側へと実行されるため、①不要文字の削除→②改行等の削除→③空白の整理、という流れになります。
数式が長くなると理解しにくいため、段階的に別の列で処理し、最後に結合するという方法も有効です。
まとめ エクセルで特定の文字を一括削除・置換する方法
Excelでセル内の特定の文字を削除する方法をまとめると
・SUBSTITUTE関数:「=SUBSTITUTE(文字列,”削除文字”,””)」で特定の文字を空文字に置換、複数の文字を削除する場合はSUBSTITUTE関数を入れ子にする、文字の内容で指定する場合に最適
・REPLACE関数:「=REPLACE(文字列,開始位置,文字数,””)」で位置を指定して削除、先頭や特定位置の文字を削除する場合に有効、LEFT・RIGHT・MID関数で必要部分だけを抽出する方法もある
・検索と置換:Ctrl+Hで「検索と置換」ダイアログを開き、検索文字列に削除したい文字、置換後を空欄にして「すべて置換」、元のデータを直接書き換えるため別列不要、ワイルドカード使用で柔軟なパターンマッチング可能
・空白・改行削除:TRIM関数で前後と余分な空白を削除、CLEAN関数で改行やタブなどの制御文字を削除、SUBSTITUTE関数でCHAR(10)やCHAR(13)を指定して改行を個別削除、TRIM+CLEANで両方を同時処理
特定の文字を削除する作業は、データクレンジングの基本であり、実務で頻繁に発生します。
外部システムからのデータインポート、手入力データの整理、分析前の前処理など、様々な場面で必要になります。
関数を使った方法は処理過程が残り検証可能、置換を使った方法は高速で直接的、というそれぞれの特性を理解して使い分けることが重要です。
データの性質に応じて、SUBSTITUTE関数、REPLACE関数、検索と置換、TRIM・CLEAN関数など、最適な方法を選択してください。
また、複数の関数を組み合わせることで、複雑なデータクレンジングも効率的に実行できます。
正確なデータ整理で、信頼性の高いExcel作業を実現していきましょう!