金額計算で発生した不具合と解決方法

このQ&Aのポイント
  • 金額計算表で利用時間が入力した値と異なる金額が表示される不具合が発生しました。式の改善が必要です。
  • 単価が525円で利用時間が1:30の場合、787.5円が切り捨てで787円になるようにしたいです。解決方法はありますか?
  • 金額計算表の式の改善と小数点の切り捨てについてアドバイスをお願いします。
回答を見る
  • ベストアンサー

金額計算で間違った金額が表示される2

A       B       C       D       E    F     G 利用場所  利用時刻  利用時間  利用人数  単価  金額  区分 このような項目を並べた金額計算表がありまして、実用していたのですが、使ってるうちに不具合が発生しました。 利用時間が1:00で単価を630と入力したとき金額に629と表示されたんです。 Fのセルには =IF(OR(A1="個室小",A1="個室中"),D1*E1,IF(OR(G1="会員個人",G1="一般個人"),INT(C1*D1*E1*24),INT(C1*E1*24))) と式を入力してるんですが、これではダメなんでしょうか? 先ほど回答をいただき締め切ってしまったんですが、また問題が・・・。 単価が525円で利用時間が1:30のとき、787.5円が788円になってしまいました。店のシステム上、少数点は切り捨てで787円にしたいんです。どうしたらいいですか?お願いします。

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

  • ベストアンサー
  • yumitsuki
  • ベストアンサー率52% (167/321)
回答No.2

> どうやら利用時間の1:30を2:00として計算されてるようです 申し訳ございません、私の方で勘違いしていました。 前回、「ROUND」関数と書きましたが、これは間違いで、正しくは「MROUND」関数を使うべきでした。 つまり、 「INT(C1*D1*E1*24)」の代わりに「INT(MROUND(C1*24,0.01)*D1*E1)」、 「INT(C1*E1*24)」の代わりに「INT(MROUND(C1*24,0.01)*E1)」、 となります。 ただし、「MROUND」関数を使用するには、エクセルに一工夫が必要で、 「メニューバーの【ツール】→【アドイン】で【分析ツール】を有効にする」必要があるそうです。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/round.htm#mround 今度こそ、これで大丈夫…だと思います(汗)。

jhggjkhkh
質問者

お礼

どうもありがとうございました。問題は解決しました。

その他の回答 (1)

  • yumitsuki
  • ベストアンサー率52% (167/321)
回答No.1

先程は失礼しました。もともとINT関数を利用されていたのは、消費税の端数を切り捨てるためだったのですね。思い至りませんでした。 今回は、問題を2つに分けて考えてみました。 一つは、計算を行う際に発生する小数点以下の誤差を修正すること。 もう一つは、消費税の計算で発生する小数点以下の端数を切り捨てること。 前者については、恐らくは時間を内部的に小数として扱うエクセルの仕様が原因だと思います。そこで、C1の乗算ではROUND関数を用いる必要があると思います。 後者については、E1の乗算でINT関数を用いれば良いと思います。 まとめますと、 「INT(C1*D1*E1*24)」の代わりに「INT(ROUND(C1*24,0.01)*D1*E1)」、 「INT(C1*E1*24)」の代わりに「INT(ROUND(C1*24,0.01)*E1)」、 これでいかがでしょうか? なお、「ROUND(C1*24,0.01)」の部分は、小数点以下1桁まで残すように設定してあります。これは、1.5時間、などの値を正確に扱うためです。1.25時間など、小数点以下2桁まで残す必要がある場合は、「ROUND(C1*24,0.001)」にする必要があります。

jhggjkhkh
質問者

お礼

こちらの情報不足にも関わらず、丁寧な回答をいただきありがとうございます。 629円と表示される所は630円と表示され解消しましたが、単価が525円で利用時間が1:30のときの金額が1050円となってしまいます。どうやら利用時間の1:30を2:00として計算されてるようです・・・。どこを修正したら良いでしょうか?

関連するQ&A

  • 金額計算表で間違った金額が表示される

    A       B       C       D       E    F     G 利用場所  利用時刻  利用時間  利用人数  単価  金額  区分 このような項目を並べた金額計算表がありまして、実用していたのですが、使ってるうちに不具合が発生しました。 利用時間が1:00で単価を630と入力したとき金額に629と表示されたんです。 Fのセルには =IF(OR(A1="個室小",A1="個室中"),D1*E1,IF(OR(G1="会員個人",G1="一般個人"),INT(C1*D1*E1*24),INT(C1*E1*24))) と式を入力してるんですが、これではダメなんでしょうか? 先ほど回答をいただきINTをROUNDに替え =IF(OR(A1="個室小",A1="個室中"),D1*E1,IF(OR(G1="会員個人",G1="一般個人"),ROUND(C1*D1*E1*24,0.1),ROUND(C1*E1*24,0.1)))として解消したと思い締め切ってしまったんですが、また問題が・・・。 単価が525円で利用時間が1:30のとき、787.5円が788円になってしまいました。店のシステム上、少数点は切り捨てで787円にしたいんです。どうしたらいいですか?お願いします。

  • 計算式で間違った金額が表示される

    A       B       C       D       E    F     G 利用場所  利用時刻  利用時間  利用人数  単価  金額  区分 このような項目を並べた金額計算表がありまして、実用していたのですが、使ってるうちに不具合が発生しました。 利用時間が1:00で単価を630と入力したとき金額に629と表示されたんです。 Fのセルには =IF(OR(A1="個室小",A1="個室中"),D1*E1,IF(OR(G1="会員個人",G1="一般個人"),INT(C1*D1*E1*24),INT(C1*E1*24))) と式を入力してるんですが、これではダメなんでしょうか?

  • エクセルでの計算式がわからない

    エクセル初心者です、エクセルで下記の計算式を作りたいのですが どうしてよいのか・・・? どなたかご指導いただけましたら幸いです。 計算したい例 今月使用した数 105個(A) (B)1個~5個迄は  5(C) ×単価 3円(D)=15(J) (E)6個~10個迄は  5(C) ×単価 22円(D)= (F)11個~20個迄は 10(C) ×単価128円(D)= (G)21個~30個迄は 10(C) ×単価163円(D)= (H)31個~50個迄は 20(C) ×単価202円(D)= (I)51個~100個迄は 50(C) ×単価213円(D)= (I)101個~200個迄は 5(C) ×単価298円(D)= (I)201個~1000個迄は 0(C)×単価372円(D)= 上記のような表があり、(A)に使用した数値をいれた場合に (C)が自動計算されるようにしたいのですが、また(I)のように 使用していない個数の箇所も0表示させたいのです。 よろしくお願いします。

  • エクセルの時間計算について

    以前に皆さんの回答を参考にして、大変便利に利用させていただいていますが、もっと完璧なものにバージョンアップしたいので、よろしくお願いします。 B4に開始時間、C4に終了時間を入力した場合、5時から22時まではD4に表示させ、22時から5時まではE4に表示させています。 例えば、 B4に19:20、C4に20:30でD4に1:10。 B4に22:20、C4に23:30でE4に1:10。 B4に21:20、C4に22:30でD4に0:40、E4に0:30。 式は、 D4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4)) E4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4)) です。 これだと、B4に4:20、C4に5:30でD4に0:30、E4に0:40になりません。 また、I4に1を入力することによって、F4とG4に表示させたいのですが、どうしたらいいでしょうか。 よろしくお願いします。

  • エクセルの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の数値が表示されるようになるのでしょうか?? どうかお助けください。お願いいたします

  • エクセルで時間計算(再質問)

    本日の朝に質問させていただいたのですが、質問が分かりにくかったため再度質問させていただきます。 以前に皆さんの回答を参考にして、大変便利に利用させていただいていますが、もっと完璧なものにバージョンアップしたいので、よろしくお願いします。 B4に開始時間、C4に終了時間を入力した場合、5時から22時まではD4に表示させ、22時から5時まではE4に表示させています。 例えば、 B4に19:20、C4に20:30でD4に1:10。 B4に22:20、C4に23:30でE4に1:10。 B4に21:20、C4に22:30でD4に0:40、E4に0:30。 現在使っている式は、 C1に5:00、D1に22:00を入力。 D4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4)) E4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4)) です。 これだと、B4に4:20、C4に5:30でD4に0:30、E4に0:40になりません。 また、I4に1を入力することによって、D4に表示させないでF4に、E4に表示させないでG4に表示させたいのですが、どうしたらいいでしょうか。 よろしくお願いします。

  • IF関数の複数条件の仕方を教えてください

    いつもお世話になってます。 金額計算の表を作成しています。 A      B      C   D   E   F 使用場所 利用時間 人数 単価 料金 区分 といった具合に項目がありまして 料金のセルに=IF(OR(F2="個人",F2="会員個人"),B2*C2*D2,B2*D2)と入力し、団体、会員団体の場合は【利用時間*単価】 個人、会員個人の場合は【利用時間*人数*単価】と入力しています。 そこで使用場所がシャワー室と入力された場合、個人も団体も無視して【人数*単価】という式を最優先させる方法を教えていただけないでしょうか?

  • エクセルの計算

    科目が2つある表を作っています(消耗品と修繕費)   A     B          C   D   E  F   G 1 業者名 備品or修繕費 商品名 単価 数量 金額 消費税 2 3 Bは備品だったり修繕費だったりバラバラです。 表の一番下に(備品の金額合計)と(備品の消費税合計)とその両方の合計を表示させたい(修繕費も同様) これを関数を利用して自動的に合計が入るようにしたいのですが可能でしょうか?出来るとすれば、どの関数を使うのでしょうか?その式も教えて頂けると助かります。

  • エクセル 平日と土日祝の時間計算表示

    下記のようなエクセルを作りたいのですが、 祝日の7月15日の土日祝残業が、平日の方に表示されてしまいます。 休日表は、別シートでSeet2のB2~E21に作成しています。 Aセルに、日付 Bセルに、始業時間 Cセルに、終業時間  Dセルに、休憩時間として、 Eセルに、実労時間  =C2-B2-D2 Fセルに、平日労働時間  =IF(OR(WEEKDAY(A2,2)>5,COUNTIF(sheet2!B$2:E$21,A2)),"",(E2)) Gセルに、土日祝労働時間  =IF((F2<>""),"",(E2)) Hセルに、平日残業時間  =IF(OR(WEEKDAY(A2,2)>5,COUNTIF(sheet2!$B$2:$E$2,A2)),"",(E2-TIME(8,0,0))) Iセルに、土日祝残業時間  =IF(OR(WEEKDAY(A2,2)<6,COUNTIF(sheet2!$B$2:$E$2,A2)),"",(E2-TIME(8,0,0))) を入れてみたのですが・・・ 祝日の残業時間のところがうまく表示されません。 (WEEKDAY(A2,2)<6 から COUNTIF(sheet2!$B$2:$E$2,A2) 除いた日を""にすれば よいのかなぁと試行錯誤しましたがうまくできませんでした。 そのような式を教えて頂けますか? もしくは他に適切な式があったら教えてください。 宜しくお願い申し上げます。

  • 【関数】エクセルでの時間の計算

    いつもお世話になっております。 エクセルでの時間の計算に関する質問です。 下記のような30行ぐらいの表があり、A,B,C,D列は手打ち、E,F,G列は関数が入力されています。 この場合D2は空白ですが、両方に15ずつ入力されている場合もあります。  A  B  C D    E     F        G 8:00 8:30 30 _ =(B2-A2)*24 =(C2+D2)/60 =IF(E2=F2,"〇","×") 結果、判定をしたいG列が〇になったり×になったりしますが、それがなぜなのか教えてください。

専門家に質問してみよう