人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの関数について教えてください。
エクセルで残業時間等の計算のできる関数の組み方を教えてください。
例えばA1セルに「9:00」と入力しB1セルに「23:00」と入力すると、定時の時間が8時間、労働8時間以上でかつ深夜(22:00以降)までの残業時間数(例の場合)4時間、深夜時間(例の場合)1時間というそれぞれの時間数が自動的に出てくるようにするにはどのような関数式を作ればよいでしょうか。ただし時間はまちまちで、必ずしも9:00スタートではないのです。残業時間、深夜時間の規定は一応労働基準法の通りで、労働時間数8時間以上が残業時間、ただし20:00?朝5:00までは深夜時間と考えようと思います。
何卒宜しくお願いいたします。


●質問者: Platini
●カテゴリ:コンピュータ
✍キーワード:00 23:00 A1 うそ エクセル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ミケ
●27ポイント

結構皆様悩まれてらっしゃるようですね。


http://oshiete1.goo.ne.jp/qa2817898.html

http://questionbox.jp.msn.com/qa2810749.html


http://excelcafe.net/qa/index.cgi?mode=view&no=812


http://www.excel.studio-kazu.jp/kw/20040625160650.html

おまけ

http://www.relief.jp/itnote/archives/000452.php


2 ● SALINGER
●27ポイント

A1に始業時間、B1に終業時間としたときの各時間の数式です。

=IF(B1>A1,IF(HOUR(B1)-HOUR(A1)>8,8,HOUR(B1)-HOUR(A1)),IF(HOUR(B1)+24-HOUR(A1)>8,8,HOUR(B1)+24-HOUR(A1)))

=IF(B1>A1,IF(HOUR(B1)-HOUR(A1)>8,HOUR(B1)-HOUR(A1)-8,0),IF(HOUR(B1)+24-HOUR(A1)>8,HOUR(B1)+24-HOUR(A1)-8,0))

=IF(IF(B1>A1,HOUR(B1),HOUR(B1)+24)<=22,0,IF(IF(B1>A1,HOUR(B1),HOUR(B1)+24)<=29,IF(HOUR(A1)>22,IF(B1>A1,HOUR(B1),HOUR(B1)+24)-HOUR(A1),IF(B1>A1,HOUR(B1),HOUR(B1)+24)-22),IF(HOUR(A1)>22,29-HOUR(A1),7)))

格式は時間間隔を表すので、セルの表示形式は標準か数値にしてください。

例えば深夜時間7.5のように時刻と混同しないようにあえて少数にしています。


3 ● SALINGER
●26ポイント

先に回答したのに間違いがありましたので修正します。

=IF(B2>=A2,IF((B2-A2)*24>8,8,(B2-A2)*24),IF((B2+1-A2)*24>8,8,(B2+1-A2)*24))

=IF(B2>=A2,IF((B2-A2)*24>8,(B2-A2)*24-8,0),IF((B2+1-A2)*24>=8,(B2+1-A2)*24-8,0))

=IF(IF(B2>=A2,B2,B2+1)*24<=22,0,IF(IF(B2>=A2,B2,B2+1)*24<=29,IF(A2*24>22,IF(B2>=A2,B2,B2+1)*24-A2*24,IF(B2>=A2,B2,B2+1)*24-22),IF(A2*24>22,29-A2*24,7)))+IF(B2>=A2,IF(A2*24<5,IF(B2*24<5,(B2-A2)*24,5-A2*24),0),IF(A2*24<5,5-A2*24,0))

各時間は時間間隔なので、時刻と混同しないようにセルの書式設定を標準か数値にしてください。

7.5のように少数で分を表したほうが、使い易いはずです。

ここでは始業時間>終業時間の場合は24時間を超えていると判別しています。

更に、深夜時間の計算として始業時間が5時前の場合を考慮していますので少し長くなりました。

◎質問者からの返答

ご回答有難うございます。あつかましい再質問ですが、例えば19:00?7:00までの勤務のような場合、労基法を適用すると19:00?22:00までは通常時給(1.0)で22:00?6:00までは勤務時間が8時間に満たなくても1.25倍になるようなのです。さらに労働時間8時間以上で、かつ深夜時間帯(22:00?6:00)でっすと1.5倍の深夜時給になるようなのですが、こういった複雑な設定は関数でできるでしょうか?あるいは他になにか簡単な方法などないでしょうか?アドバイスいただけるとありがたいです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ