ここから本文です

仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成...

mab********さん

2009/2/1610:45:42

仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成した時点でおおまかな金額を知りたいと思い、いろいろ試しているのですがうまくいきません。弊社のシフトは、例えばA1とA2のセルを

結合して名前を入力し、B1に出勤時間(9:00なら9と入力)、B2に退勤時間(18:00なら18と入力)します。そこからC1C2D1D2と、日を追って入力していきます。弊社の営業時間が24時間となっていて、0時出勤の方もいれば、0時をまたぐ方もいます。私がしたいのは、そこから拘束時間、深夜勤務時間を算出したいと思っています。拘束時間と深夜勤務時間がわかれば別シートで計算できるのですが、様々なパターンに対応できるような数式を入力しようとしてもうまくいきません。エクセルに詳しい方がいらっしゃいましたら、できれば実例(数式)を入れて教えていただければと思います。
宜しくお願い致します。

閲覧数:
1,611
回答数:
3
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

yut********さん

2009/2/1615:04:09

以下の仮定を置いていますがOKでしょうか?
1.勤務時間は24時間を越えない (24時間を越えるようなら、設問のような入力では勤務時間の管理がそもそも出来ない)
2.深夜勤務とは10時~5時の間の勤務を指す

条件を整理して考えます。
勤務時間が24時間を越えない→退勤時刻B2が出勤時刻B1よりも大きければ日付をまたいでいない。逆なら日付をまたいでいる。
日付をまたいでいないときの勤務時間=退勤時刻-出勤時刻
日付をまたいでいるときの勤務時間=退勤時刻-出勤時刻+24
これをExcelで表現すると
=IF(B2>B1,B2-B1,B2-B1+24)
となります。(もしB2>B1であればB2-B1、そうでなければ、B2-B1+24を返す)

深夜勤務はもう少し条件を分ける必要があります。
深夜勤務のパターンとしては、
出勤時間/退勤時間
(A) 22時以降0時より前/ 22時以降0時より前
(B) 22時以降0時より前/ 0時以降5時以前
(C) 22時以降0時より前/ 5時より後22時より前
(D)0時以降5時以前/ 22時以降0時より前
(E)0時以降5時以前/ 0時以降5時以前
(F)0時以降5時以前/ 5時より後22時より前
(G)5時より後22時より前/ 22時以降0時より前
(H)5時より後22時より前/ 0時以降5時以前
(I)5時より後22時より前/ 5時より後22時より前
に分けられ、更に(A)(E)(I)は同日同士のケースとほぼ丸一日働くケースの二種類があります。
(同日同士かどうかは上記の方法で判定できます。)
これをIF文に実装します。
さすがに全部をひとつのセルにまとめるのはしんどいので、(A)~(I)に該当する9つのセルを準備し、その総和をとります。
(深夜業務がある場合には、9つの内どれかひとつだけが0でない数字が入り、それ以外は全て0になります。)
(A)=IF(B$2>B$1,IF(AND(B$1>=22,B$2>=22),B$2-B$1,0),IF(AND(B$1>=22,B$2>=22),24-B$1+5+B$2-22,0))
(B)=IF(AND(B$1>=22,B$2<=5),24-B$1+B$2,0)
(C)=IF(AND(B$1>=22,AND(B$2>5,B$2<22)),24-B$1+5,0)

(D)=IF(AND(B$1<=5,B$2>=22),5-B$1+B$2-22,0)
(E)=IF(B$2>B$1,IF(AND(B$1<=5,B$2<=5),B$2-B$1,0),IF(AND(B$1<=5,B$2<=5),5-B$1+B$2+2,0))
(F)=IF(AND(B$1<=5,AND(B$2>5,B$2<22)),5-B$1,0)

(G)=IF(AND(AND(B$1>5,B$1<22),B$2>=22),B$2-22,0)
(H)=IF(AND(AND(B$1>5,B$1<22),B$2<=5),2+B$2,0)
(I)=IF(B$2>B$1,IF(AND(AND(B$1>5,B$1<22),AND(B$2>5,B$2<22)),0,0),IF(AND(AND(B$1>5,B$1<22),AND(B$2>5,B$2<22)),7,0))
で良いと思うのですが、十分に検証していませんので、ミスがあるかもしれないです。

ご自分でよく確認してみてください。

質問した人からのコメント

2009/2/18 18:59:49

成功 皆さん本当にありがとうございます!本当に助かりました♪今回初めて投稿させていただきまして、こんなにもレスポンスがあるとは思いませんでした。本当に皆さんの回答がわかりやすくて本当に迷ったのですが、レスポンスが1番早かったyutakadzukiさんを選ばせていただきました。皆さんまた宜しくお願いします☆

このQ&Aで解決しましたか?質問する

閉じる

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

hot********さん

2009/2/1719:44:38

こんなのではどうでしょうか?
勤務時間が24時間を超えない場合です。
最大24時から24時間までの48時間で考えます。
まず、B2がB1より小さい場合は退社は翌日とします。
この場合退社時刻は、退社時刻が出社時刻より小さい場合は24を加える
=B2+IF(B2>B1,0,24)
になると思います。
なので、拘束時間は
=B2-B1+IF(B2>B1,0,24)
で求まると思います。

例えば深夜時間が22時から翌5時の場合は48時間で拡張すると、0-5,22-29,46-48の3区間になります。
ここで2つの時間の重なりは、例えばB1からB2と22から29の場合は、B2も48時間に拡張されている場合は
=MAX(0,MIN(29,B2)-MAX(22,B1))
と言う式で求まると思います。(こうなる理由はネット上で調べてもらえれば色々な所に書いてあります)
なので、深夜時間は
=MAX(0,MIN(5,B2)-MAX(0,B1))+MAX(0,MIN(29,B2)-MAX(22,B1))+MAX(0,MIN(48,B2)-MAX(46,B1))
になりますが、退社時刻を48時間に拡張する場合は
=B2+IF(B2>B1,0,24)
と言う式で求まるので、実際の深夜勤務時間は
=MAX(0,MIN(5,B2+IF(B2>B1,0,24))-MAX(0,B1))+MAX(0,MIN(29,B2+IF(B2>B1,0,24))-MAX(22,B1))+MAX(0,MIN(48,B2+IF(B2>B1,0,24))-MAX(46,B1))
と言う式で求まると思います。

p.s.
出社時刻と退社時刻が同じ場合は勤務時間を0時間にするのか24時間にするのかによって
IF(B2>B1,0,24)
の部分が変わります。
上は同時刻は24時間にしています。

hig********さん

2009/2/1617:17:56

>仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成した時点でおおまかな金額を知りたいと思い、いろいろ試しているのですがうまくいきません。

以前似たような質問に回答していますので、その手法でよろしければ。

エクセルでのコンビニの勤務時間管理について
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1422282429

A1からA6までをワークエリアとします。
A7からA10に割り振りした時間を算出します。
A11は、式で必要なダミーです。

B3
=IF(B$2-$A3>0,(B$2-$A3),0)-IF(B$1-$A3>0,(B$1-$A3),0)

B7
=B3-SUM(B8:B$11)

を、それぞれ下へコピー、右へコピーです。

一応深夜を22時から翌5時としており、ほぼ二日間(0時から翌22時)の勤務時間まで対応しています。
ただし、24時間を越えた場合は、時刻に+24して入力してください。(19時->翌6時は、19->30)

↓サンプルブックです。
http://yokohamaloving.web.fc2.com/sample2.xls

----------------------------------------------------
ブログ「Yahoo!知恵袋のBA回答への補足等」始めました。
http://blogs.yahoo.co.jp/higashikanagawa_bad/
回答後の追記・補足や修正があれば、反映しています。

ニコニコ動画のボカロオリジナルと、アーティストを紹介、応援しています。
こちらも、よろしく。
http://yokohamaloving.web.fc2.com/
----------------------------------------------------

&gt;仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成した時点でおおまかな金額を知...

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる