Excel数値の有効桁数は15桁

この記事では、Microsoft Excelで数値計算を行う場合の有効桁数について説明します。

結論から書いてしまうと、
「Excelの有効桁数は15桁なので、それよりも細かい精度の計算はできない」
ということです。

有効桁数が15桁とはどういうことか

有効桁数が15桁というのはどういうことかというと、
16桁以上の数値を入力しても、16桁目より後の桁の数値を無視してしまうということです。

16桁目以降の数値が無視される例を見てみましょう。

16桁目以降が無視される例

A列に記載した数式を、C列の同じ行のセルに入力しました。

たとえば、C2セルには「12345678901234567890」と入力したのですが、
数値として処理された結果、16桁目以降が無視され「12345678901234500000」と表示されています。

また、C3セルには「=C2+1」と入力して、C2セルに1を足した値を計算しましたが、
加算された1が元の数値の20桁目に該当しますので、元の値と同じ数値が表示されています。

C4セルで、C2セルとC3セルを「=」で比較していますが、1を足したはずなのに同じ数値と判定されています。

16桁目以降の数値はどのように処理されるのか

上の例では、16桁目以降の数値「67890」が「00000」に変換されています。
つまり、後ろ5桁分が切り捨てられていることになります。

単純に16桁以上の数値を入力したときは、16桁目以降が切り捨てられることになるのですが、
計算の過程で桁数が15桁を超えた場合は挙動が異なり、16桁目の数値が四捨五入されることになります。

計算の過程で15桁を超えた場合の例

C2セルに「1.2345678901234500000」と入力しました。
その上で、C3セルでは10を、C4セルでは100を、それぞれ足した計算を行なっています。

0になる前の最後の桁の数値に着目すると、10を足したC3セルでは加算後に16桁目となった「5」が切り上げられ、
100を足したC4セルでは16桁目となった「4」が切り捨てられています。

このように、Excel上で計算した結果16桁を超えるような場合には、16桁目が四捨五入されることになるのです。

おわりに

Excelでの数値計算を行う際、有効桁数の影響で正確な結果が得られないケースがあります。

上で解説したような仕組みをおさえていないと、なかなか原因特定が難しいこともあるので、ぜひ覚えておいてください。