【Excel初心者がよくハマる】計算結果がズレる理由⑮|「小数点の形式が違う」

初心者シリーズ

こんにちは。
Excel事務研究員です。

私はこれまで、Excelのトラブルに何度も悩まされてきました。

「同じ数字のはずなのに、なぜか結果が合わない」

そんな経験、ありませんか?

Excel初心者の頃は特に、

  • SUM関数の合計が微妙にズレる
  • 比較すると FALSE になる
  • 並び替えや集計がおかしい
  • 見た目は同じなのに一致しない

こういった現象にかなり混乱します。

でも実はこれ、Excelの「小数点の扱い」が原因になっていることが多いです。

今回の研究テーマはこちらです。

小数点の形式が違う

これはかなり気づきにくいトラブルです。

なぜなら、

見た目ではほぼ同じに見える

からです。

しかしExcelの内部では、別の数値として扱われていることがあります。

今回は、

  • なぜ小数点でズレるのか
  • Excelの内部では何が起きているのか
  • 初心者でもできる解決方法
  • 今後ズレを防ぐコツ

を一緒に研究していきます。


よくある状況

例えば次のようなデータがあります。

数値
10
10.0
10.00

見た目としては、
ほとんど同じですよね。

しかしこの状態で、

  • 比較
  • 集計
  • 条件判定
  • システム連携

を行うと、

なぜか結果がズレることがあります。

例えば、

=A1=B1

で比較すると、

FALSE

になるケースがあります。

「いや、同じ10じゃないの?」

と思いますよね。

でもExcelの内部では、
少し違う処理が行われていることがあります。


原因:表示と内部データが違う

ここがExcelで非常に重要なポイントです。

Excelには、

  • 見た目
  • 内部データ

の2種類があります。

例えば、

10

と表示されていても、内部では

10.0000000001

のようになっていることがあります。

逆に、

10.00

と表示されていても、内部では単純に

10

の場合もあります。

つまり、

表示=実際の値ではない

ということです。


なぜこんなことが起きるのか?

Excelは非常に細かく計算しています。

特に、

  • 小数計算
  • 割り算
  • 他システムからのデータ
  • CSVデータ
  • 関数の連続計算

では、

内部で細かい誤差が発生します。

例えば有名なのがこちらです。

0.1 + 0.2

数学では当然、

0.3

になります。

しかしExcelでは内部的に、

0.30000000000000004

のようになることがあります。

これはExcelのバグではありません。

コンピューター全般で起きる
「浮動小数点誤差」という現象です。


Excel初心者がハマりやすい場面

研究員として特によく見るのはこちらです。

① IF関数で一致しない

例えば、

=IF(A1=B1,"一致","不一致")

を使ったとき、見た目は同じ数字なのに

不一致

になることがあります。

これは内部の小数が違うためです。


② VLOOKUPで見つからない

VLOOKUPでも起きます。

例えば、

=VLOOKUP(A2,範囲,2,FALSE)

で検索しても、

#N/A

になることがあります。

原因は、検索値とデータの小数点以下が微妙に違うからです。


③ SUMの合計がズレる

大量データでは、

0.01

のような小さい誤差が積み重なります。

すると、

9999.99

になるはずが、

10000.0000002

のようになることがあります。


④ グラフや集計がおかしい

ピボットテーブルやグラフでも、

内部の誤差によって

  • 分類がおかしい
  • 集計がズレる
  • 同じ数値が別扱い

になることがあります。


見分けるポイント

次のような違和感があれば要注意です。

✔ 見た目は同じなのに一致しない

かなり典型的です。


✔ 比較結果が FALSE になる

=A1=B1

で FALSE が出たら疑いましょう。


✔ 集計結果が少しズレる

小数が絡む集計ではよくあります。


✔ ROUNDしていない

計算式が長い場合、
内部誤差が増えやすいです。


解決方法(初心者向け)

一番おすすめはこちらです。

=ROUND(A2,2)

これは、

小数第2位で丸める

関数です。

例えば、

0.300000000004

0.30

に整えてくれます。


ROUND関数の基本

小数第2位まで

=ROUND(A2,2)

整数にする

=ROUND(A2,0)

小数第1位まで

=ROUND(A2,1)

ROUNDを使うべき場面

研究員としては、次の場面ではROUNDを強くおすすめします。

① 金額計算

請求書や経費精算は特に重要です。


② 割合計算

消費税や比率は誤差が出やすいです。


③ 比較処理

IF関数やVLOOKUP前に整えると安定します。


④ CSV・システム連携

システム間で誤差が出やすいです。


表示形式だけではダメな理由

初心者の頃によくあるのがこちらです。

「小数点を非表示にしたからOK」実はこれは危険です。

なぜなら、表示を変えただけで内部データは残っているからです。

例えば、

0.30000000004

を小数2桁表示にしても、

内部ではそのままです。

つまり、

見えなくなっただけ

です。

だからこそ、ROUND関数で実際に値を整えることが重要です。


研究員メモ

Excel初心者の頃の私は、

「同じ数字なのに、なんで違うの?」とかなり混乱していました。

でもExcelを長く使うと分かってきます。

Excelは、

見た目ではなく内部データで判断している

ということです。

人間から見ると同じでも、Excelから見ると

  • 小数が少し違う
  • 桁数が違う
  • 形式が違う

だけで別データになります。

だからこそ重要なのが、

数値を揃える

という考え方です。

この意識を持つだけで、Excelのトラブルはかなり減ります。


今日の研究まとめ

計算結果がズレる理由⑮

小数点の形式が違う


よくある症状

  • 比較結果がFALSE
  • SUMが微妙にズレる
  • 一致検索できない
  • 集計結果が違う

原因

表示ではなく、内部の小数値が違うため。


解決方法

=ROUND(セル,桁数)

覚えておきたいポイント

Excelでは

見た目と内部データは違う

これを覚えるだけでもかなり強くなれます。


次回の研究予告

Excel初心者がやりがちなミス研究。

次回から新テーマです。

② 表の作り方のミス⑯

「空白行を入れる」

見やすくするために入れた空白行が、

実は

  • 集計
  • 並び替え
  • フィルター
  • ピボットテーブル

を壊していることがあります。

これも初心者がかなりハマりやすいポイントです。

次回も一緒に研究していきましょう。

コメント

タイトルとURLをコピーしました