Excelのデータに付いている管理番号、郵便番号の記号、商品コードの接頭辞などを一括で消したい場面は多いですね。先頭から決まった文字数を削除するなら関数、同じ文字列を消すなら置換、規則をExcelに覚えさせるならフラッシュフィルが最短です。元データを直接変更する前に、念のためファイルを保存してから進めましょう。
結論:先頭文字の一括削除は3つの方法で解決できます
- 先頭3文字など、削除する文字数が決まっている:REPLACE関数
- 先頭のABC-など、消したい文字列が決まっている:置換機能(Ctrl+H)
- データごとに先頭部分の長さが違うが、見本を作れる:フラッシュフィル(Ctrl+E)
たとえばA列に「SKU-00123」「SKU-00456」のような値がある場合、SKU-を消したいなら置換、先頭4文字を必ず消したいならREPLACE関数が向いています。
先頭から決まった文字数を削除する:REPLACE関数
削除後のデータを別列に作り、確認してから元データへ反映できる方法です。作業ミスを防ぎやすいため、仕事のデータではまずこの方法がおすすめですよ。
先頭3文字を削除する数式
A2セルの先頭3文字を削除する場合は、B2セルに次の数式を入力します。
=REPLACE(A2,1,3,"")
REPLACE関数は、指定した位置から指定した文字数だけを別の文字に置き換える関数です。最後を空白文字にすることで、実質的に文字を削除できます。数式の1は先頭位置、3は削除する文字数です。
- B2セルをクリックします。
- =REPLACE(A2,1,3,"")と入力します。
- Enterキーを押します。
- B2セル右下の小さな四角をダブルクリックするか、下方向へドラッグして数式を最終行までコピーします。
- 結果を確認します。
たとえば「ABC12345」は「12345」になり、「〒150-0001」は先頭1文字を削除する数式なら「150-0001」になります。
削除後の結果を元の列に貼り付ける方法
数式の結果を確定した文字列として残したいときは、値として貼り付けます。数式のまま元のA列を削除すると参照エラーになるため、この手順が大切です。
- 数式を入れたB列の対象範囲を選択します。
- Ctrl+Cを押してコピーします。
- 元データのA列、または別の貼り付け先を右クリックします。
- 貼り付けオプションから値を選択します。
- 値だけ貼り付けられたことを確認してから、不要になったB列を削除します。
RIGHT関数で先頭文字を削除する方法
残したい文字数が分かっている場合はRIGHT関数も使えます。たとえば10文字のコードから先頭3文字を消し、右側7文字を残すなら=RIGHT(A2,7)です。ただし、データの文字数が行ごとに異なる場合は結果がずれるため、基本はREPLACE関数のほうが扱いやすいですね。
同じ文字列を先頭から一括削除する:置換機能
「商品-001」「商品-002」のように、すべてのセルに共通する文字列だけを消したい場合は置換が最速です。関数列を作らず、元データを直接まとめて変更できます。ただし、先頭以外に同じ文字列がある場合も消える可能性があるため、対象範囲を選択してから実行しましょう。
- 削除したいデータ範囲だけを選択します。
- Ctrl+Hを押して、検索と置換の画面を開きます。
- 検索する文字列に、削除したい接頭辞を入力します。例:SKU-
- 置換後の文字列は空欄のままにします。
- すべて置換をクリックします。
- 置換件数を確認し、問題がなければOKをクリックします。
置換は「先頭だけ」を指定する機能ではありません。たとえばSKU-がセルの途中にも含まれているデータでは、その部分まで削除されます。データの構造が不明なときは、先にREPLACE関数で別列へ結果を作るほうが安全ですよ。
見本を入力して自動削除する:フラッシュフィル(Ctrl+E)
先頭の不要部分が行ごとに異なる場合は、フラッシュフィルが便利です。たとえば「東京支店_田中」「大阪支店_佐藤」から氏名だけを取り出したいとき、Excelに1~2件の見本を見せるとパターンを推測してくれます。
- 元データがA列にある場合、隣のB2セルへ1件目の完成形を手入力します。例:田中
- B3セルにも必要に応じて2件目の完成形を入力します。例:佐藤
- 続きを作成したいB列のセルを選択します。
- Ctrl+Eを押します。
- 候補が自動入力されたら、数件を目視で確認します。
リボンから操作する場合は、データタブをクリックし、フラッシュフィルを選択します。住所や部署名のように規則が複雑なデータでは、誤った候補が混ざることもあります。必ず先頭・中間・最終行を確認してから使いましょう。
区切り文字より前を削除する:TEXTAFTER関数
Excel 365やExcel 2021以降を使っていて、「-」や「_」などの区切り文字より前を削除したいならTEXTAFTER関数も便利です。たとえばA2の「部署_山田太郎」から「山田太郎」を取り出す数式は=TEXTAFTER(A2,"_")です。
- 結果を表示したいセルをクリックします。
- =TEXTAFTER(A2,"_")と入力します。
- Enterキーを押します。
- オートフィルで最終行まで数式をコピーします。
区切り文字の位置が毎回違っても、区切り文字そのものが共通していれば処理できます。先頭から何文字かを数える必要がないので、部署名やカテゴリ名を削除するときに役立ちます。
うまくいかない場合のチェックポイント
数式が計算されず、そのまま表示される
セルに=REPLACE(A2,1,3,"")と表示されたままで結果が出ない場合、セルの表示形式が文字列になっている可能性があります。
- 対象セルを選択します。
- ホームタブの表示形式を標準に変更します。
- 数式を入力し直してEnterキーを押します。
REPLACE関数で削除する文字数が合わない
全角文字も半角文字も、Excelでは通常1文字として数えます。「ABC-」は4文字、「〒」は1文字です。削除後に1文字残る、または1文字消えすぎる場合は、削除する文字数を見直してください。スペースが混ざっているケースもあるため、数式バーで元データを確認すると見つけやすいですよ。
置換で消しすぎた
Ctrl+Hの置換は、セル内にある一致文字列をすべて対象にします。実行直後であればCtrl+Zで元に戻せます。次回からは、データ範囲を限定するか、コピーした列で試してから本番データに適用しましょう。
フラッシュフィルの結果が途中からおかしい
元データの表記ゆれが主な原因です。全角と半角の記号が混ざっている、区切り文字がない行がある、余分なスペースがあると、Excelが規則を正しく判断できません。表記をそろえるか、TEXTAFTER関数やREPLACE関数へ切り替えると安定します。
TEXTAFTER関数でエラーになる
#NAME?と表示される場合は、使用しているExcelのバージョンがTEXTAFTER関数に対応していない可能性があります。その場合は、区切り位置をFIND関数で調べる方法や、フラッシュフィルを使いましょう。また、区切り文字がないセルではエラーになるため、対象データに「_」や「-」が入っているか確認してください。
作業がさらに速くなる関連ショートカット
- Ctrl+H:検索と置換を開きます。共通の接頭辞を消す作業に便利です。
- Ctrl+E:フラッシュフィルを実行します。見本どおりに文字を抜き出したいときに使えます。
- Ctrl+D:選択範囲の上端セルを下方向へコピーします。数式をまとめて入れるときに便利です。
- Ctrl+C → Ctrl+Alt+V → V:値のみ貼り付けをすばやく行えます。関数の結果を確定するときに役立ちます。
- Ctrl+Z:置換や削除を間違えた直後に元へ戻せます。
先頭文字の削除は、データの規則に合う方法を選ぶだけで数分かかる作業を一瞬にできます。迷ったときは、固定文字数ならREPLACE関数、共通文字列ならCtrl+H、区切り文字があるならTEXTAFTER関数から試してみてくださいね。
