Excelで数字を0埋めする5つの方法

当ページのリンクには広告が含まれています。
  • URLをコピーしました!
生徒

Excelで固定桁で表示したいのですが0が消えてうまくできません

先生

Excelで0埋めして表示する方法を説明します

この記事でわかること
  • Excelで数字の先頭に0を表示して固定桁数で表示する方法
目次

Excelで数値を固定桁数で表示したい

Excelのセルに数字だけを入力すると、数値として扱われて先頭のゼロは消えてしまいます。

セルの書式の表示形式が標準だとこの動きになります。

このままだと、数字を固定桁数で表示したい場合に上手く表示できません。

この記事では、先頭の0が消さずに表示する方法について説明します。

整数の値の場合とは逆に、小数点以下の数字の末尾に0を表示して固定桁数にしたいケースでも0は消えてしまいます。

先頭に0を表示した場合の動きについて

先頭に0を表示すると文字列になり、数値と扱われなくなるので以下のことが起きます。

計算できなくなる

先頭に0を表示したセルの文字は、数値ではないので計算はできなくなります。

文字列形式の値を計算で使用しても、常に0と扱われます。

エラーメッセージが表示される

数字だけの値を文字列として入力していると、セルの左上隅に緑の三角マークが表示されます。

セルを選択すると表示されるアイコンをクリックすると、エラーの内容が表示されます。

このエラーが出ていても特に問題は無いのですが、目障りであれば以下の操作で消すことができます。

セルごとにエラーを無視する設定を行う

エラーアイコンをクリックすると表示されるメニューのエラーを無視するをクリックするとエラーが表示されなくなります。

エラーを無視するは、セルごとに選択する必要があります。

メリット
デメリット
  • 他のセルに影響を与えない
  • セルごとに行う必要があるので数が多いと面倒

エラーチェックをOFFにする

エラーアイコンをクリックすると表示されるメニューのエラーチェックオプションをクリックするとエラーチェック画面が開きます。

エラーチェック画面の文字列形式の数値のチェックをOFFにすると、このエラーは表示されなくなります。

メリット
デメリット
  • 一度設定すれば同じエラーは出ない
  • Excel全体の設定なので、他の同じ種類のエラーや他のブックのエラーにも影響する

方法1:セルの書式を文字列形式にする

Excelではセルの書式が標準だと先頭や小数点以下の末尾の0は消えてしまいます。

セルの書式を文字列に変えると、入力した文字のまま0が消えずに表示されるようになります。

セルの書式設定を開く

入力するセルを選択して右クリックメニューまたはCtrl+1キーを押してセルの書式設定を開きます。

表示形式で文字列を選択する

セルの書式設定の「表示形式」タブの分類:のリストで文字列を選択します。

小数点以下の末尾の0を表示したい場合

文字列形式の場合、小数点以下の末尾の0もそのまま表示されます。

方法2:セルの書式をユーザー定義にする

セルの書式をユーザー定義に変えることでも、固定桁数で先頭に0を表示することができます。

セルの書式設定を開く

入力するセルを選択して右クリックメニューまたはCtrl+1キーを押してセルの書式設定を開きます。

表示形式でユーザー定義を選択する

セルの書式設定の「表示形式」タブの分類:のリストでユーザー定義を選択します。

種類:の入力欄に0000と入力します。

0の数は0埋め後の桁数分入力します。

小数点以下の末尾の0を表示したい場合

ユーザー定義形式で、小数点以下の末尾の0を表示したい場合は、0000.0000のように小数点と小数点以下の桁数分の0も入力します。

方法3:先頭に'を追加する

セルの文字の先頭に'を追加すると、その後の文字は文字列として扱われます。

小数点以下の末尾の0を表示したい場合

先頭に'を追加した場合は、小数点以下の末尾の0も入力したまま表示されます。

関数を使う場合

Excelに用意されている関数を利用して0埋めする方法もあります。

関数は自身のセルの値を扱えない

関数で自身のセルの値を参照すると、循環参照のエラーメッセージが出ます。

セルの値を、自身のセルの値を加工して求めることになり矛盾が生じて計算できません。

方法4:TEXT関数を使用する

セルの文字の表示形式を指定するTEXT関数を使用して、文字列として0埋めで表示できます。

VBA
' セルの値を表示形式コードの文字として取得する
=TEXT(対象セル, "表示形式コード")

TEXT関数で、2番目の引数を"0000"とすることで0埋めできます。

VBA
' セルの値を4桁の数字の文字列として取得する
=TEXT(対象セル, "0000")

小数点以下の末尾の0を表示したい場合

TEXT関数で小数点以下の末尾の0を表示したい場合は、ユーザー定義形式の時と同様に"0000.0000"を指定します。

VBA
' セルの値を4桁の数字および小数点と小数点以下の4桁の数字の文字列として取得する
=TEXT(対象セル, "0000.0000")

方法5:REPT関数を使用する

文字列と繰り返し回数を繰り返すREPT関数を使用して0埋めすることもできます。

REPT関数で0を繰り返し追加する

REPT関数で、0を指定した回数追加することで0埋めできます。

ただ、このままだと元の数値によって桁数が変わってしまいます。

VBA
' 先頭に0を4個追加する
=REPT("0", 4)&対象セル

方法5-1:REPT関数の0埋め結果から指定した文字数を右始まりで切り取る

RIGHT関数は、右端の文字から指定した文字数を切り取ります。

REPT関数で0埋めした結果から、RIGHT関数で指定した文字数だけ切り取って取得します。

VBA
' 0を先頭に4個足した文字列の右端から4文字を切り取る
=RIGHT(REPT("0", 4)&対象セル, 4)

ただし、元の値の文字数が0埋め後の文字数より大きい場合は、この方法だと誤った結果になります。

方法5-2:REPT関数の0埋めの0の数を文字数によって変える

LEN関数を使うと、指定したセルの文字数を数えることができます。

0埋め前の文字数を数えて、0埋め後の桁数に足りない数だけ0を足すことで固定桁数で0埋めできます。

VBA
' 4桁になるまで0埋めする ※LEN(対象セル)は対象セルの文字数
=REPT("0", 4-LEN(対象セル))&対象セル

この方法だと、0埋め前の文字数が0埋めで揃えたい桁数より大きいとエラーで#VALUE!となります。

REPT関数は繰り返し回数に-1など負の数は指定できません。(0回だと空の文字""になります。)

方法5-3:REPT関数の0埋め前の文字数の方が大きい場合は何も足さないようにする

IF関数を使うと、条件を指定して結果の値を変えるtことができます。

VBA
' IF関数は条件によって値を切り替える
=IF(条件式, 条件式がTRUEの時の直, 条件式がFALSEの時の直)

IF関数を使って、0埋め前の文字数が固定桁数の文字数より大きい場合0それ以外の場合0埋め後の桁数に足りない数REPT関数に渡します。

VB
' 4桁以上の場合は0を追加せず、3桁以下の場合だけ4桁になるまで0埋めする
=REPT("0", IF(LEN(B6)>4, 0, 4-LEN(B6)))&B6

LEN関数で取得した0埋め前の文字数が0埋めで揃えたい桁数よりも大きい場合、0埋めしないようにREPT関数に0を渡します。

VB
' 4桁以上の場合は0を追加せず、3桁以下の場合だけ4桁になるまで0埋めする
=REPT("0", IF(LEN(B6)>4, 0, 4-LEN(B6)))&B6

小数点以下の末尾の0を表示したい場合

REPT関数で小数点以下の末尾の0を表示するのは、式が無駄にややこしくなり過ぎるのでおすすめしないです。

よかったらシェアしてね!
  • URLをコピーしました!
目次