数値をゼロ埋めして桁を揃える(REPT,LEN,TEXT)

数値を指定した桁数になるように 0 を追加することをゼロ埋め(ゼロパディング)といいます。例えば 123 を 5 桁になるようにゼロ埋めすると 00123 となります。ゼロ埋めする方法として数値に必要なだけの 0 を追加して文字列として取得する方法と、数値をゼロ埋めの表示形式を設定した文字列として取得する方法があります。ここでは Excel の関数である REPT 関数、 LEN 関数、 TEXT 関数を組み合わせて、数値をゼロ埋めして桁を揃える方法について解説します。

(2021 年 03 月 01 日公開 / 2022 年 03 月 01 日更新)

必要な数の0を追加する

最初に必要な桁数になるように数値の先頭に 0 を追加する方法です。次のシートを見てください。

必要な数の0を追加する(1)

1 桁から 4 桁の数値が入力されています。今回は 4 桁以下の数値は 4 桁として表示されるように先頭に 0 を追加してみます。 C3 セルに次のような数式を入力しました。

=REPT("0",4-LEN(B3))&B3

必要な数の0を追加する(2)

4 桁に足りない分の 0 を REPT 関数を使って作成し、対象の数値と & 演算子を使って結合しています。結合した結果は文字列として取得します。

Enter キーを押すと C3 セルには次のように表示されました。

必要な数の0を追加する(3)

C4 セルから C6 セルまで同じように数式を入力しました。

必要な数の0を追加する(4)

数値を指定した桁数になるように 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! エラーとなります。

必要な数の0を追加する(5)

そこで対象の数値が揃える桁数よりも大きな桁の数値が入力される可能性がある場合は、 IF 関数を使って次のように数式を変更してください。数値の桁数が揃える桁数よりも大きい場合は "0" の数を 0 個にしています。

=REPT("0",IF(LEN(B6)>4,0,4-LEN(B6)))&B6

必要な数の0を追加する(6)

必要な数の0を追加する(7)

これで対象の数値が何桁であってもエラーとはなりません。

今回使用した関数の解説は下記を参照されてください。

0埋めの表示形式を設定する

次に必要な桁数になるように数値の先頭に 0 が表示されるような表示形式を設定する方法です。次のシートを見てください。

0埋めの表示形式を設定する(1)

今回は 4 桁以下の数値は 4 桁として表示されるように表示形式を設定します。 C3 セルに次のような数式を入力しました。

=TEXT(B3,"0000")

0埋めの表示形式を設定する(2)

TEXT 関数を使って対象の数値の表示形式として "0000" を設定した場合の値を文字列として取得します。

Enter キーを押すと C3 セルには次のように表示されました。

0埋めの表示形式を設定する(3)

C4 セルから C6 セルまで同じように数式を入力しました。

0埋めの表示形式を設定する(4)

数値を指定した桁数になるように 0 埋めすることができました。なおこの方法を使用する場合は、対象の数値の桁数が揃える桁数よりも大きかったとしてもエラーにはなりません。

解説

対象の数値の表示形式を 4 桁の 0 埋めにするために "0000" を指定して TEXT 関数を使用しています。

なお数値に対して手動で「セルの書式設定」ダイアログを使って表示形式に "0000" を設定した場合、数値のままで表示形式だけが "0000" となりますが、 TEXT 関数を使った場合は文字列となる点に注意してください。

0埋めの表示形式を設定する(5)

0埋めの表示形式を設定する(6)

今回使用した関数の解説は下記を参照されてください。

-- --

Excel の関数である REPT 関数、 LEN 関数、 TEXT 関数を組み合わせて、数値をゼロ埋めして桁を揃える方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。