前職ではExcelで0埋めをする場面がちょいちょいあったので、備忘録を兼ねて。
そもそも0埋めとは
(桁数を揃えるため)、桁数に足りない部分を0で埋めること。一般的には数値に適用することが多いが、アルファベット交じりの文字列に使うケースもある。気持ち悪いけど。
0埋めの方法
方法1.TEXT関数を使用
1-1.ノーマルな方法
一番手っ取り早いのは、TEXT関数で強制的に書式変換してしまう方法。
TEXT関数の第1引数に0埋めしたい数値を指定して、第2引数に0埋めした後の桁数だけ0を並べる。(ダブルクォーテーションで囲むのを忘れずに!!)
1-2.ノーマルな方法+α(REPT関数の使用)
ノーマルな方法は簡単だが、桁数が多くなると0を何回打ったかがよくわからなくなる。
また、後からファイルを見た後に「あれ、これ何桁だっけ?」とぱっと見でわからなくなることがある。
それを改善する方法がREPT関数。
REPT関数は、文字列を複数回繰り返せる(REPeaTだからREPT関数なんでしょう)。具体的にはこんな感じ。
上の関数だと「やっほー」を3回繰り返すようになっている。
これを1-1の第2引数に使うことで、「0を何回繰り返したか」が一目瞭然となり、可読性が上がる。
方法2.RIGHT関数を使う方法
方法1のほうがスマートだが、方法1では「アルファベット交じりの文字列」に使うと正しく処理されない。
TEXT関数の書式設定は、上記の場合だとあくまで「数値」の書式を変換するものなので、「文字列」だと何も起こらないことになる。
この場合は発想を変えて、「頭に0を埋められるだけ埋めて、必要な桁数を取り出す」という処理を行うことで解決する。
n桁の文字列にしたい場合は、(空白の場合も想定して)0をn個並べた文字列を左から結合することで、必ずn桁以上の文字列になるので、それをRIGHT関数で右からn桁取り出すことによって0埋めした文字列が作られる。
もちろん、0をn個並べるのは1-2で使ったREPT関数を使ってもOK。