• ベストアンサー

ROUNDDOWNとIFの組合せでエラー表示になる

数量×単価=の計算式で 数量が空白なら空白、そうでなければ数量×単価 で小数点切捨ての値が出るように作成しました。 ROUNDDOWN(IF(B27="","",B27*D27),0) 数量に値が入っている場合は問題ないのですが 数量が空白だと#VALUE!が表示されてしまいます。 どうすればエラー表示されなくなるのでしょうか?

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

  • ベストアンサー
  • malixiang
  • ベストアンサー率38% (10/26)
回答No.4

こんにちは。 関数の順番が違っていると思います。 =IF(B27="","",ROUNDDOWN(B27*D27,0)) IF関数を使う場合は、先頭にきます。 考え方としては、 もしも、これだったらこれ、もしくは、それって感じです。 お試しください。

thebun
質問者

お礼

ありがとうございました! 言われてみればそうでした。 この式でないとおかしいですね。 難しく考えすぎていました。

その他の回答 (3)

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.3

書き方が変です。空白も切り捨てしようとするからエラーになります。 最初に空白かどうかを判断して、その場合空白としてそれ以外を切り捨てとしないとダメです。 書いた式だと、IFで切り分ける前に切り捨てを宣言していますからおかしいです。 =IF(B27="","",ROUNDDOWN(B27*D27,0))が正解です。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ROUNDDOWNの中ではなく、その前にIFで空白をチェックすればよいです。 =ROUNDDOWN(IF(B27="","",B27*D27),0) ↓ =IF(B27="","",ROUNDDOWN(B27*D27,0))

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

以下のように式を変更してはどうでしょうか。 =IF(B27="","",ROUNDDOWN(B27*D27),0)

関連するQ&A

  • rounddownでのエラー対処

    以下の式での結果を、小数点切捨てで表示させたいと思います。 =IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))) 上の式にROUNDDOWN()関数を使って見ました。 一応2つ目の式は元の関数も括弧して試してみました。 =ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0) =ROUNDDOWN((IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),I(M5>0,$O$5/$P$5*M5,$O$5)))))),0) ここで質問ですが、セルE5の数字を消す(空白)とエラーになってしまいますので、エラーの回避方法をお願いします。(式の通りE5が空白であれば結果も空白にさせたい) ROUNDDOWN()関数を使用する前はエラーにはなりません。 補足 ・上記はG5セルの関数です ・$O$5には小数点以下3桁までの数字が入っています ・$P$5には必ず正整数が入ります ・F列には=ROUNDDOWN($N$5*E5,0)の式が入っており、$N$5には小数点以下2桁までの数字が入っています(※質問式とは直接関係ありません) ・同じ行でL列とM列同時に数字が入ることはありません。またどちらも空白になることはあります。何れも正整数か空白です。 ・その他セルには正整数か空白が入ります =IF(ISERROR(ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0)),"",ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0)) と入力するとエラーは回避できますが、式がとても長くなり見づらいです。条件付書式も使用しないで考えたいです。 質問に元式を使用していますので分かり難いかもしれませんが、回答の方宜しくお願いします。

  • エクセルの切り捨て?

    こんにちは・・お世話になります。 エクセルです。 見積書で単価が未入力の時 (単価が未決定時に空白設定が必要なため)に 金額欄のセルD2に「=IF(B2="","",C2*B2)」の設定をしています。 B2は単価、C2は数量です。 金額欄(セルD2)の答えで小数点以下を切り捨てにする方法が見つかりません・・・ 空白設定と切り捨てが出来る計算式を教えて頂けないでしょうか。 宜しくお願い致します。

  • ROUNDDOWNで%表示

    excel2002を使っています。 A1/A2の答えを小数点2位までで切捨てし、%表示にしたいのですが、普通に=A1/A2でパーセント表示で小数点以下桁数2位にすると四捨五入されてしまいます。 ROUNDDOWN(A1/A2,2)にして同じくパーセント表示にすると小数点以下が0になってしまいます。 どうしたらうまく表示できるのでしょうか?

  • ROUNDDOWNについて

    いつもお世話になってます。 =ROUNDDOWN(A1/1.05)と入れたら エラーになってしまいます(T_T) 初心者で何が足りないんだかよくわかりません。 税抜き価格を小数点切り捨てで出したいんですが。 おわかりになるかた助けてください。

  • Excelのrounddown関数について

    Excelのrounddown関数について教えてください。 Excel2003でrounddownで0(小数点以下を切り捨て)を入れて計算させた所、例えば、17,600 *0.1=1759となってしまい、1760にはなりません。単純に考えても、電卓で計算しても17,600 *0.1=1760になるはずですが、何故このようになってしまうのでしょうか? 因みに式ですが、=ROUNDDOWN($P4*0.1,0)で、P4(隣のセル)の数値を計算します。 例の場合、P4には3200*5.5の結果が入りますので、ここにも小数点以下の数値は発生しません。 何か設定が違っているのでしょうか?

  • IF文の使い方

    IF文の使い方について教えて下さい.一応ヘルプを見て以下のようなIF文を作ったのですが,文字列と認識されてしまっているようで全く意図したような数字が入りません. なお,IF文を入れたセルは書式で確認しても文字列ではなく,標準になっています. やりたいことは,C列の数字がゼロならB列の数字(単価)を使って,ゼロでなければC列の数字(区別単価)を使ってD列の数量をかけた合計をE列に表示(計算)させたいのですが. 下の例だとEのセルには125*1200が入ってもらいたいのです. 単価    特別単価    数量     合計 B列     C列      D列     E列 125      0      1200    IF(C5=0,=D5*B5,D5*C5)

  • エクセルのIF関数をつかい=が0なら非表示とした場合の矛盾

    はじめまして。どうぞお力をおかしください。 [質問] エクセルで人材派遣の見積書を作成しています 項目は、 ・A-数量(派遣人数や勤務時間) ・B-単位(人や時間数) ・C-単価(1人や1時間あたりの単価) ・D-小計(1日分の合計) ・E-数量(勤務日数) ・F-単位(日) ・G-合計(ひとつの現場の人件費合計) ★EFGには何も入力しないこともあります となります。 現在以下のように入力しております。 (1)D=A×C→D=IF(A1*C1=0,"",A1*C1) (2)G=D×E→G=IF(D1*E1=0,"",D1*E1) しかし!!これではひとつめのDには希望通り何も入力されていないときには空白で数値がある場合のみ数値が計算されているのですが、EFGに何も入力していないとGには空白となり、Dの小計の金額が表示されないのです。 どうしたらEFG未入力の際にはDの数値が表示されるようになるのでしょうか?? どうかお助けください。お願いいたします

  • EXCELのマクロで数値比較

    「数量」「単価」「金額」のEXCELの表があり「金額」欄が「入力」であったり「計算式」であったりするため「金額」の不整合をチェックするマクロを作りました。(コードの一部は下記) For cntR = 5 To MaxRow If Cells(cntR, 8).Value <> _ Application.RoundDown(Cells(cntR, 6).Value * Cells(cntR, 7).Value, 0) Then Cells(cntR, 23) = "計算違い" End If Next 計算違いとは思えないのに”計算違い”となってしまいます。 テストした表の内容 数量:200 単価:20、20.1、20.3・・・・・20.9、21 金額:=数量*単価の計算式が入っている。 マクロ実行後”計算違い”となってしまうケース。 単価:20.1と20.4の時 ※金額に手入力してみる:”計算違い”になりません。 ※金額欄の計算式を変えてみる=Rounddown(数量*単価,0):”計算違い”になりません。 どこに問題があるのか特定できずにいます。 EXCEL2007・2000の両バージョン下でマクロに手を加えてます。

  • エクセルでの関数について

    お世話になります。 仕事で各商品の単価を比較するためのリスト作成を頼まれたのですが、条件が複雑なため、 関数で悩んでいます。画像を参考に、順を追って説明させて下さい。 1.まずリストに、各商品の単価を入力 2.入力された単価は作業列(1)~(3)に反映されます。このセルに入っている計算式は、   セルG6 =IF(C6="","",C6)   セルH6 =IF(D6="","",D6)   セルI6  =IF(E6="","",E6)   が入っています。 3.ここからが分からないところなのですが、採用単価に入る式で迷っています。条件は、  (1)A資料があれば、A資料が優先的に採用単価になる  (2)B資料とC資料の2つがあれば、平均の値(1円未満切捨て)が採用単価になる  (3)空白の欄には何も入れない  とのことです。 試しに(セルJ6の場合) =ROUNDDOWN(IF(G6="",AVERAGE(H6:I6),G6),0)  を入れてみましたら、(1)と(2)の条件はクリアしたように見えますが、空欄のある所はエラーの #DIV/0!が出てしまいました。 式自体が違うのか、それとも式に何か追加するのか分かりません。 分かりにくい説明かと思いますが、どうぞお知恵をお貸し下さい。宜しくお願いします。       

  • Excel rounddown関数について

    Excelのrounddown関数について教えてください。 出勤表上で、所定勤務時間(8時間)との差を 小数点以下第3位を切り捨てて、10進法で記載したいのですが うまくいきません。 セルA(始業)→10:15 セルB(終業)→18:30 セルC(休憩)→1:00 セルD(勤務時間)→(数式:=B-A-C)7:15 としており、セルEにセルDで求めた値と所定労働時間の8時間との 差を10進法表記で、小数点以下第3位を切り捨てて入力したく 以下の数式を入れています。 =rounddown(8-(D*24),2) 上記の場合、0.75が解答として正しいかと思いますが、 0.74という解答が返ってきます。 セルDの値を数式ではなく、直接入力すると 正しい値0.75が返ってくるので、セルDを修正する必要が あるのかなと思うのですが、どこを修正すればいいかわからず 途方に暮れています。 初歩的なところで申し訳ありませんが、お知恵を拝借できれば幸いです。 よろしくお願いいたします。

専門家に質問してみよう