• ベストアンサー

Excelで勤務時間を計算する式について

keithinの回答

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

A2に開始時刻を900のように数字で記入 B2に終了時刻を1740のように数字で記入 暫定的に「6時から12時」「13時から1740時」「1810時から2200時」の勤務時間を数える事にして =IF(COUNT(A2:B2)<2,"",ROUND((MAX(MIN("12:0",TEXT(B2,"0!:00")),"6:0")-MIN("12:0",MAX("6:0",TEXT(A2,"0!:00")))+MAX(MIN("17:40",TEXT(B2,"0!:00")),"13:0")-MIN("17:40",MAX("13:0",TEXT(A2,"0!:00")))+MAX(MIN("22:00",TEXT(B2,"0!:00")),"18:10")-MIN("22:00",MAX("18:10",TEXT(A2,"0!:00"))))/"1:0",1)) といった具合の計算式になります。 #大層判りにくいですが MAX(MIN("12:0",TEXT(B2,"0!:00")),"6:0")-MIN("12:0",MAX("6:0",TEXT(A2,"0!:00"))) MAX(MIN("17:40",TEXT(B2,"0!:00")),"13:0")-MIN("17:40",MAX("13:0",TEXT(A2,"0!:00"))) MAX(MIN("22:00",TEXT(B2,"0!:00")),"18:10")-MIN("22:00",MAX("18:10",TEXT(A2,"0!:00")))) が、それぞれの時間帯にかかる正しい勤務時間数です たとえば13時勤務開始などのパターンでも検証してみます。 #応用すると、たとえば深残の時間数とかもこのパターンで計算できます。 #なお >終了時間が四捨五入で記述されている(厳密には6分単位) ご説明とご質問に掲示された事例が合っていません。どこに間違いがあるのかご相談からは判断できないので、自力で適切に修正してご利用ください #もう一つ 最初の例の7時間40分の勤務時間は、1時間単位の数字に直すと7.6666時間なので、少なくとも7.6という答えにはなりません。 それとも?四捨五入という説明から間違いで6分単位に切り捨てでしょうか。ご自分で適切に修正なさってください。

malmine
質問者

お礼

ご回答ありがとうございました。 ご指摘の通り、四捨五入ではなかったですね・・・ 時刻や数字の計算に弱いもので、なんとなく周りに合わせて入力しておりました。 私としては非常に難しい式で、 理解するには時間がかかりそうですが、がんばりたいと思います。

関連するQ&A

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

    以下の勤務時間とします。 開始  終了  休憩 実労働時間 09:00 17:30  1:00 7:30 この数値をエクセルにすると、 A1 B1 C1 D1 09:00 17:30 1:00 7:30 D1の時間算出 =(A1-B1-C1) となりますが、 このD1の7:30 を 7.5で算出したいのですが 簡単な計算式(セルD1内で計算)を教えてください。

  • エクセル関数(24捨25入)

    エクセル関数で以下を教えてください。 四捨五入の応用で、24捨25入(74捨75入)の数式が知りたいです。 (ようは下二桁を50か100単位に切捨てもしくは繰り上げしたいです。) 例えば関数の数値が以下左側のような数値の場合に 24捨25入(74捨75入)して右側の数値で表示させたいです。 「1224」⇒「1200」・「1225」⇒「1250」 「1274」⇒「1250」・「1275」⇒「1300」 エクセル自体得意ではなく困っています。 すみませんが教えてください。

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

    エクセルで勤怠管理表を作ろうとしていますが、わからない部分がありますのでご教授ください。 セルの書式をh:mmとして退社時間から出勤時間を引けば実際に勤務した時間が算出されるというところまでは出来たのですが、以下に挙げた二つの機能を作るにはどうしたらよいのでしょうか? 1.デフォルトで12:00から13:00、22:00から22:30を休憩時間としたいため、その時間を挟んで勤務した場合には、自動的に勤務時間からその時間を引きたい。  例)10:00から18:00まで勤務した場合、休憩時間を1時間引いて算出勤務時間を7時間としたい。 2.日をまたいだ勤務形態だと、うまく時間が算出されないので、正しく算出したい。  例)21:00に出社して、翌日の05:00まで勤務した場合、休憩時間を30分引いて算出勤務時間を8時間30分としたい。 セルに直接計算式を書くより、マクロを使ってうまく出来ればベターだと思っているのですが、良い方法がありましたらご教授ください。よろしくお願いいたします。

  • 勤務時間の計算

    いつもお世話になっています。 お知恵を貸してください。 勤務シフト別の実働時間を算出する方法を探しています。 B列に出勤時間(仮に9:15) C列に退勤時間(仮に17:00) D列に実働時間 を表したいと思っています。 算出したいのは拘束時間ではなく実働なので、休憩時間を除いて計算したいのですが、勤務シフトにより3種類の休憩時間があります。休憩時間の種類は、 6時間未満・・・0:00 6時間超8時間未満・・・0:45 8時間・・・1:00 となっています。 このような場合、どうすれば計算が可能でしょうか? どなたか教えてください。 よろしくお願いします。

  • エクセルでの表計算。

    エクセルでの表計算。 0.5単位で四捨五入したいのです。 たとえば 1.3は1.0に自動的に直してくれる関数。 1.5は2.0に。 1.7は2.0に。 CEILING やMROUNDでしょうか? 慣れていないので、CEILING(A1,0.5)としたのに、 1.3が1.5になってしまって、うまく動いてくれません。 1.3は1.0にしたいのです。 具体的な方法を教えてください。

  • 超過勤務の計算について 教えてください。

    最近の社会情勢を見ていると 超過勤務は 日々 1分単位で足しあげて 月単位で四捨五入、と労基署に指導された、なんて話を聞きますが、 では、事前申告は どのように考えたら良いでしょうか? 極端な話、1時間の申告をして タイムカードは 1時間1分だった なんて場合も1分単位で足さないとダメなのでしょうか? それであれば 事前申告はしなかったけど タイムカードが5分過ぎてたとかの場合は申告させて足しあげないと違法なのでしょうか? よろしくお願いしますm(__)m

  • エクセルで四捨五入した値を計算

    エクセルでダイエット記録表を作成して肥満度指数(BMI)を算出してます。計算式はエラー表示を出さないようにIFERROR関数を使用しています。値は小数点第2位四捨五入で算出しており、その四捨五入した値に対してさらに計算し四捨五入したいのです。 A1:体重、A2:身長、A3:BMI、A4:目標BMI といった感じです。 例えばA1:86.0、A2:182.0ですとA3:BMI 25.96なので四捨五入して26.0と表示させています。その26.0の値に対して0.96掛けて24.96→25.0と四捨五入表示させたいのです。しかしA3:26.0ではなく実際25.96に対して0.96掛けてしまうため24.92→24.9と表示してしまうのです。 この記録表は社内で回付するためエラー表示は避けたいのでどなたかいい解決方法を早急にお願い致します。!!

  • EXCEL 時間計算について

    出勤から退勤までの時間を計算したいです。しかし、お昼休憩の1時間は省きます。また、算出した数字は、15分単位で表示し、14分は00分で表示します。C列にいれる式はどうなりますでしょうか?  A列   B列   C列 (出勤)(退勤)(勤務時間)  8:45  16:32  7:45

  • Excelで勤務時間の計算をしたいです。

    すでに作られている勤務表を前任者から受け継ぎましたが、 すべて手入力しているので関数を使ってもっと効率化を図りたいと思います。 皆様の知恵をお貸し下さい。 出勤時間→B列 退社時間→C列 出勤日数のカウント→D列 残業時間→E列 条件として ・定時は8:00~17:00に対して1時間の休憩をとる。 例:B列   C列  D列  E列   8:00 17:00  1  [空白] ・実働時間9時間を超える場合は残業時間に入れる 例:B列   C列  D列  E列   8:00 18:30  1   1.5 ・実働時間9時間以上の場合は1時間休憩を差し引き実働時間8時間としてそれに対して 出勤日数のカウント「1」 実働時間4時間以下の場合は休憩時間を差し引かずに 出勤日数のカウント「0.5」 実働時間4時間超え、9時間未満のものに対しては休憩時間に関係なく 出勤日数のカウント「1」 (ここが一番厄介な点かと思われます。4時間以内ならカウント0.5、4時間を越えたものはカウント1です。) 例:B列   C列  D列  E列   8:00 12:00  0.5  [空白]   8:00 15:00  1  [空白]   8:00 17:30  1   0.5 ・深夜勤務もあるが、その場合の残業は手動で計算するので、出勤日数のカウントだけでOK 例:B列   C列  D列  E列  23:00  5:00  1  [空白] このような状態なのですが、計算の列などを増やして(あまり増やしたくはないのですが・・・) 関数をいれてある程度自動で計算をさせたいのです。 休憩時間はほぼ1時間と決まっているのであまり列は増やさずに計算させたいです。 簡単な関数は知っていますが、表示形式など詳しいことは分かりません(残業時間1時間半を1.5と表示するなど・・・) ちなみに出勤日数のカウント、残業に関しては1や1.5などの数値を 他の時給計算で使っています。 巧く説明できなくてすみません((汗)) どのような関数を組んだらよいか、ご指導を宜しくお願いします_(._.)_

  • エクセルの関数。お願いします!

    任意の桁数で四捨五入するROUND関数についてお願いします。 A1「5678.492」の数値。 (ア)小数点以下を四捨五入しなさい。 (イ)1の位を四捨五入しなさい。 =ROUND(A1,○)の○には何が入るんでしょうか?