数値をゼロ埋めして桁を揃える(REPT,LEN,TEXT)
数値を指定した桁数になるように 0 を追加することをゼロ埋め(ゼロパディング)といいます。例えば 123 を 5 桁になるようにゼロ埋めすると 00123 となります。ゼロ埋めする方法として数値に必要なだけの 0 を追加して文字列として取得する方法と、数値をゼロ埋めの表示形式を設定した文字列として取得する方法があります。ここでは Excel の関数である REPT 関数、 LEN 関数、 TEXT 関数を組み合わせて、数値をゼロ埋めして桁を揃える方法について解説します。
(Last modified: )
必要な数の0を追加する
最初に必要な桁数になるように数値の先頭に 0 を追加する方法です。次のシートを見てください。
1 桁から 4 桁の数値が入力されています。今回は 4 桁以下の数値は 4 桁として表示されるように先頭に 0 を追加してみます。 C3 セルに次のような数式を入力しました。
=REPT("0",4-LEN(B3))&B3
4 桁に足りない分の 0 を REPT
関数を使って作成し、対象の数値と &
演算子を使って結合しています。結合した結果は文字列として取得します。
Enter
キーを押すと C3 セルには次のように表示されました。
C4 セルから C6 セルまで同じように数式を入力しました。
数値を指定した桁数になるように 0 埋めすることができました。
解説
0 埋めを行うために REPT
関数を使用します。例えば REPT("0",4)
と実行すると "0000" という文字列を作成します。実際にいくつの 0 が必要なのかは 4 から対象の数字の桁数を引いた数となるので 4-LEN(B3)
で取得しています。今回は数値が 325 で 3 桁なので、 0 埋めに必要な 0 の数は 4-3=1 です。
作成した文字列の "0" と数値を &
演算子で結合します。今回の場合は "0" と 325 を結合するので "0325" という文字列を取得することができました。
なお今回の数式では対象の数値が 4 桁よりも大きい数値だと #VALUE!
エラーとなります。
そこで対象の数値が揃える桁数よりも大きな桁の数値が入力される可能性がある場合は、 IF
関数を使って次のように数式を変更してください。数値の桁数が揃える桁数よりも大きい場合は "0" の数を 0 個にしています。
=REPT("0",IF(LEN(B6)>4,0,4-LEN(B6)))&B6
これで対象の数値が何桁であってもエラーとはなりません。
今回使用した関数の解説は下記を参照されてください。
0埋めの表示形式を設定する
次に必要な桁数になるように数値の先頭に 0 が表示されるような表示形式を設定する方法です。次のシートを見てください。
今回は 4 桁以下の数値は 4 桁として表示されるように表示形式を設定します。 C3 セルに次のような数式を入力しました。
=TEXT(B3,"0000")
TEXT 関数を使って対象の数値の表示形式として "0000" を設定した場合の値を文字列として取得します。
Enter
キーを押すと C3 セルには次のように表示されました。
C4 セルから C6 セルまで同じように数式を入力しました。
数値を指定した桁数になるように 0 埋めすることができました。なおこの方法を使用する場合は、対象の数値の桁数が揃える桁数よりも大きかったとしてもエラーにはなりません。
解説
対象の数値の表示形式を 4 桁の 0 埋めにするために "0000" を指定して TEXT 関数を使用しています。
なお数値に対して手動で「セルの書式設定」ダイアログを使って表示形式に "0000" を設定した場合、数値のままで表示形式だけが "0000" となりますが、 TEXT 関数を使った場合は文字列となる点に注意してください。
今回使用した関数の解説は下記を参照されてください。
-- --
Excel の関数である REPT 関数、 LEN 関数、 TEXT 関数を組み合わせて、数値をゼロ埋めして桁を揃える方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。