Excel のセルに桁数の多い数字を入力すると最後の桁がゼロに変更される


現象


Microsoft Excel では、セルに 15 桁を超える数字を入力すると、15 桁目より下位のすべての桁がゼロに変更されます。たとえば、クレジット カードの ID 番号を次の形式で入力した場合に、この問題が発生します。

####-####-####-####
Excel では、最後の桁がゼロに変更されます。

原因


Excel の浮動小数点数の格納方法および計算方法は、IEEE 754 仕様に準拠しています。そのため、数値として格納できる有効桁数は 15 桁のみで、15 桁目より下位の桁はゼロに変更されます。

回避策


この問題を回避するには、セルを文字列として書式設定します。文字列として書式設定すると、セルに 1,024 文字まで表示できます。

詳細


この現象は、計算を目的とした数字、つまり数値として書式設定されたセルでのみ発生します。文字列として書式設定されたセルには 32,767 文字まで入力できます。そのうち 1,024 文字までがワークシートに表示されます。



本来、ユーザー定義の表示形式は数値を使用して機能するように設計されているため、16 桁以上を格納するユーザー定義の表示形式を作成することはできません。たとえば、次の形式を使用して 16 文字のクレジット カード ID を数値として格納することはできません。

####-####-####-####
####-####-####-#### の形式を使用するセルに 1111222233334444 という数字を入力すると、セルに "1111-2222-3333-4440" と表示されます。格納しようとしている実際の数値は 1,111,222,233,334,444 であり、1,000 兆を超えています。しかし、この数値は大きすぎるため、最後の (最下位の) 桁が切り捨てられ、その位置にゼロが入ります。



文字列として書式設定されたセルに数字を入力する場合、すべての文字は入力したとおりに表示されます。これは、クレジット カード ID が数値として格納されず、文字列のまま格納されるためです。