0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excelによる0埋め(zero padding)

Posted at

前職ではExcelで0埋めをする場面がちょいちょいあったので、備忘録を兼ねて。

そもそも0埋めとは

(桁数を揃えるため)、桁数に足りない部分を0で埋めること。一般的には数値に適用することが多いが、アルファベット交じりの文字列に使うケースもある。気持ち悪いけど。

0埋めの方法

方法1.TEXT関数を使用

1-1.ノーマルな方法

一番手っ取り早いのは、TEXT関数で強制的に書式変換してしまう方法。
image.png

TEXT関数の第1引数に0埋めしたい数値を指定して、第2引数に0埋めした後の桁数だけ0を並べる。(ダブルクォーテーションで囲むのを忘れずに!!)

1-2.ノーマルな方法+α(REPT関数の使用)

ノーマルな方法は簡単だが、桁数が多くなると0を何回打ったかがよくわからなくなる。
また、後からファイルを見た後に「あれ、これ何桁だっけ?」とぱっと見でわからなくなることがある。
それを改善する方法がREPT関数

REPT関数は、文字列を複数回繰り返せる(REPeaTだからREPT関数なんでしょう)。具体的にはこんな感じ。
image.png
上の関数だと「やっほー」を3回繰り返すようになっている。

これを1-1の第2引数に使うことで、「0を何回繰り返したか」が一目瞭然となり、可読性が上がる。
image.png

方法2.RIGHT関数を使う方法

方法1のほうがスマートだが、方法1では「アルファベット交じりの文字列」に使うと正しく処理されない。
image.png
TEXT関数の書式設定は、上記の場合だとあくまで「数値」の書式を変換するものなので、「文字列」だと何も起こらないことになる。

この場合は発想を変えて、「頭に0を埋められるだけ埋めて、必要な桁数を取り出す」という処理を行うことで解決する。
image.png
n桁の文字列にしたい場合は、(空白の場合も想定して)0をn個並べた文字列を左から結合することで、必ずn桁以上の文字列になるので、それをRIGHT関数で右からn桁取り出すことによって0埋めした文字列が作られる。

もちろん、0をn個並べるのは1-2で使ったREPT関数を使ってもOK。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?