電話番号のハイフンをExcelで統一する方法|先頭の0が消える問題も解説
複数の担当者やシステムから集めた電話番号は、「03−1234−5678」のような全角表記、ハイフンの有無、そして入力した瞬間に先頭の0が消えてしまうという定番トラブルが混在しがちです。この記事では、Excelで電話番号の表記を統一する手順と、特にやっかいな「先頭の0消失」への対処法を解説します。
まず確認:先頭の0が消えていないか
セルの表示形式が「標準」や「数値」のまま電話番号を入力すると、Excelはこれを数値と解釈し、先頭の0を自動的に削除します。「03-1234-5678」と入力したつもりが「3-1234-5678」やシリアル値のような表示になっている場合、この問題が起きています。
一度先頭の0が消えると、元の桁数(市外局番が2桁か3桁か)の情報も一緒に失われるため、後から機械的に復元することはできません。気づいた時点で早めに対処することが重要です。
手順1:列全体を文字列として扱う
今後の入力でこの問題を防ぐには、電話番号を入力する前に列の表示形式を「文字列」に変更します。
- 列を選択し、右クリック > 「セルの書式設定」
- 「文字列」を選択してOK
すでに数値になってしまっている場合は、隣の空いている列に次の数式を入れて先頭の0を復元します(0が消えて9桁になっている固定電話番号の例)。
=TEXT(A2,"0000000000")
この方法は「消えた桁数が分かっている場合」のみ有効です。市外局番の桁数は地域によって2〜5桁とばらつきがあるため、何桁の0が消えたのか元データだけでは判別できないケースもあります。
手順2:全角を半角に統一する
全角の数字・ハイフンが混じっている場合は、ASC関数で半角に変換できます。
=ASC(A2)
手順3:ハイフンの表記ゆれを統一する
全角ハイフン「-」「−」や、ハイフンの有無が混在している場合は、SUBSTITUTE関数で統一します。
=SUBSTITUTE(SUBSTITUTE(ASC(A2),"-","-"),"−","-")
ハイフンを完全に取り除いて数字だけにしたい場合(重複チェック用のキーを作る場合など)は、次のようにします。
=SUBSTITUTE(ASC(A2),"-","")
手順4:国番号(+81)の表記を統一する
海外のシステムからエクスポートしたリストでは「+81-3-1234-5678」のような国番号表記が混ざることがあります。先頭の「+81」を「0」に置き換えれば、国内表記に統一できます。
=SUBSTITUTE(A2,"+81","0")
「+81 3 1234 5678」のように国番号の直後に0を省略した表記もあるため、置換後に市外局番の先頭0が二重になっていないか、逆に無くなっていないかを確認してください。
手作業の限界
- 先頭の0が完全に消えてしまうと、元の桁数を機械的に判別できません——市外局番は2桁(03など)から5桁まで地域ごとに異なり、消えた0の数を後から推測するのは困難です
- ハイフンの有無が混在するリストで「同じ電話番号」を関数だけで判定するのは手間がかかります——「03-1234-5678」と「0312345678」を同一とみなすには、都度ハイフンを除去したキー列を作る必要があります
- 数十件程度であれば、上記の手順で十分対応できます。数百件を超えると、表記パターンの洗い出しと目視確認に時間がかかるようになります
ハイフンの有無を気にせず重複を検出
リストクリーナーは、電話番号の全角半角・ハイフン表記を自動で統一し、ハイフンの有無に関わらず同じ電話番号を重複として検出します(「03-1234-5678」と「0312345678」も同一と判定)。会社名・住所と組み合わせた名寄せも一括で行えます。データはブラウザ内で処理され外部に送信されません。無料で100行まで試せます。
無料でリストを整形してみる