- ベストアンサー
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
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
単純に丸める桁数の数字だけを勘案するのなら、 簡単ですが、それ以下の数字も考慮するとなると あまり簡単にはいきませんね。 とりあえず、こんな式。 =IF(ABS(A1-TRUNC(A1))>0.5,TRUNC(A1)+1*SIGN(A1),TRUNC(A1)) ただ、一般的には○捨×入というのは、丸める桁の数字しか対象にしないので、 小数点一桁目で丸めるなら、5.500 も、5.501 も同じですけどね。
その他の回答 (6)
- mshr1962
- ベストアンサー率39% (7417/18945)
こんな方法もあります。 =FLOOR(CEILING([セル],0.5*SIGN([セル])),SIGN([セル]))
お礼
ありがとうございます。 お礼がおそくなりまして、申し訳ありませんでした。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 とりあえず、こんな感じ。 =ROUND(A1-SIGN(A1)*NOT(MOD(A1,0.5))*0.1,) そもそも、負の数側では、 「<=0.5捨、>0.5入」 ですらないんですよね。
お礼
お礼がおそくなりましたが、ありがとうございました。 そうです。むずかしいんですよね・・・ (^^;; 新しく関数作ってほしいです・・・
- hanako171
- ベストアンサー率31% (31/98)
No.4です。 失礼。書いてるうちにNo.3が先に回答でました。
- hanako171
- ベストアンサー率31% (31/98)
何桁目を5捨6入するのでしょうか。 それとも、No.1さんに対するお礼のように、 <=0.5捨、>0.5入 なのでしょうか。 何桁目かを5捨6入するならNo.1さんが最もシンプルでしょう。 そうでなければ、セルの値の小数部分を取り出し、0.5より大きい 場合は int(セルの値) 、0.5以下であれば int(セルの値)+1
お礼
アドバイス大変ありがとうございました。 あまりに、お礼が遅くなり申し訳ありません。
- mu2011
- ベストアンサー率38% (1910/4994)
以下の方法は如何でしょうか。 =ROUND(ABS(セル)-0.001,0)*SIGN(セル)
お礼
ありがとうございました。 お礼がかなり遅くなりましてもうしわけありませんでした。 ぺこ <(_ _)>
- laputart
- ベストアンサー率34% (288/843)
=ROUND(A10-0.1,0) 四捨五入関数を使ってみます ※ A10はセルの値 五捨六入を少数代一位で行う場合 四捨五入より0.1だけ大きいわけですから セルの値から0.1を引いた数で四捨五入 するといいです
お礼
早速の回答ありがとうございます。 m(_ _"m)ペコリ ただ、これだと5.50001が6にならないのです。 最初私も同じ式を作ったんですが↑の問題がおきてしまったのです。 でもありがとうございます。
お礼
お礼が遅くなりましたが、ありがとうございました。 とても助かりました。