Excel数式での四捨五入方法について

このQ&Aのポイント
  • Excelで数式を使って四捨五入する方法について教えてください。
  • 特定の数値に対して四捨五入を行いたい場合、どのような方法がありますか?
  • Excelの数式で四捨五入させる際にセルに値が入っていない場合にエラーが発生する問題があります。解決方法を教えてください。
回答を見る
  • ベストアンサー

#260の補足です。四捨五入の方法教えて下さい。

#5362 NO.#2にて、 IF(ISNUMBER(H2),IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,"")   の式を適用すれば、というご回答を頂きましたが、今度、この数式の結果の小数点以下を四捨五入させる必要が発生したため、 以下のように数式を変更しました。 =IF(ISNUMBER(H2),ROUND(IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,""),0) あるいは、 =ROUND(IF(ISNUMBER(H2),IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,""),0) すると四捨五入は出来るのですが、H2セルに数値を入れないと「#VALUE!」が再び出るようになりました。 どうすればいいでしょうか?

  • Youyou
  • お礼率64% (2251/3470)

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

  • ベストアンサー
  • baka
  • ベストアンサー率83% (15/18)
回答No.2

次の式を用いるとよいでしょう。 =IF(ISNUMBER(H2),ROUND(IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,0),"") *補足* "=IF(条件,真の処理,偽の処理)" なので、 条件 : ISNUMBER(H2) 真の処理 : ROUND(IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,0) 偽の処理 : "" となるわけです。 四捨五入の必要があるのは ISNUMBER における真、 つまり数値であった場合の処理にのみ行うわけですね。 IF ワークシート関数をからめた式は大変読みづらいですが、 条件、真および偽の関係をしっかりと把握出来さえすれば、 意図した処理がきちんとできるようになると思いますよ。

Youyou
質問者

お礼

たびたびすみません。 本当にご丁寧なアドバイス、ありがとうございました。 今回の一連の件で本当に勉強になりました。

その他の回答 (1)

noname#9414
noname#9414
回答No.1

新しいスレッドを立ち上げる際には、せめて前回の 質問のURLを載せておいてください。トップページから リンクがあるときはいいですが、後から見る人が 探しにくいので、質問文ももう少し工夫した方が いいですよ。 回答としては、セルにエラーを表示させないという 質問が過去にでていますので、参考にしてください。 キーワード「セル」で検索するだけで、発掘できる ので、次回からは検索も活用してください。 ではでは☆

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=5237

関連するQ&A

  • 範囲指定した箇所の数値を一括で四捨五入したい

    EXCELのマクロで 範囲指定をしたセルの数値(数式ではなく、数字です)を一括で四捨五入(小数点第3位を四捨五入(小数点第2まで表示))した数値を置き換えるマクロを知りたいのですが、調べられずに困っています。 (roundで四捨五入して、それを値だけ貼り付ければ・・と言うことではなく、あくまでもマクロでの方法を教えてください) よろしくお願いいたします。 バージョンEXCEL2000

  • Access2000 小数第3位で四捨五入

    質問させていただきます。 Access2000で以下の計算式を作りました。 金額 = Round(重量 × 単価,2) これは「金額」を小数第3位で四捨五入します。 ところが以下の数値の場合、正しく計算してくれません。 764.00 = 0.479 × 1595 本当は 764.005 だから 小数第3位で四捨五入すると 764.01 になると思うのですが・・・。 ちなみに以下の値では・・・ 754.44 = 0.473 × 1595 (754.435だから小数第3位で正しく四捨五入されています)。 やり方が悪いのでしょうか?それとも他に正しく計算できる方法があるのでしょうか?

  • エクセルで各セルそれぞれ四捨五入してからの合計を求めたいのです

    エクセル2000です。 ワークシート関数でこんな場合どうすればよいでしょうか? 添付画像のようにA列に数値データがあります。 途中に空白(数式で ="" が表示されています。)のセルもあります。 このA列のデータを各セルそれぞれ四捨五入してからの合計を求めたいのです。 画像ではB列を作業列にして、 =IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして ROUNDして合計していますが、作業列を使わなくとも良い方法があればと思い質問いたしました。 途中の空白が、数式による ="" では無くほんとの空白であれば、 =SUMPRODUCT((ISNUMBER(A2:A11))*ROUND(A2:A11,0)) で、一発で求められるのですが・・・・・。 ご教示いただければ幸いです。 宜しくお願いいたします。

  • EXCELでの四捨五入の後の計算方法

    EXCELで小数点以下第何位までかを指定したり、ROUNDを使ったりして表記したのち、その第何位かまでで四捨五入された数値をそのまま次の計算に使いたいのですが、どうやら元の数値が使われているようです。四捨五入処理された数値が次の計算に使われる方法、どなたかご存知の方どうかご教示お願いします。

  • C++の四捨五入

    プログラミングで言う四捨五入とはいったいなんなのでしょうか? 丸めと四捨五入が混同していてよくわからなくなってます C++でこれは四捨五入ですか? cout << fixed << setprecision(1) << num/7.0 << endl; いままで、とはいっても初心者ですが四捨五入の時は以下のようにしていました。 cout << round((num/7.0)*10)/10 << endl; 小数点第2位を四捨五入しなさいと言われた時はどちらも同じですか?

  • 四捨五入について

    "1.005"を小数点第三位で四捨五入して、"1.01"にしたいのですが、 "Math.round(1.005*100)/100"だと1.005*100が100.4999999999998になってしまい、結果的に"1.00"が返されてしまいます。何か良い解決方法はないでしょうか?

  • 四捨五入について質問です。

    四捨五入について質問です。 GUIアプリのエディットコントロール画面から、任意の数値を入力させ、 小数点以下n桁で四捨五入をさせたいと考えています。 しかし、なかなかうまくいかないのが現状です。 試したのは以下の通りです。 ・atofを用い、数値を取り込み、下位n桁目を四捨五入 -> 当然だめです ・atoiを用い、数値を取り込み、10^nをかけて整数値にしてから四捨五入 -> 0.05と0.0499...の違いがつけられない やはり文字列処理しかないのでしょうか? (文字列を取り込み、小数点以下n文字目が5以上かどうかで判定、のような・・・) もしよろしければ、皆さんのお知恵をお貸しください。

  • 小数点以下「3桁で」四捨五入?「3桁を」四捨五入?

    小数点第3位を四捨五入して、小数点第2位までの数値にすることを、 「小数点以下3桁で四捨五入する」というのは正しい日本語ですか? 「小数点以下3桁を四捨五入する」の方が正しいですか? それとも他にもっと適切な言い方はありますか? 国語に自信のある方、回答お願いします!

  • エクセルで四捨五入した数値に小数点以下第1位の0を表示させ、文字と合わせて表示させる方法

    エクセルで、 四捨五入した数値に、*をつけて小数点以下第1位まで表示させるのに、数式の中で、"*"&(ROUND(A1,1))を使いました。例えば、1.01の時、小数点1位の0が表示されず、*1となってしまいます。*1.0と表示させるにはどのようにしたらよいのでしょうか? 表の中で*をつけない数値(小数点以下第1位まで表示)がありますので、表示形式を、ユーザ定義、0.0にしています。

  • 四捨五入

    実数Xの小数点以下2桁目を四捨五入して実数Hとするプログラムと Xの10の位を四捨五入して整数Lとするプログラム(Xは正の整数) を教えてください。

    • ベストアンサー
    • Java

専門家に質問してみよう