• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのRIGHT関数での質問です)

ExcelのRIGHT関数でセルの値が999と返ってきて困っています

このQ&Aのポイント
  • ExcelでRIGHT関数を使用してセルの値を取得していますが、一部のセルで「999」という値が返されてしまいます。
  • 参照セルが計算式でない場合は正常に値が返されるため、問題は参照セルの計算式にある可能性があります。
  • Excelのバージョンが2010であるため、そのバージョンに特有の問題が原因である可能性も考えられます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

計算誤差ですね。 見た目は「4300」と表示されていても、内部的には「4299.9999999999」になっています。 試しに、T8に「4299.9999999999」って入力してみて下さい。 見た目は「4300」って表示されます。 で、「4299.9999999999」を右から3文字取り出せば、当然「999」になるのは当たり前です。 TEXT関数を使うと「見た目通りの文字列」に変換できるので、結果が文字列で欲しい場合は =RIGHT(TEXT(T8,"000"),3) か =RIGHT("00" & ROUND(T8,1),3) にすれば、ちゃんと「300」になります。 また、下3桁が100未満のとき000~099ではなく0~99で、つまり、結果が数値で欲しい場合は =MOD(ROUND(T8,1),1000) にします。 エクセルでは「目に見えない誤差は、マジに目で見えない」のでご注意。 誤差があるか無いかの確認は、どこかのセルに =T8=4300 とかってやって「問題のセル」と「表示されている数値」を等号で比較した式を書いてみると判ります。 誤差が無ければ「TRUE」と表示され、誤差があれば「FALSE」と表示されます。

asou0192
質問者

お礼

TEXT関数導入で欲しい値が出ました。 分かりやすいご回答、ありがとうございます。 >見た目は「4300」と表示されていても、内部的には「4299.9999999999」になっています。 http://pc.nikkeibp.co.jp/pc21/special/gosa/index.shtml 小数点以下まで表示させて、 「整数で値が出てるはずなのに何故?」と思ったですが、「演算誤差」ってことであってますでしょうか? 誤差を発見してから対策するしか方法はないのでしょうか? 自分でも調べていきたいと思います。