Excel関数 逆引き集 | 郵便番号整形 → TEXT

Excel
スポンサーリンク

概要

「郵便番号を 1234567 から 123-4567 の形にしたい」
12345612345 など桁が足りないときは、先頭に 0 をつけたい」
「数値として持っている郵便番号を“見せる用”にきれいな文字列に整えたい」

こういうときに使えるのが TEXT 関数を使った「郵便番号の整形」です。

ポイントは次の2段階です。

  1. まず「7桁ゼロ埋め」の文字列にする
  2. その文字列を「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)

流れをかみ砕くと:

  1. TEXT(A2, "0000000")
    → まず 7桁ゼロ埋めの文字列を作る
  2. LEFT(…, 3)
    → その先頭 3 桁を取り出す(例:"1234567""123"
  3. RIGHT(…, 4)
    → その末尾 4 桁を取り出す(例:"1234567""4567"
  4. 左3桁 & "-" & 右4桁
    → 「123-4567」の形に組み立てる

元の値が 1234567 でも 12345 でも、
最初にTEXTで「00012345 → 0012345 → 7桁」にそろえているので、
必ず「XXX-XXXX」の形で整えられます。


元データが「文字列」の場合の扱い

文字列でも、まずは 7桁にそろえる

元データがすでに「文字列」の場合(左寄せで "1234567" など)もあります。
この場合もやることは同じで、

  1. いったん VALUE で数値に変換
  2. TEXT で 7桁ゼロ埋め
  3. 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 に並べ替え

この型さえ覚えておけば、
桁不足やハイフン有無の違いに悩まされず、
いつでもきれいな「郵便番号表示」が作れるようになります。

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