概要
「郵便番号を 1234567 から 123-4567 の形にしたい」
「123456 や 12345 など桁が足りないときは、先頭に 0 をつけたい」
「数値として持っている郵便番号を“見せる用”にきれいな文字列に整えたい」
こういうときに使えるのが TEXT 関数を使った「郵便番号の整形」です。
ポイントは次の2段階です。
- まず「7桁ゼロ埋め」の文字列にする
- その文字列を「123-4567」の形に並べ替える
これを順番にやれば、元が「1234567」でも「12345」でも、きれいな郵便番号表記が作れます。
基本:7桁ゼロ埋めにする TEXT の使い方
なぜ最初に「7桁ゼロ埋め」するのか
日本の郵便番号は「7桁」が前提です。
でも、Excel で数値として扱うと、
0123456→ 表示は123456になってしまう- 6桁・5桁のデータも混じっていることがある
という問題がよく起きます。
そこでまず、TEXT で「必ず7桁」の文字列にそろえるのが定番パターンです。
7桁ゼロ埋めの基本形
A2 に「数値としての郵便番号」が入っているとします。
(例:1234567、12345、789 など)
これを 7桁ゼロ埋めの文字列にする式はこうです。
=TEXT(A2, "0000000")
A2 が 1234567 → 結果「1234567」
A2 が 12345 → 結果「0012345」
A2 が 789 → 結果「0000789」
これで、とにかく「7桁揃った文字列」が手に入ります。
応用:7桁を「123-4567」の形に整形する
TEXT の結果を LEFT / RIGHT で分割する
7桁の文字列になれば、あとは
- 左から3桁
- 右から4桁
に分けて、「-」でつなげるだけです。
A2 に郵便番号(数値)が入っているとして、
それを直接「123-4567」の形にする定番の式はこうです。
=LEFT(TEXT(A2, "0000000"), 3) & "-" & RIGHT(TEXT(A2, "0000000"), 4)
流れをかみ砕くと:
TEXT(A2, "0000000")
→ まず 7桁ゼロ埋めの文字列を作るLEFT(…, 3)
→ その先頭 3 桁を取り出す(例:"1234567"→"123")RIGHT(…, 4)
→ その末尾 4 桁を取り出す(例:"1234567"→"4567")左3桁 & "-" & 右4桁
→ 「123-4567」の形に組み立てる
元の値が 1234567 でも 12345 でも、
最初にTEXTで「00012345 → 0012345 → 7桁」にそろえているので、
必ず「XXX-XXXX」の形で整えられます。
元データが「文字列」の場合の扱い
文字列でも、まずは 7桁にそろえる
元データがすでに「文字列」の場合(左寄せで "1234567" など)もあります。
この場合もやることは同じで、
- いったん VALUE で数値に変換
- TEXT で 7桁ゼロ埋め
- LEFT / RIGHT で「XXX-XXXX」に整形
という流れにすれば安全です。
A2 に "1234567" などの文字列が入っている前提の式:
=LEFT(TEXT(VALUE(A2), "0000000"), 3) & "-" & RIGHT(TEXT(VALUE(A2), "0000000"), 4)
もし A2 がすでに「7桁の文字列」で桁数も必ず合っているなら、
TEXT や VALUE を使わずに、
=LEFT(A2,3) & "-" & RIGHT(A2,4)
だけでも OK ですが、
実務では桁が足りないデータが混ざることも多いので、
TEXT で「7桁」にそろえておくほうが安心です。
実務での使いどころとコツ
CSVや他システム連携の「見せ方」用として
- システム内では 7桁の数値(1234567)として管理
- 画面表示やレポート・帳票では「123-4567」の形で見せたい
という場面がよくあります。
そのときは、
- データとして使う列 → 数値(ハイフンなし)
- 表示用の列 → TEXT+LEFT+RIGHT で整形した文字列
というふうに「列を分ける」とわかりやすくなります。
入力チェックとして使う
入力された値に対して、
「7桁以外はエラー」「空白や記号が混ざっている場合は除去」などの前処理をしたうえで、
最後に TEXT で「XXX-XXXX」形式にそろえてあげると、
帳票やラベル出力時の見た目が安定します。
SUBSTITUTE で「-」を削除してから整形するパターンもよく使います。
=LEFT(TEXT(SUBSTITUTE(A2,"-",""),"0000000"),3)
& "-" &
RIGHT(TEXT(SUBSTITUTE(A2,"-",""),"0000000"),4)
A2 が「123-4567」でも「1234567」でも、
いったんハイフンを消して 7桁ゼロ埋めし、
最終的に「XXX-XXXX」にそろえ直す、という考え方です。
問題1
A2 に数値として「1234567」が入っています。
これを「123-4567」という郵便番号形式の文字列に整形したいです。
TEXT と LEFT・RIGHT を使った式を書いてください。
=LEFT(TEXT(A2,"0000000"),3) & "-" & RIGHT(TEXT(A2,"0000000"),4)
問題2
A2 に数値として「12345」が入っています(実際には「0012345」にしたい郵便番号)。
これを「001-2345」という形に整形する式を書いてください。
TEXT を使って 7 桁ゼロ埋めしてから、LEFT・RIGHT で分割してください。
=LEFT(TEXT(A2,"0000000"),3) & "-" & RIGHT(TEXT(A2,"0000000"),4)
問題3
A2 に文字列として「1234567」が入っています(左寄せ)。
これを「123-4567」という郵便番号形式にしたいです。
VALUE と TEXT、LEFT・RIGHT を組み合わせた式を書いてください。
=LEFT(TEXT(VALUE(A2),"0000000"),3) & "-" & RIGHT(TEXT(VALUE(A2),"0000000"),4)
問題4
A2 に「123-4567」や「1234567」など、ハイフンありなしが混ざって入力されています。
まずハイフンを削除し、7桁ゼロ埋めしたうえで「XXX-XXXX」に整形する式を書いてください。
SUBSTITUTE と TEXT、LEFT・RIGHT を組み合わせてください。
=LEFT(TEXT(SUBSTITUTE(A2,"-",""),"0000000"),3) & "-" & RIGHT(TEXT(SUBSTITUTE(A2,"-",""),"0000000"),4)
問題5
A2 に数値で郵便番号が入っています。
これを 7 桁ゼロ埋めした文字列(例:0012345)として表示したいです。
TEXT 関数だけを使った式を書いてください。
=TEXT(A2,"0000000")
TEXT の郵便番号整形の“型”は、この 2 段階です。
TEXT(A2,"0000000") ' まず7桁ゼロ埋め
LEFT(…,3) & "-" & RIGHT(…,4) ' XXX-XXXX に並べ替え
この型さえ覚えておけば、
桁不足やハイフン有無の違いに悩まされず、
いつでもきれいな「郵便番号表示」が作れるようになります。
