• ベストアンサー
  • 困ってます

#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!」が再び出るようになりました。 どうすればいいでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数74
  • ありがとう数7

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

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

次の式を用いるとよいでしょう。 =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 ワークシート関数をからめた式は大変読みづらいですが、 条件、真および偽の関係をしっかりと把握出来さえすれば、 意図した処理がきちんとできるようになると思いますよ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

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

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

  • 入力した数値を元にその他の数値を効率よく求める方法

    お世話になります。 Excelの関数について質問させていただきます。 図を見て頂ければ早いかとは思いますが、元の量(A2~A5)を基準に、 現在ある量を入力する事でその他の量が自動で計算できる式を作りたいと思っています。 現時点で試しているのは IF関数を使い、数値の入っているセルを見つける →数値が入っていれば割合を求め数量を出す →数値がなければ次のセルに移動、以下繰り返し 具体的にD2のセルには以下のような計算式が入っています。 IF(ISNUMBER($C$2),$C$2/$A$2*A2,IF(ISNUMBER($C$3),$C$3/$A$3*A2, IF(ISNUMBER($C$4),$C$4/$A$4*A2,IF(ISNUMBER($C$5),$C$5/$A$5*A2, IF(ISNUMBER($C$6),$C$6*B2," "))))) 今は5行しか入っていないので動きますが、実際はもっとある為ネストの制限に引っかかりそうです。 なにより計算式が長くて修正するにも一苦労してしまいます。 ここまで来て行き詰ってしまいました。 既出でしたら申し訳ありません。知恵を貸して下さい。よろしくお願いします。

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

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

その他の回答 (1)

  • 回答No.1
noname#9414
noname#9414

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

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • =SUM(ROUND(A1,0),ROUND(A3,0),ROUND(A10,0))をもっと簡単に

    エクセル200です。 A1、A3、A10の各セルにある数値を四捨五入してから合計するのに =SUM(ROUND(A1,0),ROUND(A3,0),ROUND(A10,0)) でできるのはもちろん存じておりますが、もっと簡単に書く方法はないでしょうか? A2、A4からA9までのセルが空白であれば =SUMPRODUCT(ROUND(A1:A10,0)*1) A2、A4からA9までのセルが文字列であれば {=SUM(IF(ISNUMBER(A1:A10),ROUND(A1:A10,0),""))}(配列数式) でできるのですが、数値であるために使えません。 上記のA1、A3、A10はあくまで一例で、実際は同一列ではありますがもっとセル数が多いのです。そのため簡単に書ける方法を探しています。 よい方法があればご教示くださいませ。

  • エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです!

    エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです! いま=O48*($E$8/100)となっている算式を、 =IF(ISNUMBER(O48*($E$8/100)),O48*($E$8/100),"N/A") としたいのです。 また、このような変換を行うべきセルが数百個あり、これをボタンひとつもしくは Ctl+aなどで行えるようにしたいのです。 式の返還は単純で、最初の式をxとすると、IF(ISNUMBER(x),x,"N/A") と置き換えるだけなので、たとえばxという変数に今のセル内の式を代入し、それから IF~の式の指定場所にxを入れる・・・というようなプログラミング処理ができるのでは とかんがえ、質問しました。 よいアイデアをください!!明日までにやる必要があり困っています・・・

  • EXCEL関数使用で結果が理解できません

    OS:WindowsXP EXCEL2000 以下の表が既に作成されています。 行 :O(英文字オーです) ------------------ 列 6 | 96 7 |216 8 |216 9 |185 10 |(空欄) 11 |(空欄) ここで、セルR6に以下の式が入力されています。 =INDIRECT("R"&MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))&"C"&COLUMN(O6:O11),FALSE) セルR6には185が表示されているため、空欄でない最後の行の数値を 出力させる式のようなのですが、よく理解できません。 ISNUMBER(O6:O11)は全部数値だった場合にTrueになるのですか? ROW(O6:O11)は6でした。 IF(ISNUMBER(O6:O11),ROW(O6:O11))はFALSEです。 MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))は0です。 COLUMN(O6:O11)は15です。 どなたか知恵をお貸しください。

  • max関数で#N/A

    k1,o1,r1にそれぞれ数式が入っています。 u1で =max(k1,o1,r1) と最大値を求めたいです。 すべてのセルが数値になっているときはもちろんu1も数値になりますが、 #N/Aがあると、u1は#N/A になります。 連続しているセルではないので、{=MAX(IF(ISNUMBER( … は使えません。 やり方をご教授ください。 エクセル2010を使ってます。 よろしくお願いします。

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

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

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

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

  • ExcelのISNUMBERについて

    (1)A2に数値が入った場合、A1には「1」 (2)A3に数値が入った場合は、A1には「2」 (3)A4に数値が入った場合は、A1には「3」 とするには、どうすればいいのでしょう? (1)の数式は =IF(ISNUMBER(A2),1,"") ですが、 その後の(2)(3)が続けてどう入力すればよいのか分からなくて、、、 教えていただけますでしょうか?

  • Excel 日付が週末の場合、金曜日を返す(補足)

    昨日、以下のような質問をしました。 >> セルI6に1/1と入力されています。 セルF6には"10日"と入力されています。 セルK6には式で、K6=I6+F6-2 と入力して、 F6で選択された日数("10日")を足して、 そこから2日前を 自動的に表示されるように式が入っています。 ここで表示される値は「1/8」と、ここまではOKなのですが、 更にこの結果の値を 「土曜、もしくは日曜日の場合は前の金曜日の日付を返す」 という条件で完成させたいのです。 結果的にK6には「1/18」を自動的に表示させたいのですが、 条件付き書式で以下のようにしても「1/19」のままになってしまいます。 =IF(WEEKDAY($M6,1)=1,K6-2,K6) どのようにすれば、うまく表示する事が出来ますでしょうか? ◎これに対して、明回答をくださいましてこの質問に対しては打開策が見つかりました。 ありがとうございます。 ちなみに回答は以下です。 >>  K6セルには次の様な関数を入力されると良いと思います。 =IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)>6),"") -------------ここからが、質問になります。------------- 最後にもう1つ、「10日」と選択されているセルはプルダルン式のセルで10日~15日を選択出来るようになっていて この式を「10日」以外が選択された場合に適用されるようにしたいのです。 なので「11日」~「15日」が選択された場合に =IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)> の式で動くようにするには、どうすれば良いでしょうか? もし出来たら、ご教授願います。

  • セル内の文章から文字を抜出したいです

    セル内の文章から文字を抜出したいです。 文字の書き方は、本当にランダムな並び方をしています。 [例] A1セル あいうえお12345 ↓ B1セル ○○ A2セル かきくけこ456789 ↓ B2セル ■■ いま、下の関数式を入れていますが、5つしか文字を抜き出せません。 せめて倍の10個は抜出したいのですが、どうすればいいでしょうか? =IF(ISNUMBER(FIND("あいうえお",A2)),"OO",IF(ISNUMBER(FIND("さしすせそ",A2)),"■■",IF(ISNUMBER(FIND("かきくけこ",A2)),"□□",IF(ISNUMBER(FIND("たちつてと",A2)),"◇◇",IF(ISNUMBER(FIND("なにぬねの",A2)),"△△","その他"))))) よろしくお願いいたします。

  • Excelの関数、四捨五入について

    ご質問があります。 現在Excelで表を作っているのですが、どうしても四捨五入で躓きます。 例) A 1234.56 →四捨五入(ROUND.1) →B 1235 上記のようになるのですが 例) B 1235×0.9 → 1111.1(小数点第一表示) 上記のようになってしまいます。 四捨五入したBのセルに対し0.9をかけているはずなのに 四捨五入を行う前のAに0.9をかけた答えが出てしまうのです。 これの謎が解けず困っています。 どなたかお分かりの方がいましたら宜しくお願い致します。