1日の勤務時間の合計計算方法

このQ&Aのポイント
  • 1日7時間45分の勤務時間において、合計従事時間を日数・時間・分で表示する計算方法がわからない。
  • 例えば従事時間が25時間15分の場合、3日2時間0分と表示させたい。
  • 日数と時間に正しく変換する方法を教えてほしい。
回答を見る
  • ベストアンサー

1日=465分の勤務時間の合計計算

お世話になります。 1日7時間45分勤務において、従事時間の合計を日数・時間・分で表示させたいのですが、 以下のような数式を入れて、時間計算しようとしたのですが、どうしてもうまくいきません。 例)従事時間合計が25時間15分の場合、3日2時間0分と表示させたい。 =SUM()で、表示形式を[h]:mmにして、合計従事時間数「25:15(セルA2)」を算出。 次に、総取得分にする・・・B2=A2*24*60=1515(以下表示形式はすべて:標準)     総取得分を日(465分)に変換する・・・C2=ROUNDDOWN(B2/465,0)     日数を除き残った分を計算する・・・D2=B2-C2*465   時間に変換・・・E1=D1/60     残分を計算・・・F1=D2-ROUNDDOWN(E2,0)*60 という、式を組み立てました。 表示させるセル D5=C2 (表示形式 #"日") E5=ROUNDDOWN(E2,0) (表示形式 #"時間")            F5=F2 (表示形式 #"分")  とすると、3日1時間60分となってしまいます。  ・・・3日2時間の表示にしたい。 従事時間合計が55時間15分の場合も、7日60分という表示になってしまいます。                               ・・・7日と1時間にしたい。 よい方法はありませんでしょうか? よろしくお願いいたします。

  • m03a
  • お礼率68% (20/29)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

No.3です。No.2の方のをみて気付きました。 B2=TEXT(A2,"[m]")*1 または B2=ROUND(A2*24*60,0) としてください。 C2以降は現在のままでもNo.3で紹介した数式でもOKです。 ■計算の齟齬の原因 A2の時間合計が25:15と表示され、B2が1515となってますが 実際は、1514.9999・・・なのだと思います。 ここを直すことで後の計算が正常になります。 下記の数式が、今回の結果がおかしくなった原因ですね。 時間に変換・・・E1=D1/60 残分を計算・・・F1=D2-ROUNDDOWN(E2,0)*60 ↓ 時間に変換・・・E2=ROUNDDOWN(D2/60,0) 残分を計算・・・F2=D2-E2*60 としておけば E2=1,F2=60(実際は59.999・・・)となって D2(元はB2ですが)が繰り上げで120(実際は119.999・・・)だったのが分かると思います。

m03a
質問者

お礼

 丁寧なご指導ありがとうございました。B2で端数処理をすることにより、確かに解決しました。  残120分なのに、2時間と60分と表示されるのも謎だったので、一緒に解説していただき、大変助かりました。とても勉強になりました。ありがとうございました。

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

下記の数式を置き換えてみてください。 C2=QUOTIENT(B2,465) D2=MOD(B2,465) E2=QUOTIENT(D2,60) F2=MOD(D2,60)

m03a
質問者

お礼

 従事時間合計をその他の方法で日・時間・分で表す方法を教えていただき、ありがどうございます。勉強になります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ご質問の現象は、小数点以下の計算における丸め誤差によって発生しています。 すなわち、時間のような小数点以下の数字の加減乗除(特に引き算)を行なうと、セルの表示は「25:15」でも実際は、手入力した値と異なり、それよりわずかに小さいあるいは大きい値になっていることがあります(たとえば手入力したA1セルと数式で得たA2セルを比較するために「=A1-A2>0」のような数式を入力するとTRUEが返ります)。 このようなセルを参照して「~以下」の条件やROWNDDOWN関数などの切り捨てを行うと、今回のように正しい値が返されないことになります。 このような場合は微小値を加減した数式にするなどの工夫が必要となります(今回の切り捨て処理なら微小値を加える)。 =A2セルの数式+10^-10 しかし、今回のような整数化できるケースでは、数式で計算したデータを手入力した値と同じデータに変換する方法がもっとも簡便な対応です。 すなわち、A2セルの数式を以下のように変更してください。 =TEXT(A1の計算式,[h]:mm)*1

m03a
質問者

お礼

 ご指導ありがとうございます。数式を組み立てる途中で、何度か表示と異なる結果がでて困ったので、小数点以下の計算における丸め誤差の解説で、とても勉強になりました。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

従事時間合計に表示では現れていない端数の時間数が含まれているのが原因と思われます。 いろんな所で頑張ってROUNDDOWN等を使っていますが,端数を適切に処理できていません。 とりあえずB2の式を =ROUND(A2*24*60,0) とすれば,ほぼ解決すると思います。 また 1.各計算セルの表示形式を「標準」または「小数点以下の桁数が沢山表示」するようにして,どこに端数が残っているか,よく確認してください 2.「全ての計算式」で,漏れなくROUND系の関数を使ってください。

m03a
質問者

お礼

 ご指導ありがとうございます。B2で端数処理をすることにより、確かに解決しました。端数を適切に処理できるように、ROUND系の関数を使用する場合は、注意したいと思います。ありがとうございました。

関連するQ&A

  • 残業時間月合計(エクセル)を正確に計算できません

    エクセル2007で,勤務時間を管理表を作成していますが,残業時間月合計(G36のセル)が正確に計算されません。 社員に入力してもらうのは,出勤時間と退社時間だけです。 勤務時間(在勤時間)は8:25~16:55で,途中の休憩時間は考慮しません。 項目と入力してある関数は下のとおりです。   A  B     C     D      E         F        G   日 曜日 出勤時間 退社時間 在勤時間  基本在勤時間   残業時間 5 1  金    8:15    17:00   8時間30分   8:30        0時間15分 6 2   土    9:00    10:10    1時間10分   0:00        1時間10分 36 月合計                 229時間40分  68:10       68時間10分            E列の関数・・・「=D5-C5」(表示形式は h"時間"mm"分") F列(非表示)・・・平日は「8:30」と入力(8:25~16:55が8時間30分であるため)            土日・休日は「0:00」と入力(勤務日でないため) G列の関数・・・「=D5-C5-F5」(表示形式は h"時間"mm"分") E36の関数「=SUM(E5:E35)」(表示形式は [h]"時間"mm"分") F36の関数「=SUM(F5:F35)」(表示形式は [h]:mm) G36の関数=SUM(G5:G35)」(表示形式は [h]"時間"mm"分") 平日で,C列とD列が入力していないのに,F列に8:00が入力してあるため,G列の計算がマイナスになることが原因で正確に計算できないのでしょうか。 簡単な関数を使って正確に残業時間月合計が計算できる方法を教えてください。 よろしくお願いします。               

  • エクセルの時間の合計が表示されないんですが・・

    すみません、以前も休憩時間の計算方法などでこちらで教えて頂いたのですが、 また、つまづいてしまいまして・・すみませんが教えてください。 エクセルで、勤怠管理をしています 負の表示はさせないように  セルの書式設定の表示形式をユーザー設定で [h]:mm;; としたところ、 その複数セルの時間合計をSUMで自動表示させようとしたところ空白になってしまいます。 どうすれば合計が計算表示されるのでしょうか? 時間表示は、0:00の60進法表示です。 具体的には下記のような表を作っています (必要ない情報かもしれませんが) Aセル:出社時間 Bセル:退社時間 Dセル:延時間 Eセル:休憩時間 Fセル:就労時間(=D-Eで自動表示) Gセル:8時間超勤務時間(=F-("8:00"*1)で自動表示) Gセルのみ、負の表示はさせないように セルの書式設定の表示形式をユーザー設定で [h]:mm;; としています そうしたところ、Gセルの時間合計をSUMで自動表示させようとしたところ空白になってしまいます。 どうすれば合計が計算表示されるのでしょうか? 宜しくお願いいたします。

  • エクセルで勤務時間を計算したい

    例えば、 セルAに出社時間) 9:00 セルBに退社時間) 16:00 と記入し、 2時間ごとに休憩15分あるので、 それを自動的にセルCに表示させたいです。 この場合ですと、 セルCに休憩時間) 0:45 そして、 拘束時間から、休憩時間を引いた勤務時間をセルDに表示させたいです。 セルDに勤務時間) 6:15 そして、 時給を仮に800円として、日給をセルEに表示させたいです。 *15分で200円の計算です セルEに日給) 5000円 マクロは使わないでお願いします。

  • 時間帯を切り取って合計時間を算出したい

    下のカッコ内はエクセルのセル番地を示しています。 2行目に数値を入れて任意の時間帯に何時間あるか調べたいと考えています。下では前日22時から当日9時までの合計11時間あり、その内訳は時間帯Aに9時間、時間帯Bに2時間ある、という計算です。 こういう計算を関数を使って表すことはできるでしょうか? 開始(B1) 終了(C1) 合計(D1) 時間帯A(E1) 時間帯B(F1) 22:00(B2) 9:00(C2) 11:00(D2) 9:00(E2) 2:00(F2) ※時間帯A=前日22:00~当日7:00  時間帯B=当日7:00~12:00

  • エクセル 時間の合計数が適正に表示されません

    添付のようなタイムシートを作成しましたが、「合計の時間数」が適正に表示されません。 D12、E12には正しくない合計時間数が表示され、 F12、G12に至っては、表示すらされません(TT) 間違っているのではなく、適正な表示になってくれていないだけだろうなとは理解できるのですが なぜこんな表示になってしまうのか、まったくわかりません。 どなたかご教示いただけないでしょうか。 よろしくお願いいたしますm(_ _)m 各列の関数は以下のとおりです。 D列=C-B-J E列=MIN("8:00",D) F列=D-K G列=C-I 合計のセルは次のように設定しています。 D12=SUM(D5:D11) E12=SUM(E5:E11) F12=SUM(F5:F11) G12=SUM(G5:G11) 各セルの表示形式は、 [h]:mm;; です。 よろしくお願いいたしますm(_ _)m

  • エクセルで時間差の計算

    日数間の計算結果を「hh:mm」形式で表示させたいのですが。 ------------------------------- セルA1 2003/10/01 10:00 セルB1 2003/10/02 11:30 セルC1 25:30 ------------------------------- 上記のようにA1とB1の時間差を「時:分」形式でC1に結果を表示させたいのですが24時間以上の差があると出来ません。 TEXT(B1-A1,"d:hh:mm")なら出来るのですが日にちを使いたくないのです。 よろしくお願いします。

  • Excel - 勤務時間計算

    はじめて利用します。よろしくお願いします。 Excel2003を利用し、勤務時間の計算をしようとしています。 まずは以下のセル番地と対象時間をご覧ください。 B1 始業時間(#":"##)1000を入力 C1 就業時間(#":"##)1900を入力 D1 休憩時間(#":"##)100を入力 E1 時間内労働時間 F1 時間外労働時間 E32,F32にはそれぞれ時間内・時間外の月間合計を計算します。 お尋ねしたいのは、E1,F1の時間内・時間外のfx式です。 そしてE32,F32は単純にSUMで計算できるのか、出来ないなら fx式を教えていただきたいと思います。 是非よろしくおねがいします。

  • 時間を自給として計算してかつ個別に合計を出すには?

    A   B    C    D    E F  G 1担当  始まり  終わり 合計 2Aさん 8:00  10:35 2:35 3Bさん 9:50  15:00 5:10 4Cさん 23:00  2:00 3:00 5Aさん 2:00  5:00  3:00 6 7   Aさん合計 Bさん合計 Cさん合計 勤務時間を打ち込むと給料も計算できるように考えているのですが、 担当者ごとに合計を分けて、そして時間給を5分単位で時間を計算したいんです。 たとえば私の自給900円として。 2行目の様にA列で担当者がAさんの時に2時間35分勤務した場合の金額の合計をAさんの場合はAさんの合計(B7)に、Bさんの場合はBさんの合計としたいのですが、条件での関数はいけるんでしょうか?

  • Excelの時間計算(年・月・日 別々のセルで…)

    Excelの時間計算で悩んでいます。 2つの異なる日付(年、月、日別々のセルに入力したもの)の 日数の差を関数で表示させたいのですがうまく行きません。 例えば、 A列にスタート年、B列にスタート月、C列にスタート日、D列にエンド年、E列にエンド月、F列にエンド日を入力し G列にエンド年月日-スタート年月日の日数させたいと考えています。 +----A----B----C----D----E----F----G 1   2008      2      1   2008      2     28     24 G1にDATE(D1,E1,F1)-DATE(A1,B1,C1)の数値を表示させたいのです。 ひとつのセルに日付形式で年月日を持たせれば DATEIF関数で実現可能なのは判りましたが 運用上、年月日を別のセルにして管理したいと考えています。 どなたかお解りになる方、いらっしゃいませんでしょうか。

  • 勤務時間・時間外の計算方法を教えて下さい

      A      B     C    D     E    F 出社時間 退社時間 休憩 勤務時間 時間外 勤務日数 1 8:00    17:30    1    8:00   0:30   1 2 8:00    17:00    0.5    ☆   0:00   1 4 8:00    12:30    0     4:30    ★ 5 8:00    12:00    0    4:00   0:00   0.5 6 13:00   17:00    0    4:00   0:00   0.5 (1)勤務時間を計算する場合 B1-A1-C1かB1-A1-TIME(1,0,0) で計算できることは分かったのですが、休憩時間が30分のときの計算式☆が分かりません。 (2)時間外計算は=IF(D2>TIME(8,0,0),D2-TIME(8,0,0),0)だと勤務時間が8時間の場合にしか当てはまらないので半日勤務の場合の残業計算★はどういう式になるのかも教えて頂きたいです。 出来れば、8時間のときも半日のときも一度に計算したいです。 また、勤務日数を勤務時間 8時間の場合は 1 半日の場合は 0.5 というようにすぐ表示出来るようにならないでしょうか。0.5は赤字で表示出来たらうれしいです。 無理なことを言っているかもしれませんが、お願いします。

専門家に質問してみよう