プロが教える店舗&オフィスのセキュリティ対策術

以前、↓↓にて
http://oshiete1.goo.ne.jp/qa1345491.html
「excelで普通に四捨五入をするとなると
 『ROUND』などで小数点以下の桁数を指定しますよね。
 そうではなく、有効桁数3桁で四捨五入…例えば、
 0.1234ならば0.123
 1.234ならば1.23
 12.34ならば12.3
 123.4ならば123…のように
 数字を四捨五入させる関数(?)はあるのでしょうか。」
と質問し、
=ROUND(A1,-INT(LOG(A1))-1 + 3)
とか
=VALUE(TEXT(A1,"0.00E+00"))
といった方法を教えていただいたのですが、

0.1234 なら 0.123
・・・
123.4 なら 123
までは同じなのですが、
1234.5 なら 1230ではなく1235
12345.6 なら 12300ではなく12346
つまり、1000未満の場合は以前と同じく有効数字3桁で
1000以上の場合は小数点以下四捨五入としたい場合は、
IF関数で
=IF(1000>A1 ・・・のように条件指定してやるしかないのでしょうか。
(A1の部分にも長々した数式が入るもので)
数式がかなり長くなってしまい、見づらいので
なにか良い方法があればと思ったのですが…

A 回答 (6件)

#03です


=ROUND(A1,2-INT(LOG(A1)))
でもいけました。こちらの方が断然短い式になります
    • good
    • 3
この回答へのお礼

2度もありがとうございます。
なるほど、コチラの方が短い式になりますね。
ありがとうございました!参考にさせていただきます!

お礼日時:2007/10/03 13:39

#1の方を、参考にして



=ROUND(A1,(-INT(LOG(A1))+2)*(A1<1000))

ただし、負の数については、考慮してません。
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/10/03 13:40

有効桁数をB1に入れてあるモデルです。

「1000以上」ではなく、整
数部が有効桁以上の数値の場合に丸め対象の桁が上がっていかない
ようにという観点で考えました。従って、有効桁数が4桁であれば、
10000以上の場合に切り替わります。

=ROUND(A1,MAX(B1-CEILING(LOG(A1),1),0))
    • good
    • 1
この回答へのお礼

なるほど、有効桁数を指定してということですね。
参考にさせていただきます。ありがとうございました。

お礼日時:2007/10/03 13:39

=ROUND(A1*10^(-INT(LOG(A1,10))),2)*10^INT(LOG(A1,10))


ではいかがでしょう。

ただし負の値の場合はLOG関数がエラーになるので適用できません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいた中では一番私の思っていたものに当てはまります。
こちらの式を使って表をつくってみたいと思います。
ありがとうございました。

お礼日時:2007/10/02 17:02

123.4---->100


12345.6-->12346

このように丸める桁を値によって変えたい場合は、次のようにも書けます。

=ROUND(A1,(ABS(A1)<1000)*-2)

IF関数は論理式で表現できるます。
ですから、論理式を利用すれば丸める桁である0と2をA1の値で切り替えられます。
    • good
    • 0
この回答へのお礼

すみません、ちょっと仰る数式が私の欲しいものとは違ったようです。
私が知りたいのは
123.4---->123(0.4を四捨五入)
12345.6-->12346
です。
1000未満の場合は有効数字3桁で丸め、
1000以上の場合は小数点以下を丸めて整数にするということです。
分かりづらい質問ですみませんでした。

お礼日時:2007/10/02 17:00

=IF(A1>=1000,ROUND(A1,0),ROUND(A1,-INT(LOG(A1))-1+3))



長すぎますかね?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
仰るのと全く同じやり方で今までやっていたんですが、
質問にも書いたとおりA1の部分に実際はセルを指定するのではなく
長々とした式が入るもので、それが4回も出てくるため
もう少し良い方法は無いものかと質問させていただきました。
質問の書き方が言葉足らずでしたね。申し訳ありません。

お礼日時:2007/10/02 16:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!