先頭に0を入れて桁を揃えたいというニッチな要望をExcel関数で解決

電脳備忘録

仕事中に質問を受けたもののすぐに解決できず、結局goole先生に問い合わせたので備忘録として残しておこうと思います。

郵便番号の下4桁を統一したい

受けた質問は「データをクレンジングしているうちに郵便番号の下の桁がバラバラになってしまったので4桁に揃えたい」というものでした。

Excelの住所録データに郵便番号の上3桁の列と下4桁の列があります。 下4桁の列のデータは4桁に統一されておらず2桁だったり3桁だったりばらばらです。

最終的には上3桁と下4桁の間に-を入れて連結させたいのですが、そのままやると例えば上3桁の列の値が「123」で、下4桁の列の値が「56」だった場合123-56」となってしまいます。
なるほどこれはまずいですね。最終的に「123-0056」と表示させたかったのですが、自分のスキルでは対応できなかったのでいつもどおりgoogle先生に問い合わせることにしました。

参照させていただいたエントリーはこちら。

4桁に揃え,4桁以上は先頭に「0」
詳しい解説は参照元のエントリーに書かれています。

参照元を参考に関数を組みました。マルパ(ry

=REPT(0,MAX(4-LEN(A1),0))&A1
参照元の記述は
=REPT(0,MAX(4-LEN(A1),1))&A1
となっていたのですが、これだと元データが4桁のときも0を入れて01234と表示されてしまいました。

Excel関数はよく使うものと使わないものもが二極化する傾向が強いので勉強になりました。

2012/01/12追記

友人の(゜マ゜)氏から下記の記述でもいいんじゃない?とのアドバイスを頂きました。
=RIGHT("000" & A1, 4)
こっちのほうがとっつきやすいですね。アドバイスありがとうございました。

広告

ブログの維持費に充てるでございます・・・。