• ベストアンサー

5捨6入の方法

以下の結果になるように五捨六入したいのですが、 何か簡単な関数はありますでしょうか? ご存知の方がいらしたら教えてください。 ちなみに、 =IF([セル]>0.5,ROUNDUP([セル]-0.5,0),IF([セル]<-0.5,-ROUNDUP(ABS([セル])-0.5,0),0)) が自分の作った式です。 5.500⇒5 5.501⇒6 3.500⇒3 3.510⇒4 0.000⇒0 -0.200⇒0 -0.500⇒0 -0.501⇒-1

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

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

単純に丸める桁数の数字だけを勘案するのなら、 簡単ですが、それ以下の数字も考慮するとなると あまり簡単にはいきませんね。 とりあえず、こんな式。 =IF(ABS(A1-TRUNC(A1))>0.5,TRUNC(A1)+1*SIGN(A1),TRUNC(A1)) ただ、一般的には○捨×入というのは、丸める桁の数字しか対象にしないので、 小数点一桁目で丸めるなら、5.500 も、5.501 も同じですけどね。

diamondo0901
質問者

お礼

お礼が遅くなりましたが、ありがとうございました。 とても助かりました。

その他の回答 (6)

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

こんな方法もあります。 =FLOOR(CEILING([セル],0.5*SIGN([セル])),SIGN([セル]))

diamondo0901
質問者

お礼

ありがとうございます。 お礼がおそくなりまして、申し訳ありませんでした。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.6

こんにちは。maruru01です。 とりあえず、こんな感じ。 =ROUND(A1-SIGN(A1)*NOT(MOD(A1,0.5))*0.1,) そもそも、負の数側では、 「<=0.5捨、>0.5入」 ですらないんですよね。

diamondo0901
質問者

お礼

お礼がおそくなりましたが、ありがとうございました。 そうです。むずかしいんですよね・・・ (^^;; 新しく関数作ってほしいです・・・

  • hanako171
  • ベストアンサー率31% (31/98)
回答No.5

No.4です。 失礼。書いてるうちにNo.3が先に回答でました。

  • hanako171
  • ベストアンサー率31% (31/98)
回答No.4

何桁目を5捨6入するのでしょうか。 それとも、No.1さんに対するお礼のように、   <=0.5捨、>0.5入 なのでしょうか。 何桁目かを5捨6入するならNo.1さんが最もシンプルでしょう。 そうでなければ、セルの値の小数部分を取り出し、0.5より大きい 場合は int(セルの値) 、0.5以下であれば int(セルの値)+1

diamondo0901
質問者

お礼

アドバイス大変ありがとうございました。 あまりに、お礼が遅くなり申し訳ありません。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

以下の方法は如何でしょうか。 =ROUND(ABS(セル)-0.001,0)*SIGN(セル)

diamondo0901
質問者

お礼

ありがとうございました。 お礼がかなり遅くなりましてもうしわけありませんでした。 ぺこ <(_ _)>

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

=ROUND(A10-0.1,0) 四捨五入関数を使ってみます ※ A10はセルの値 五捨六入を少数代一位で行う場合 四捨五入より0.1だけ大きいわけですから セルの値から0.1を引いた数で四捨五入 するといいです

diamondo0901
質問者

お礼

早速の回答ありがとうございます。 m(_ _"m)ペコリ ただ、これだと5.50001が6にならないのです。 最初私も同じ式を作ったんですが↑の問題がおきてしまったのです。 でもありがとうございます。

関連するQ&A

専門家に質問してみよう