• ベストアンサー

IF関数とROUNDの組み合わせが上手くいきません。

初級者ですが、仕事で必要なので助けてください。 エクセル2003で、A1~F1の数字を掛算割算して、結果をG1に反映します。G1の計算結果が9万9千9百までは10の位まで四捨五入、10万以上なら100の位を四捨五入というふうにしたいのですが、どうも上手くいきません。(そもそもIF関数では無理なのでしょうか?) =IF(G1>=99999,ROUND(A1*B1/C1*D1*F1,-3),G1<=100000,ROUND(A1*B1/C1*D1*F1,-4)) この式をちょっと変えたりして色々試してみているのですが、-3,-4の設定で10の位、百の位は変えられても99999/100000の間では変化してくれません。どうすればよいのでしょうか。

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

  • ベストアンサー
noname#17648
noname#17648
回答No.1

=IF(G1<=99999,ROUND(A1*B1/C1*D1*F1,-3),ROUND(A1*B1/C1*D1*F1,-4))

noname#30850
質問者

お礼

おぉ、できました。意外に単純な解決法でしたね(笑)ありがとうございます。

その他の回答 (2)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

質問が重複していたようですが、消されたようですね 再度回答します。 =ROUND(G1,-3-(G1>=100000)) とか =ROUND(A1*B1/C1*D1*F1,IF(A1*B1/C1*D1*F1<10000,-3,-4)) No.2 さんの回答では 10000以上1000000未満に対応 LOG10 を使用するなら =ROUND(A1*B1/C1*D1*F1,IF(LOG10(A1*B1/C1*D1*F1)<5,-3,-4))

noname#30850
質問者

お礼

クリックするときちょっと指がビビビッとなってしまって…「うわぁ~!」と思いつつ画面を閉じました(^^; 削除されててよかった…しかしsige1701様には再度書き込み頂いて恐縮です。 へ~ぇ、いろんな方法があるんですねぇ。LOG10の使い方も一緒に教えてくださりありがとうございます。

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

=ROUND(A1*B1/C1*D1*F1,INT(3-LOG10(A1*B1/C1*D1*F1)))

noname#30850
質問者

お礼

ろ、LOGとは?また勉強しなきゃ…参考にさせて頂きます。ありがとうございます。

関連するQ&A