仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成...
2009/2/1610:45:42
仕事でシフト作成と給料計算をしています。できればシフト(エクセルで作成)を作成した時点でおおまかな金額を知りたいと思い、いろいろ試しているのですがうまくいきません。弊社のシフトは、例えばA1とA2のセルを
結合して名前を入力し、B1に出勤時間(9:00なら9と入力)、B2に退勤時間(18:00なら18と入力)します。そこからC1C2D1D2と、日を追って入力していきます。弊社の営業時間が24時間となっていて、0時出勤の方もいれば、0時をまたぐ方もいます。私がしたいのは、そこから拘束時間、深夜勤務時間を算出したいと思っています。拘束時間と深夜勤務時間がわかれば別シートで計算できるのですが、様々なパターンに対応できるような数式を入力しようとしてもうまくいきません。エクセルに詳しい方がいらっしゃいましたら、できれば実例(数式)を入れて教えていただければと思います。
宜しくお願い致します。
ベストアンサーに選ばれた回答
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))
で良いと思うのですが、十分に検証していませんので、ミスがあるかもしれないです。
ご自分でよく確認してみてください。
このQ&Aで解決しましたか?質問する
閉じる
ベストアンサー以外の回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
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時間にしています。
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/
----------------------------------------------------
このカテゴリの回答受付中の質問
- 【Excel】リンクされた図を含むワークブックが重いので図のリンク状態を制御する...
- 問3番を教えてください!! よろしくお願いします.・゚゚(>ω<。人)
- 臨海セレクトは日付指定できますか?
- 8月末で退職をし、9月下旬にある採用試験を待つ者です 診療内科には行けませんか...
- windowsのoffeceで、フォルダーを開くときに暗証コードを入力しないと、開けない...
- ドロップダウンリストの作り方、OFFSELT
- エクセルのマクロを教えてください。 エクセルバージョン2016 A 1 8304 2 83...
- Googleスプレッドシートで集計したデータをセルに自動で挿入したい https://docs....
- Excelなんですがこのやり方が全く分からないので教えて下さい!! イフ関数のどこ...
- LINE上でのやり取りです。 同窓会目的でグループを作ったのですが、人が増え...
このカテゴリの投票受付中の質問
- エクセルにて生徒の成績計算をしたいと思っています。 範囲を指定して得点率%...
- エクセルのライセンス認証してないファイルの印刷 会社の不手際でオフィスのラ...
- エクセル マクロ エクセルに連続いたデータあります。 セルA列に 12/1 12/1 12/...
- エクセルのデーターで、条件に合うデーターのみを抽出し、空所には、何も表示しな...
- Excelで文字色の変更する時によく使用する色がありますが ”その他の色”なので、...
- 【マクロ超初心者】 Excelマクロについてお尋ねです。 下記2点の希望動作が作...
- Excelのマクロについて教えて下さい。 ダブルクリックで●→○→■と変化する設定を...
- Excel初心者です。 関数について質問させてください。 例えばsheet1のA1からA10...
- エクセルのシートのことで Sheet1のI列に○が入っている行のみ Sheet2にリンク貼...
- EXCEL2016 特定の文字列がある列の最下行データの2つ下、3つ下にデータを入力し...
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。