Excelを使って作業していると、セル内の特定の文字以降を削除したい場面はよく出てくるものです。
たとえば、「東京都渋谷区〇〇」というデータから「都」以降を削除して「東京」だけにしたいケースや、URLの一部、コードの末尾など、特定の区切り文字を基準にデータを整理したいことは多いでしょう。
そんなときに役立つのが、Excelの文字列操作関数です。
本記事では、「【Excel】エクセルで特定の文字を以降から削除する方法(関数・複数まとめて・特定の文字列を消す)」というテーマで、基本的な関数の使い方から、複数セルをまとめて処理する方法まで、丁寧に解説していきます。
初心者の方でもすぐに実践できる内容になっているので、ぜひ最後までご覧ください。
Excelで特定の文字以降を削除するにはLEFT関数とFIND関数の組み合わせが基本
それではまず、Excelで特定の文字以降を削除する基本的な方法について解説していきます。
結論から言えば、LEFT関数とFIND関数を組み合わせるのが最もシンプルで使いやすい方法です。
LEFT関数は文字列の左端から指定した文字数を取り出す関数で、FIND関数は指定した文字が何文字目にあるかを返す関数です。
この2つを組み合わせることで、「特定の文字が出てくる位置より前の文字列だけを抽出する」という操作が実現できます。
LEFT関数の基本的な使い方
LEFT関数の構文はとてもシンプルです。
=LEFT(文字列, 文字数)
例:=LEFT(“東京都渋谷区”, 2) → 「東京」を返す
第一引数に対象のセルや文字列、第二引数に取り出したい文字数を指定するだけです。
ただし、削除したい文字の位置が毎回異なる場合は、文字数を固定することができないため、FIND関数と組み合わせる必要があります。
FIND関数で特定の文字の位置を取得する
FIND関数は、特定の文字が文字列の何文字目に存在するかを調べる関数です。
=FIND(検索文字列, 対象, [開始位置])
例:=FIND(“都”, “東京都渋谷区”) → 3 を返す
「東京都渋谷区」の中で「都」は3文字目にあるため、結果は3になります。
この数値を使って「都」より前の文字だけを取り出せるわけです。
LEFT関数とFIND関数を組み合わせた実例
実際に2つを組み合わせると、以下のような数式になります。
=LEFT(A1, FIND(“都”, A1) – 1)
A1に「東京都渋谷区」が入力されている場合、「東京」が返される
FIND(“都”, A1)が3を返すので、そこから1を引いた2文字をLEFT関数で取り出す仕組みです。
「-1」を忘れると特定の文字自体も含まれてしまうため、必ずFIND関数の結果から1を引くことを忘れないようにしましょう。
SUBSTITUTE関数で特定の文字列そのものを削除する方法
続いては、特定の文字列そのものをセル内から消したい場合に使える、SUBSTITUTE関数の活用方法を確認していきます。
SUBSTITUTE関数は、文字列の中の特定の文字や単語を別の文字に置き換える関数です。
置き換え後の文字列を空欄(””)にすることで、実質的に削除と同じ効果が得られます。
SUBSTITUTE関数の基本構文
=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])
例:=SUBSTITUTE(“東京都渋谷区”, “渋谷区”, “”) → 「東京都」が返される
第三引数に “” を指定すると、検索した文字列が空文字に置き換えられ、削除したのと同じ状態になります。
LEFT+FINDとの大きな違いは、「位置ではなく文字列そのもの」を対象にしている点です。
複数の文字列をまとめて削除する方法
SUBSTITUTE関数は入れ子(ネスト)にすることで、複数の文字列を一度に削除することができます。
=SUBSTITUTE(SUBSTITUTE(A1, “削除したい文字1”, “”), “削除したい文字2”, “”)
例:=SUBSTITUTE(SUBSTITUTE(“東京都・渋谷区・代官山”, “東京都・”, “”), “・代官山”, “”) → 「渋谷区」が返される
このようにSUBSTITUTE関数を重ねることで、複数箇所の文字列削除を1つの数式でまとめて処理できます。
ただし、ネストが深くなりすぎると数式が読みにくくなるため、削除対象が多い場合はLET関数や補助列を使うと管理しやすくなります。
SUBSTITUTE関数で大文字・小文字を区別するかどうか
注意点として、SUBSTITUTE関数は大文字と小文字を区別するという特徴があります。
たとえば「Excel」と「excel」は別の文字列として扱われるため、意図した文字が削除されないケースもあります。
大文字・小文字を区別せずに置換したい場合は、LOWER関数やUPPER関数で文字列を統一してから処理する方法が有効です。
| 関数名 | 主な用途 | 大文字・小文字の区別 | 特定の文字の「位置」基準 |
|---|---|---|---|
| LEFT+FIND | 特定文字より前を抽出 | 区別する | あり |
| SUBSTITUTE | 特定文字列を削除・置換 | 区別する | なし(文字列一致) |
| MID+FIND | 特定文字より後を抽出 | 区別する | あり |
| REPLACE | 位置指定で文字列を置換 | 区別しない | あり(数値指定) |
複数セルをまとめて特定の文字以降を削除する効率的な方法
続いては、大量のデータに対して一括で処理を行う、複数セルへの対応方法を確認していきます。
データが数十・数百件になると、1セルずつ手作業で処理するのは現実的ではありません。
数式のオートフィルや配列数式を活用することで、効率よく一括処理が可能です。
オートフィルで数式を一括適用する
最も基本的な方法が、オートフィルを使った数式の一括コピーです。
対象セルに数式を入力したら、セルの右下にある「フィルハンドル(小さな■)」をドラッグして下方向に引き伸ばすだけで、複数セルに同じ処理を適用できます。
B1セルに =LEFT(A1, FIND(“都”, A1) – 1) を入力
→ B1のフィルハンドルをB100までドラッグ
→ A2〜A100の各セルに対して同様の処理が自動適用される
セル参照が「A1」のように相対参照になっていれば、行が変わるごとに自動的に参照先もずれていきます。
IFERROR関数でエラーを回避する
複数のセルに数式を適用する際、検索対象の文字が含まれていないセルでFIND関数がエラーを返してしまうことがあります。
その場合はIFERROR関数を組み合わせることで、エラー表示を防ぐことができます。
=IFERROR(LEFT(A1, FIND(“都”, A1) – 1), A1)
「都」が見つからない場合はA1の元の値をそのまま表示する
第二引数には、エラーが発生したときに代わりに返す値を指定します。
「””」にすれば空白、「A1」にすれば元のデータをそのまま残せるため、用途に応じて使い分けると良いでしょう。
Excelの「検索と置換」機能でまとめて削除する方法
関数を使わず、Excelの標準機能だけで複数セルの特定文字列を一括削除する方法もあります。
それが「検索と置換」機能です。
手順:Ctrl+H で「検索と置換」ダイアログを開く → 「検索する文字列」に削除したい文字を入力 → 「置換後の文字列」は空欄のまま → 「すべて置換」をクリック
この方法は関数の知識が不要で、直感的に操作できる点が魅力です。
ただし、元のデータが書き換えられてしまうため、必要に応じてバックアップを取ってから実施することをおすすめします。
REPLACE関数やMID関数を使った応用的な文字削除テクニック
続いては、さらに応用的な文字削除の方法として、REPLACE関数とMID関数の活用を確認していきます。
LEFT+FINDやSUBSTITUTEで対応しきれないケースでも、これらの関数を使えばより柔軟に処理できます。
REPLACE関数で特定の位置から文字を削除する
REPLACE関数は、文字列の中の「指定した位置から指定した文字数」を別の文字列に置き換える関数です。
=REPLACE(文字列, 開始位置, 文字数, 置換文字列)
例:=REPLACE(“東京都渋谷区”, 3, 4, “”) → 「東京」が返される
(3文字目から4文字分を削除)
位置と文字数がわかっている場合はとても便利ですが、位置が変動する場合はFIND関数と組み合わせる必要があります。
SUBSTITUTE関数との違いは、文字の「内容」ではなく「場所」を基準に処理する点です。
MID関数で特定の文字以降だけを取り出す
逆に「特定の文字より後ろだけを取り出したい」場合はMID関数が活躍します。
=MID(文字列, 開始位置, 文字数)
例:=MID(A1, FIND(“都”, A1) + 1, LEN(A1)) → 「都」以降の文字列を返す
LEN関数は文字列の総文字数を返す関数です。
MIDの第三引数にLEN(A1)を指定することで、終端まですべての文字を取り出せます。
TEXTSPLIT関数(Excel 365)でより直感的に処理する
Microsoft 365版のExcelでは、TEXTSPLIT関数という新しい関数が使えます。
これは文字列を特定の区切り文字で分割し、複数のセルに展開できる関数です。
=TEXTSPLIT(A1, “都”)
A1が「東京都渋谷区」の場合 → 「東京」と「渋谷区」に分割される
分割後、必要な部分だけをINDEX関数などで取り出せば、特定の文字以降を実質的に削除したのと同じ結果が得られます。
従来の関数より直感的でわかりやすいため、Microsoft 365を使っている方にはぜひ試してほしい方法です。
| 関数・機能 | 削除の基準 | エラー対応 | 複数セル対応 | 使いやすさ |
|---|---|---|---|---|
| LEFT+FIND | 特定文字の位置 | IFERRORで対応 | オートフィルで対応 | ★★★★☆ |
| SUBSTITUTE | 文字列の内容 | 不要な場合が多い | オートフィルで対応 | ★★★★★ |
| REPLACE | 位置と文字数 | IFERRORで対応 | オートフィルで対応 | ★★★☆☆ |
| 検索と置換 | 文字列の内容 | 不要 | 一括対応可能 | ★★★★★ |
| TEXTSPLIT(365) | 区切り文字 | 不要な場合が多い | スピル機能で対応 | ★★★★☆ |
まとめ
本記事では、「【Excel】エクセルで特定の文字を以降から削除する方法(関数・複数まとめて・特定の文字列を消す)」というテーマで、さまざまな方法を解説しました。
基本となるのはLEFT関数とFIND関数の組み合わせで、特定の文字が出現する位置より前の文字列を取り出すことができます。
特定の文字列そのものを削除したい場合は、SUBSTITUTE関数が最も手軽で扱いやすい選択肢です。
複数セルをまとめて処理したいときは、オートフィルやIFERROR関数との組み合わせが効果的でしょう。
さらに、Excelの「検索と置換」機能を使えば、関数の知識がなくても一括削除が可能です。
Microsoft 365をお使いの方はTEXTSPLIT関数も活用することで、より柔軟なデータ処理が実現できます。
自分のExcelの用途やデータの形に合わせて、最適な方法を選んでみてください。
作業の効率化につながるヒントがきっと見つかるはずです。