物を分単位で借りた時のレンタル料が正しく出せない

このQ&Aのポイント
  • 物を分単位で借りた場合のレンタル料が正しく出せない
  • レンタル料を求める際、表示が正しくならない症状が発生している
  • 利用時間の計算方法に関しての対処方法が分からない
回答を見る
  • ベストアンサー

物を分単位で借りた時のレンタル料が正しく出せない

皆様には大変お世話になっております。仕事でまた躓いてしまっています。 何方か、対処方法をご存じでしたらご教示頂けると大変助かります。 物を分単位で数分間~24時間借りた時のレンタル料を求めたいのですが、 下記のような症状となってしまって、非常に困っています。 利用日=2022/4/28、 レンタル開始時刻=10:00 レンタル終了時刻=11:00を Aセル、Bセル、Cセルに入力し、Dセルに、上記の利用時間を数値として求める為、 =IFERROR((C1-B1)*24,"")の式を入れた所、 例えば、1000円の10%の消費税は所々99円となってしまいました。 調べて見ると、小数点第14位までは、1.00000000000000と表示されますが、 小数点第15位まで表示させると、0.999999999999999と表示が変わりました。 この場合、利用時間は1.0としたいのですが、この式ではうまくいかない事が分かりました。 そこで、=IFERROR((C1-B1)*24,"")の式を、=IFERROR(TEXT(C1-B1,"hh:mm")*24,"")へ変更した所、 上記のレンタル利用時間では、うまく消費税の値を出す事が出来ましたが、 利用日=2022/4/28、 開始時刻=0:00 終了時刻=24:00と入力した場合は、 終了時刻=00:00、利用時刻=00:00、利用時刻のセルは空白となってしまいました。 利用日=2022/4/28、 開始時刻=10:00 終了時刻=11:00と時も利用時間は1が出るようになり 利用日=2022/4/28、 開始時刻=00:00 終了時刻=24:00と入力した時も、終了時刻は24:00となり、 利用時間も24が出るようにしたいのですが、対処方法が全く掴めないでいます。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (713/1474)
回答No.4

あなたの数式でも、 B1: 0:00 C1: 0:00 D1: 0.000000000000000 になりますが。 これは、時間計算の誤差です。 B1: 0:00 C1: 1:00 D1: 1.000000000000000 B1: 0:00 C1: 24:00 D1: 24.000000000000000 を満たすには =TEXT(C1-B1,"[h]:m")*24 が1番簡単か思います。しかし、切りのいい時間は正しく計算されますが、分単位の場合誤差が出る可能性があります。 その後にどのように慮金を出しているのか解りませんが、 =ROUND((C1-B1)*1440,0) にして分単位で計算した方がいいと思います。

nnirosan
質問者

お礼

具体的なご教示ありがとうございました。大変参考になりました。 取り合えず、私の力量では、当面は以下のように式を設定する事を考えています。 対策として: 終了時刻のセルは、24:00を入力した時、00:00とならないよう、書式設定で『[h]:mm』を設定する。 利用時間のセルへ=ROUND(((C1-B1)*1440)/60,2)を設定する。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問の式は「分単位に」なっていないでしょう。そこが問題でしょう。 ーーー エクセルの時間(正確には「時刻」かも)は「日付・時刻シリアル値」という考えの数値で、この理解ができてないのでしょう。 基本は1日24時間が1.0 単位で表します。1分は1/(24*60)と考えたX分になります。1日=24時間=24*60分だから。 ーー セルにエクセルの標準的な時刻の入力方式で入力(23分は0:23(半角で)のように)したとき、セルの値は、そういう計算で計算された数値がセットされています(と考える)。 ややこしいのは (1)小数点以下のまるめの問題 (2)X時0分をまたがる時刻の分計算、ですが、 (2)は2つの日付時刻せりある値を単純に算術減算すれば、値が出て、分計算したいなら、1/(24*60)=1分のエクセル方式での値で割れば、分が出る。 (1)の問題は複雑そうなので略。 ーー 実例をやって見ると a1セルに10:35 、 B1セルに11:02 と入力、C1に関数 =B1-A1と入れると、見た目は 0:27とでます。0時間27分という意味に違いない。C1セルの表示形式は日付・時刻に、気を利かして設定してしまうのだと思います。 ーー (理解のためのテスト) これをセルの値で表示すると、小数点以下5桁で、打ち切って表示(数値で表示)で、 A1,B1,C1は 0.44097 0.45972 0.01875 の数になってます。 C1の、0.01875 は、そのセルの値を使って =C1*24*60と計算すると、「27」です。 この27という「数字=数量」に当たる、分(「ふん」の)数を計算し、さらに27(分)という数に対応した、レンタル料を計算(エクセル関数ででも)すればよい。割り算とかVLOOKUP関数とかで、 色々な商売の料金体系があるでしょうから。 === 最近この手の質問が多い。 正式なエクセルの教習場所、とか教師の指導の元で、学ばないからだと思う。 周りに聞く先輩もいないのに、商売のことに、エクセルを使うとは大胆と思うが。長年やってれば、どこかで行き詰まり、本やWEBなどで調べて、仕組みがわかってくるでしょうが、技巧的な仕組みなので、自然に気づくというのは難しいかも。 かくいう小生も、上記の説明で、(マイクロソフトのエクセル設計者などからすれば)多少?実態と違う点、説明があるかもしれないですが。確かめるすべがない。 == エクセルのセルの値を対象にして、計算をする必要が出たとき、見た目=表示形式適用後のもの・数など)で考えてはいけないです。そこでは、分や時の単位の文字は余分という点は気づくでしょうが、20分の場合で、20という、見てくれを使っては、いけないということです。セルの値にまで遡って、単位に換算し直して、考え直す必要があるということです。 この文章を書くのに(文章が長いことと、毎回同じことを書いている(自分の勉強にはならないので)ああ疲れた、です。

nnirosan
質問者

お礼

大変ご丁寧に説明をして下さり、ありがとうございました。 大変勉強になりました。 これからもEXCEL精進して、勉強して行きます。

nnirosan
質問者

補足

ご丁寧なご教示ありがとうございます。 データのフォーマット変更は不可ですので、やはり、開始時刻、終了時刻、利用時間のセルはこのままで使わなければなりません。 取り合えず、終了時刻は『[h]:mm』を設定します。利用時間が分単位の式ではなかった事理解しました。しかし、利用時間のセルに小数点2桁の数字で、0.99999999の対策をした式については、未熟者で浮かびませんでした。具体的に教えていただけないでしょうか。

  • kon555
  • ベストアンサー率52% (1750/3356)
回答No.2

 No1です、補足というか、余談的な内容になります。当座の対策というより根本的なやり方の話になります。ちょっと長くなりますが、お時間のある時にでもご一読下さい。  質問文を読む限り、貴方の今のシートは分単位計算には不向きな作りになっているように思います。  分単位で時間計算する場合、時間差を算出する時は『◯時間』単位ではなく、『◯分』単位で計算する形にした方が良いです。なぜならこちらの方が、小数点にまつわる誤差を回避できるからです。  具体的には質問文の中の『この場合、利用時間は1.0としたい』という部分を、1.0(時間)ではなく60(分)で計算した方が良いという事です。  そのような計算にする場合、1セルに「1:00」のように入力するのではなくて、『時』と『分』を別セルに分けてしまえば『時』×60+『分』でシンプルに分単位が算出できます。  また先の回答で述べたように、日付を跨ぐケースが存在するなら『開始日』『終了日』を織り込まないと計算が狂います。これもそれぞれセルを分け、日数差を計算した後に1440を掛けて分単位の差に直しましょう。  今お使いのシートで実務的にOKなら当面はいいのですが、作り替える際などには意識してみて下さい。

nnirosan
質問者

お礼

かみ砕いて説明をして下さり、ありがとうございました。 EXCELの理解力がまだまだ足りていませんが、めげずに頑張って精進していきます。

  • kon555
  • ベストアンサー率52% (1750/3356)
回答No.1

>>利用日=2022/4/28、 開始時刻=0:00 終了時刻=24:00と入力した場合  時刻の表記方で言うと『0:00』と『24:00』は同じですから、そのせいでおかしくなっているのでしょう。  利用日を1セルではなく利用開始日と終了日の2セルに分けるのが本筋でしょうが、書かれている内容からすると、利用時間は最大で24時間、また利用時間0はありえないですよね?  もしそうであれば、if関数を使って利用時間0なら利用時間24、とするのが1番シンプルだと思います。

関連するQ&A

  • Excel:特定の時刻から15分単位で表示させるには?

    勤務表を作成しています。 終了時刻ー開始時刻ー休憩時間という具合に当日の勤務時間を出力させるようにしています。 当日の勤務時間を出力するセルには以下のような条件で計算式を書いています。 <例> =IF(COUNT(C13:D13)<2,0,IF(AND(C13<="9:00"*1,D13>="17:40"*1,"18:1 4"*1>=D13),"7:40"*1,IF(AND(C13>="12:00"*1,"13:00"*1>=C13,D13>="1 7:40"*1),"4:40"*1,IF(AND(D13>="12:00"*1,"13:00"*1>=D13),"3:00"*1, FLOOR(D13-P13-E13,"0:15"))))) (1)開始、終了時刻が入力されていない時、0:00と表示。 (2)開始時刻9:00(もしくはその時刻より前)、 終了時刻17:40から18:14の間の時刻で入力された時、7:40と表示する。 (3)開始時刻12:00から13:00の間の時刻、 終了時刻17:40で入力された時、4:40と表示する。 (4)終了時刻12:00から13:00の間の時刻で入力された時、3:00と表示す る。 (5)(1)~(4)の条件以外は終了時刻ー開始時刻ー休憩時間という計算を 行い、15分単位で丸める。 (1)~(4)の条件は変更なしで、(5)の条件を変えます。 (5)終了時刻が18:15以降、当日勤務時間が7時間40分以上になる。 7時間40分から15分単位で丸める。 <例> 開始時刻9:00、終了時刻17:40の時、勤務時間7時間40分。(定時) 開始時刻9:00、終了時刻18:14の時、勤務時間7時間40分。 開始時刻9:00、終了時刻18:15の時、勤務時間7時間55分。 (一番上に書いたの計算式だと勤務時間が7時間45分になる) 開始時刻9:00、終了時刻18:16の時、勤務時間7時間55分。 ※P13は9:00以前の開始時間を9:00と考えさせる、 12-13時の時間を13時と考えさせる、 上記以外はそのまま表示させるという計算式を書いたセル。 (5)のような条件を加えた計算式が可能であれば教えて下さい。(アドバイス、ヒントでもかまいません。) よろしくお願いします。 使用ソフト:Excel2002

  • セルの条件付書式で一日の時間管理表を作成

    セルの条件付書式で一日の時間管理表を作成したいと考えています。 セルA2:開始時刻 セルB2:終了時刻 セルC2:7:00~8:00 セルD2:8:00~9:00 セルE2:9:00~10:00 ・ ・ ・ 開始時刻と終了時刻を入力すると、それに対応した時刻のセルの色が表示されるにはどうすればよいのでしょうか? EXCEL2003

  • エクセルにて作業時間(分で表示)を出すには?

    エクセルにて「開始時刻」と「終了時刻」から作業時間の値を出したいのですが、 「開始時刻」と「終了時刻」のセルにはTIME関数(例 =TIME(18,0,0))が入力されており、さらにそのセルの表示形式は[時刻]の[13時30分]と表示されています。 これらのセルから作業時間を算出して分で表示(例 30分)したいのですが、どうやったらいいのでしょうか?

  • Excel 年/月/日 時:分:秒の引き算について

    Excel2003で質問です。 日付と時間が同じセルで入力されているデータがあります。 (2012/6/20 14:45:30)←この様に年~秒まで入力されています。 終了日(B2)から開始日(A2)を引いた時間から更に、土日・祝日(E2~E20)を引いた時間をセルC3に計算させたいのですが、どの様な計算式にすれば良いでしょうか。 C3には"00:00:00"(時:分:秒)と表示させたいです。 色々調べましたが時間が入力されている状態ですと、どの様に計算して良いのか分かりません。どなたか教えて頂けないでしょうか。 宜しくお願い致します。

  • Excelで、15分単位での時給計算が正しく表示できない

    お世話になります。 15分単位での時給計算を行いたいのですが、15分きっかりの時だけ 下記計算式で出てくる数値が0.25にならず、0.00になってしまいます。 例) 時給千円で、17:00から18:15まで業務したとして、 A1に開始時間、B1に終了時間、C1に勤務時間、 D1に15分単位の値を表示させます。 C1はB1-A1(セルの書式は時刻に設定)、 D1の計算式は =FLOOR(C1,"00:15:00")/"1:00" にしています。 上記勤務時間の場合、D1に1.25と出てほしいのですが 1.00になってしまいます。 15分きっかりの場合でも、0.25と表示させる計算式あるいは 設定をお教えいただけたらと思います。

  • 勤務表の始業・終業時刻を30分単位に

    いろいろな始業・終業時刻に対応できる、30分単位で自動計算されるエクセル勤務表を作成しています。 例えばA1セルに定時開始時刻の「8:40」B1セルに定時終了時刻の「17:10」と記入し、そこを基準に毎日の始業時間を30分単位で丸めたいときにはどのようにすればよいのでしょうか? 定時は変更されることがあるので、A1とB1セルを変更してもそこを起点に30分単位で丸められるような勤務表を作りたいです。 A列に実際のタイムカード始業時刻 B列に実際のタイムカード終業時刻 C列に、A列の時刻をA1セルの時間を基準に30分単位で丸めたもの D列に、B列の時刻をB1セルの時間を基準に30分単位で丸めたもの 勤務時間、残業時間等は、D列とC列の時間を使って計算します。 FLOOR関数は0:00を基準とする丸め関数ですよね? いい方法がありましたら、よろしくお願いします。

  • エクセルで時間の引き算をするには

    お世話になっております。 エクセルでの時間の計算について教えてください。 開始日と終了日と開始時刻と終了時刻が4つのセルに分かれています。それらを使って勤務時間をだしたいのですが、どうしたらいいのでしょうか。 開始日=セルA、終了日=セルB、開始時刻=セルC、終了時刻=セルDとします。これらを使って勤務時間を計算し、時給=セルEを掛け合わせ給料をセルFに出したいのですが、どうやってエクセルにセルAとセルCを2つ認識させ、その上セルBとセルDを引いて勤務時間をだせばいいのでしょうか? (問題のエクセルです↓) セルA セルB セルC  セルD   セルE  セルF 7-Feb-07 7-Feb-07 0:03:12 8:00:00 $22.40 5-Feb-07 6-Feb-07 15:45:47 13:38:43 $9.79 7-Feb-07 9-Feb-07 8:33:46 23:26:24 $17.45 8-Feb-07 8-Feb-07 8:10:30 23:59:51 $21.99 7-Feb-07 8-Feb-07 20:30:23 21:02:25 $14.75 7-Feb-07 9-Feb-07 18:39:50 21:20:00 $13.45 6-Feb-07 6-Feb-07 1:03:42 20:58:34 $21.99 どうぞよろしくお願いいたします。

  • Excel:特定の条件でFLOOR関数を使うには?

    Excelを使って、勤務表を作成しています。 開始時刻、終了時刻を入力すると、 終了時刻ー開始時刻ー休憩時間という具合に当日の勤務時間を出力させるようにしています。 当日の勤務時間を出力するセルには以下の条件が必要です。 (1)開始、終了時刻が入力されていない時、0:00と表示する。 (2)開始時刻8:30(もしくはその時刻より前)、 終了時刻17:05と入力された時、7:50と表示する。 (3)(2)の条件以外は15分単位で勤務時間を表示する。 15分単位で丸めるということでFLOORを使うのですが、 そうすると(2)の条件がまったく無視されてしまい、うまくいきません。 FLOORを特定の条件の時のみ、適用する方法があれば教えて下さい。 よろしくお願いします。 使用ソフト:Excel2002 ------------------------------------------------- ちなみに以下のような計算式を当日勤務時間が出力されるセルに書いて試してみました。 =IF(D9="17:05","7:50",IF(COUNT(C9:D9)<2,"0:00",FLOOR(D9-P9-E9,"0 :15"))) 計算式の意味↓ 終了時刻に17:05と入力されたら、当日勤務時間のセルに7:50と表示。 開始、終了が入力されないと、0:00と表示。 そうでなければ、終了ー開始(8:30以前を8:30と考えるセル)ー休憩で計算し、15分単位で表示。 とこのように書いてみたものの…うまくいきませんでした。

  • エクセルで時間計算

    エクセルで時間計算をしているのですが A1セルに開始時刻  B1セルに終了時刻  C1セルは作業時間   9:00         4:00           7:00 このような表を作っています 「C1」には(B1+12:00)マイナス「A1」と数式があるのですが 「B1」に入る時刻が午後でなく午前11:00だと 「C1」の数式のままでは (11:00+12:00)- 9:00 で 14:00 となってしまいます 「B1」には24時間形式で午後4:00を16:00と入力すればよいのですが 24時間形式を使わず9:00マイナス4:00を正しく計算するには どのような数式にすればよいのでしょうか IF文を使うのかなとも思うのですが 見当がつきません。宜しくお願いいたします。

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

    時間計算について質問です。 図のような仕事上にかけた時間の計算をしたいのですが。終了時刻と休憩時刻で空白のセルがあるとマイナスになってしまします。 計算としてはC行の終了時刻からB列の開始時間を引き、休憩があればさらにマイナスで計算してみています。 終了時刻と休憩時刻で空白のセルがあるときには計算をせずすべてのセルが埋まったら計算結果を表示することは可能でしょうか? 現在ですと合計時間のところでマイナスになってしまい、すべて入力 がされていないと正確な数値になりません。 作業時間はその後の計算の都合上時間表示ではなく数字として表示させています。

専門家に質問してみよう