Excel で電話番号にハイフンを入れる式と、固定電話で式が使えない理由
名簿の電話番号が「09012345678」「0312345678」のようにハイフンなしで入っていると、読みにくく、打ち間違いにも気づきにくくなります。携帯電話の番号は Excel の式でそろえられますが、固定電話は式だけではうまくいきません。
携帯電話の番号(11 桁)にハイフンを入れる式
090・080・070 で始まる携帯電話や、050 の IP 電話の番号は、どれも「3 桁-4 桁-4 桁」です。A2 に「09012345678」が文字として入っているなら、次の式で区切れます。
=LEFT(A2,3)&"-"&MID(A2,4,4)&"-"&RIGHT(A2,4)
CSV を Excel で開いて先頭の 0 が消え、「9012345678」という数値になっているときは、TEXT 関数を使うと 0 を戻しながら区切れます。
=TEXT(A2,"000-0000-0000")
どちらも、結果をコピーして「値の貼り付け」で元の列に上書きすれば、式ではなく文字として残せます。先頭の 0 が消える理由と防ぎ方は先頭の 0 が消える理由と防ぎ方で説明しています。
固定電話は市外局番の長さがばらばら
固定電話の番号は 0 を含めて 10 桁で、「市外局番-市内局番-加入者番号」に分かれます。加入者番号はいつも 4 桁ですが、市外局番は 2〜5 桁と長さが決まっていません。総務省の電気通信番号指定状況のデータで数えると、市外局番は次のとおりです。
| 市外局番の桁数 | 数 | 例 | 区切り |
|---|---|---|---|
| 2 桁 | 3 | 03・04・06 | 03-1234-5678 |
| 3 桁 | 48 | 011・045・092 | 045-123-4567 |
| 4 桁 | 296 | 0422・0466・0154 | 0422-12-3456 |
| 5 桁 | 40 | 01267・04992 | 01267-1-2345 |
そのため「頭の 2 桁で区切る」「3 桁で区切る」といった 1 つの式では、多くの番号を切り間違えます。
番号の頭だけでも区切りは決まらない
「042 で始まるなら 3 桁」のように、頭の数字で市外局番の長さを決める式を作ろうとしても、うまくいきません。同じ頭で始まる番号でも、続く数字によって市外局番が違うことがあるからです。
- 「0429921234」は 04-2992-1234(市外局番 04)ですが、「0429111234」は 042-911-1234(市外局番 042)です
- 「0154221234」は 0154-22-1234(市外局番 0154)ですが、「0154851234」は 015-485-1234(市外局番 015)です
市外局番と市内局番の組み合わせは、番号の先頭 6 桁ごとに総務省が決めて公表しています。正しく区切るには、この一覧と照らし合わせる必要があります。Excel でやるなら、一覧を別のシートに入れて VLOOKUP などで引くことになりますが、市外局番だけで 387、先頭 6 桁の組み合わせは 4 万件以上あります。
確実にそろえるには
このサイトの電話番号のハイフンを一括でそろえるは、総務省のデータから作った市外局番の一覧をページに組み込んであり、固定電話の番号を正しく区切ります。携帯電話・IP 電話・0120・0800・0570 の番号もそれぞれの形で区切り、「+81」で始まる番号は 0 に直します。
- 名簿の CSV を読み込めば、そろえた列を書き足した CSV を保存できます
- 先頭の 0 が消えた番号は 0 を補い、その旨を知らせます
- 割り当てのない局番(打ち間違いのことが多い)を知らせます
- 「03-1234-5678」「03(1234)5678」「0312345678」から区切り方を選べます
読み込んだ名簿はどこにも送信しません。ページは外部への通信を禁止する設定のまま動きます。
区切らずに保存するときの注意
ハイフンのない電話番号を CSV に保存し、その CSV を Excel でダブルクリックして開くと、また先頭の 0 が消えます。ほかのシステムに読み込ませるためにハイフンなしにするときは、Excel で開かずに渡すか、先頭の 0 が消える理由と防ぎ方の方法で読み込んでください。
参考にした資料
- 総務省「電気通信番号指定状況」:固定電話番号(0AB~J 番号)の市外局番と市内局番の指定状況。上の表と例は、このデータを加工して数えました(公共データ利用規約 第1.0版)