• ベストアンサー

ROUND関数…小数点第2位で切り上げ・切り捨て

お世話になります。 Excel2003を使用しています。 計算結果の数字を別セルに・・・97.759はROUNDUP(97.759,1)で97.8 同様に…103.103はROUNDUP(103.103,1)で103.2になりますが、本当は103.1としたいのです。 →小数点第2位が0の時は「切り捨て」1以上は「切り上げ」したいのです。 IF(「小数点第2位が0」,ROUNDDOWN(103.1,1),ROUNDUP(103.1,1)) で、いいかと思うのですが、「小数点第2位が0」の条件がうまくあらわせないため、完成できません。ROUNDを使ってもできそうだとは思うのですが、ちょっとだけ焦りも加わり、なかなか整理ができません。この考え方はあっているでしょうか?皆様のお力を貸していただければありがたいです。 ちなみに… セルの表示形式は「数値」 小数点以下の桁数は「1」 負の数の表示形式は「-1,234.0](今回、数値は負になることは有りません。)

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.5

IF関数で分けなくてもあらかじめ数値に0.04を 加えておけばROUND関数だけで出来ると思います。 例えば、セルA1にの値を小数点以下第2位で0捨1入なら =ROUND(A1+0.04,1) で良いと思います。

lippi1977
質問者

お礼

一番シンプルな考えで、「なるほど!そうだよね!」と目からウロコでした。ROUND関数使えそうだな…というところまではいっても、その先の発想ができなくて…(@_@)こちらの式を使わせていただきます。 今回、私のまとまりのない考えがあふれ出る質問に適切に答えてくださって、本当にありがとうございました!一人で一方通行の考えで悩むより、三者三様の考え方が聞けて、皆さんの回答すべてが勉強になりました。全員にポイントを差し上げたいところですが、採用させていただいたNo.5様と最初に回答頂いたNo.1様にポイントをつけさせて頂きます。ほかの皆様にもこの場をかりてお礼申し上げます。

その他の回答 (4)

noname#254177
noname#254177
回答No.4

=IF(A1*10-INT(A1*10)<0.1,ROUNDDOWN(A1,1),ROUNDUP(A1,1)) B1にこの式を入力すれば、A1に入力した数値が目的の表示になります。

lippi1977
質問者

お礼

私の考え通りで、ほしい答えがでました。皆さんにいろいろな考え方を教えていただいて、今回、一番シンプルな方法で回答していただいたのを使わせてもうらうことにしました。勉強になりました。ありがとうございました!

  • bono223
  • ベストアンサー率31% (71/224)
回答No.3

ちょっと複雑になりますが、小数点第2位が0かどうかを判断するには、 1. 小数点第3位以下を切り捨てる。 2. 100倍する。 3. MOD関数を使い10で割った余りを出して、IF関数で0かどうかを判断させる。 という流れでできるように思います。もっとスマートな方法もあるかも知れませんが。

lippi1977
質問者

お礼

私の迷いをまとめてくださってありがとうございます。今回は一番シンプルな回答をしてくださった方がいて、そちらを使わせてもうらうことにしました。発想の転換ですよね…( ・o・)こちらの方法も勉強になりました。

  • Batistuta
  • ベストアンサー率28% (24/84)
回答No.2

=ROUNDUP(ROUNDDOWN(103.103,2),1) コレでいかがでしょうか?

lippi1977
質問者

お礼

「これもやってみたけど…」とよくよくみたら、自分の式は、桁数がちがっていたりして、正解がでなかった原因がわかりました(^_^;)一応、考え方は間違ってなかったとホッとしつつ…今回、一番シンプルな方法の回答を頂いたので、そちらを使わせてもうらうことにしました。回答ありがとうございました!

  • n-akina
  • ベストアンサー率31% (75/238)
回答No.1

こんにちは。  「小数点第2位が0」というのは100倍したものから10倍したものを小数点以下切り捨てて、10を掛けて引いたものが0を超えるかどうか判定すればよいと思います。  数値をAとすると、   A*100-int(A*10)*10>0  となります。 では。

lippi1977
質問者

お礼

ありがとうございます。参考にさせていただきます!

関連するQ&A

専門家に質問してみよう