Excel関数 逆引き集 | 電話番号整形 → SUBSTITUTE

Excel
スポンサーリンク

概要

電話番号って、同じ「番号」でも見せ方がバラバラになりがちです。

  • 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 は、その“最初のひと手間”を任せられる関数なので、
まずは「ハイフン削除」の型を、反射的に書けるくらいまで慣れてしまうのがおすすめです。

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