概要
電話番号って、同じ「番号」でも見せ方がバラバラになりがちです。
- 03-1234-5678
- 0312345678
- 03−1234−5678(似ている別記号)
こうした「見た目のバラつき」をそろえたり、「一度ハイフンを全部取り除いて、あとで好きな形に整える」ときに活躍するのが SUBSTITUTE 関数です。
ここでは、電話番号をきれいに整形するための 「記号(ハイフン)を扱う定番パターン」 を、初心者向けに噛み砕いて説明します。
基本:SUBSTITUTE でハイフンを削除して“生の数字”にする
SUBSTITUTE の基本形
SUBSTITUTE の形はこうでした。
=SUBSTITUTE(文字列, 置き換え前, 置き換え後)
電話番号で「ハイフンを削除」したいときは、
=SUBSTITUTE(文字列, "-", "")
と書きます。
「- を ""(空文字)に置き換える → 見た目としては消える」という考え方です。
電話番号からハイフンを全部消す
A2 に次のような電話番号があるとします。
03-1234-5678
このハイフンをすべて削除して、数字だけにしたい場合はこうします。
=SUBSTITUTE(A2, "-", "")
結果は
0312345678
になります。
これで「数字だけの電話番号」として扱えるようになり、
桁数チェックや形式を揃えるための前処理に使えます。
応用:見た目バラバラな電話番号をいったん“素の数字”にそろえる
電話番号の書き方が混ざっているデータは、実務ではよくあります。
- 「03-1234-5678」
- 「0312345678」
- 「03−1234−5678」(似た別記号のマイナス)
まずは「ハイフンを一度全部取り除く」のが、整形のスタートラインです。
もし「-」と「−」(全角っぽいハイフン)のように複数パターンが混ざっている場合は、SUBSTITUTE を重ねます。
=SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "-", "")
内側で半角ハイフン、外側で全角ハイフン(や似た記号)を削除し、
最終的に「0312345678」のような純粋な数字だけにそろえられます。
この「まず記号を全部落として数字だけにする」という前処理をしておけば、
後から LEFT や MID を使って、ハイフン位置を自由に決めやすくなります。
応用:TRIM と組み合わせて空白も一緒に掃除する
入力によっては、電話番号の前後や途中に空白が紛れ込むことがあります。
例:
A2 に
03-1234-5678
(前後にスペース)
や「03 – 1234 – 5678」(記号の前後に半角スペース)など。
この場合は、ハイフン削除に加えて TRIM を組み合わせると、空白もまとめて整えられます。
=TRIM(SUBSTITUTE(A2, "-", ""))
これで、
- ハイフンはすべて削除
- 先頭・末尾の余分なスペースは削除
- 途中の連続スペースも 1つに整理
され、きれいな「0312345678」に近い形に整います。
応用:数値として扱いたいときは VALUE をかませる
ハイフンを削除した結果を「数値」として扱いたいケースもあります。
A2 に「03-1234-5678」が入っていて、
最終的に 312345678 のような数値として使いたい場合(先頭 0 は数値では消えます)は、
SUBSTITUTE で文字列を作ったあとに VALUE をかぶせます。
=VALUE(SUBSTITUTE(A2, "-", ""))
結果は 312345678(数値)になり、
数値としてソートや計算(差分を取るなど)に使えるようになります。
ただし、日本の電話番号は先頭 0 が重要なので、
「表示用」は文字列のまま、「内部用」は数値、と使い分けることが多いです。
応用:あとでハイフンを「キレイな位置」で入れ直すための前処理
電話番号は種類によってハイフン位置がバラバラです。
- 固定電話:03-1234-5678 / 011-123-4567 など
- 携帯電話:090-1234-5678 など
一括できれいに「再整形」したいときは、
まず SUBSTITUTE でハイフンや余計な記号をすべて削除して「数字だけ」にした上で、
- 桁数
- 先頭の市外局番・携帯番号(03 / 06 / 090 など)
を条件に、LEFT・MID・RIGHT などでハイフンを入れ直す、という流れになります。
ここでの主役は「記号削除」と「前処理」です。
ハイフンをきれいに入れ直すフェーズは、別の関数(LEFT / MID / IF など)の出番になります。
まとめの“型”
電話番号整形の最初の一歩は、たいていこのどれかです。
ハイフンを削除して数字だけにする:
=SUBSTITUTE(A2, "-", "")
半角・全角のハイフンを両方削除:
=SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "-", "")
空白もついでに整理:
=TRIM(SUBSTITUTE(A2, "-", ""))
これらを「型」として手に覚えさせておけば、
電話番号だけでなく、郵便番号・クレジットカード番号など、
「記号付きの番号データ」を整えるときにもそのまま応用できます。
問題1
A2 に「03-1234-5678」という電話番号が入っています。
このハイフン「-」をすべて削除して「0312345678」と表示したいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, "-", "")
問題2
A2 に「090−1234−5678」という電話番号が入っています(全角ハイフン「−」)。
この全角ハイフンを削除して「09012345678」にしたいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, "-", "")
問題3
A2 に「03-1234-5678」や「03-1234-5678」など、半角・全角ハイフンが混在した電話番号が入っています。
ハイフンをすべて削除して「0312345678」にしたいです。
SUBSTITUTE を2回重ねた式を書いてください。
=SUBSTITUTE(SUBSTITUTE(A2, "-", ""), "-", "")
問題4
A2 に「 03-1234-5678 」という電話番号が入っています(前後に空白あり)。
ハイフンを削除し、前後の余計な空白も取り除いて「0312345678」と表示したいです。
SUBSTITUTE と TRIM を組み合わせた式を書いてください。
=TRIM(SUBSTITUTE(A2, "-", ""))
問題5
A2 に「03-1234-5678」という電話番号が入っています。
ハイフンを削除したうえで、結果を「数値」として扱いたいです。
SUBSTITUTE と VALUE を組み合わせた式を書いてください。
=VALUE(SUBSTITUTE(A2, "-", ""))
電話番号整形のスタートは、
「記号をきれいに落としてデータを揃える」ことです。
SUBSTITUTE は、その“最初のひと手間”を任せられる関数なので、
まずは「ハイフン削除」の型を、反射的に書けるくらいまで慣れてしまうのがおすすめです。
