Excel関数 逆引き集 | 記号を除去 → SUBSTITUTE

Excel
スポンサーリンク

概要

「電話番号からハイフンだけ消したい」
「品番から『#』『-』『/』などの記号を全部取りたい」
「数字と文字は残して、記号だけきれいに落としたい」

こういうときに一番よく使うのが SUBSTITUTE 関数で“記号を空文字に置き換える”テクニックです。

ポイントはとてもシンプルで、
「消したい記号を “”(空文字)に置き換える=削除する」
と考えることです。


SUBSTITUTE の基本と「削除」の考え方

SUBSTITUTE の基本形は次の通りです。

=SUBSTITUTE(文字列, 置き換え前, 置き換え後)

記号削除で使うときは、

=SUBSTITUTE(文字列, "消したい記号", "")

と書きます。

例えば、A2 に「03-1234-5678」という電話番号が入っていて、
ハイフン「-」だけ消したい場合はこうです。

=SUBSTITUTE(A2, "-", "")

結果は「0312345678」になります。
「- を何にもないもの(空文字)に置き換える」から、見た目としては削除されたわけです。


よくある記号削除パターン

電話番号や郵便番号のハイフン削除

A2 に「03-1234-5678」が入っているとして、
ハイフンをすべて削除して数字だけにしたい場合。

=SUBSTITUTE(A2, "-", "")

結果は「0312345678」です。

同様に、郵便番号「123-4567」からハイフンを取りたいときも同じです。

=SUBSTITUTE(A2, "-", "")

結果は「1234567」になります。

「No.」「#」などの記号付き品番から記号を外す

A2 に「No.123」「#A-001」などが入っている場合、
「No.」や「#」を削除して、本体部分だけ取りたい、ということも多いです。

例えば「No.123」から「123」だけにしたい場合。

=SUBSTITUTE(A2, "No.", "")

「#A-001」から「A001」にしたい場合は、
「#」と「-」を削除します(複数記号なので後で詳しく)。

=SUBSTITUTE(SUBSTITUTE(A2, "#", ""), "-", "")

結果は「A001」です。


複数の記号をまとめて削除する

SUBSTITUTE は一回で「1種類」しか置き換えられません。
複数の記号を一気に落としたいときは、SUBSTITUTE を“重ねて”使います。

例1: 「-」「/」「#」を全部削除

A2 に「AB-12/3#X」という文字列があるとします。
ここから「-」「/」「#」をすべて削除して「AB123X」にしたい場合。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "/", ""), "#", "")

内側から順番に読んでいくと、

A2 の「-」を削除
→ 「/」を削除
→ 「#」を削除

という流れで、最終的に記号が全部消えます。

例2: カンマとピリオドを削除して数字だけに近づける

金額っぽい文字列「1,234.00円」が A2 にあるとします。
まず「円」を削除しつつ、カンマとピリオドも消して「123400」にしたい場合。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, ",", ""), ".", ""), "円", "")

このあと VALUE をかませれば「数値」として扱うこともできます。


他の関数との組み合わせ

VALUE と組み合わせて「記号付きの数字 → 本物の数値」に

記号を削除した結果を「数値」として計算したい場合は、
SUBSTITUTE の外側に VALUE をかぶせます。

例えば、A2 に「1,234円」が入っていて、
これを数値の 1234 にしたいとき。

=VALUE(SUBSTITUTE(SUBSTITUTE(A2, ",", ""), "円", ""))

内側で「,」と「円」を削除して文字列「1234」を作り、
VALUE で 1234(数値)に変換しています。

TRIM と組み合わせて、空白もついでに整える

記号を削除したあと、余計なスペースが残ることもあります。
その場合は最後に TRIM をかけると、前後の空白や連続スペースも整えられます。

例:「A – 001 #」から記号と空白をきれいにしたい場合。

=TRIM(SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "#", ""))

TRIM が前後の空白や連続スペースを整理してくれるので、
「A001」のようにすっきりした文字列になります。


どの記号をどう消すかを考えるコツ

SUBSTITUTE を設計するときのポイントは、次のイメージです。

消したい記号を一個ずつ書き出す
それぞれを SUBSTITUTE(~, "記号", "") で消す
必要な数だけ SUBSTITUTE を重ねる

そして、

最後に TEXT / VALUE / TRIM などで、
「表示」や「計算」に使いやすい形に整える

という流れで考えると、
どんな記号の組み合わせでもだいたい対応できます。


例題

問題1

A2 に「03-1234-5678」という文字列が入っています。
この中からハイフン「-」をすべて削除して「0312345678」と表示したいです。
SUBSTITUTE を使った式を書いてください。

=SUBSTITUTE(A2, "-", "")

問題2

A2 に「#A-001」という文字列が入っています。
この中から「#」と「-」をすべて削除して「A001」と表示したいです。
SUBSTITUTE を2回重ねた式を書いてください。

=SUBSTITUTE(SUBSTITUTE(A2, "#", ""), "-", "")

問題3

A2 に「1,234円」という文字列が入っています。
この中から「,」と「円」を削除して「1234」という文字列にしたいです。
SUBSTITUTE を使った式を書いてください。

=SUBSTITUTE(SUBSTITUTE(A2, ",", ""), "円", "")

問題4

A2 に「1,234円」という文字列が入っています。
記号を削除したうえで、結果を数値 1234 として扱えるようにしたいです。
SUBSTITUTE と VALUE を組み合わせた式を書いてください。

=VALUE(SUBSTITUTE(SUBSTITUTE(A2, ",", ""), "円", ""))

問題5

A2 に「 A – 001 # 」という文字列が入っています(記号と空白が混ざっています)。
「-」と「#」を削除し、前後や途中の余計な空白も整えて「A001」と表示したいです。
SUBSTITUTE と TRIM を組み合わせた式を書いてください。

=TRIM(SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "#", ""))

SUBSTITUTE を「記号 → 空文字」に使うパターンを覚えておくと、
電話番号、郵便番号、品番、金額文字列など、
実務で頻出の「記号だけ消したい」シーンをほぼ全部カバーできます。

まずは「1種類の記号削除」から慣れて、
必要に応じて SUBSTITUTE を重ねていく感覚を身につけていきましょう。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました