• ベストアンサー

エクセルで計算された数値をさらに切り上げたい場合

エクセルで困っています。 すでに、INTとMODを使い、整数部と小数点以下それぞれに別々の数字をかけ、その和を求めたセルがあります。 ですが、この中で小数点部分が9のみ切り上げたいのです。 9以外は切り捨てです。たとえば、 =INT(A1)*100+MOD(A1,1)*15.3 この式の答えの小数点第1位部分が9なら切り上げる、8以下なら切り捨てたいのです。 前に色々関数をつけてみて思いつく限り試しましたがエラーの嵐です。 なにかコツがあるのでしょうか? 全く分からず困っております。お分かりになる方、どうかよろしくお願い致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

>この中で小数点部分が9のみ切り上げたいのです。 0.1を足して切り捨てれば出来ます。 =TRUNC(INT(A1)*100+MOD(A1,1)*15.3+0.1) または =ROUNDDOWN(INT(A1)*100+MOD(A1,1)*15.3+0.1,0)

rugana-ya
質問者

お礼

回答ありがとうございました。 目からウロコでした! そうだったのか~と驚きです! 謎が解けました! 本当にありがとうございました。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 次の様な関数とすれば良いと思います。 =ROUNDDOWN(0.1+INT(A1)*100+MOD(A1,1)*15.3,0)

rugana-ya
質問者

お礼

回答ありがとうございました。 そうだったのか~とただひたすら感動しています。 今までの苦労はなんだったのかと・・・(^_^;) まじめにエクセル勉強しようと思いました。 ありがとうございました!

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

「切り上げる」とは15.9なら16に切り上げて16*100という計算結果を出せばよい, 15.8なら切り下げて15*100という計算結果を出せばよい, という意味ですか? それとも何か別の考えがあるのでしょうか。 「言葉」で説明するよりも,もっと具体的に「こういう計算結果が欲しい」とアナタの考える答えをキチンと示すと,もうちょっとヒトに理解して貰えるんじゃないかなと思います。 で。ご説明用に汎用で式を書いてみると =INT(A1)*100+IF(round(MOD(A1,1),1)=0.9,謎の切り上げ計算式,正体不明の切り下げ計算式) といった具合で。 #説明 MOD関数でそういう使い方をすると,浮動小数点誤差によって「0.9に見えても実は0.89999999999152」とかそういった結果が現れる場合が非常にしばしば多いので,気をつけないといけません。

rugana-ya
質問者

お礼

回答ありがとうございました。 自分でも混乱していまして、わかりにくい表現失礼致しました。 基本的に小数点以下が3の倍数にしかならない事が前提でしたので、9のみ切り上げたいと思っておりました。 色々な方法があるのだと驚いています。 ありがとうございました。

関連するQ&A

専門家に質問してみよう