[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『たくさんの条件を満たす計算式』(ねね)
いつもお世話になっています。 下記のような表があって「残業時間」を割り出したいです。 基本勤務時間は8:30-17:15(内11:45-12:40休憩)で7.83/日です。 出社時間が12:40の場合、自動的に休暇に「AM半休」、帰社時間11:45の場合「PM半休」 と休暇の行に表示する設定になっています。 残業時間=実労働時間-基本勤務時間で表示されます。 しかし、AM半休して定時に帰った場合やPM半休した場合 残業時間がマイナス表示になってしまいます。 会社にはAM半休、PM半休の制度があるので、実労働時間にAM半休の場合「4.58」 PM半休の場合「3.25」がありそれが実労働時間になります。 その場合「残業時間=実労働時間-基本勤務時間」にならないのです。 半休を取って定時で帰った場合の残業時間を「0」とする計算式と AM半して残業した場合の残業時間(4.58+残業)を両立して算出できますでしょうか?
A B C D E F
1 作業内容 2 3 営業 5 2 3 4 開発 2 5 その他 0.83 1.25 1.58 ・ ・ 20基本勤務時間 7.83 7.83 7.83 21 22出社時間 8:30 8:30 12:40 23帰社時間 17:15 11:45 17:15 24実労働時間 7.83 3.25 4.58 25残業時間 0.00 -4.58 -3.25 26休日出勤 27休暇 PM半 AM半
残業時間=実労働時間-基本勤務時間 と考えると、 実労働時間はすでに計算されていますから、あとは基本勤務時間のほうを 変えてやればいい訳です。 しかも「PM半」と「AM半」は出ているようですから、 例えば、
基本勤務時間=IF(B27="PM半",3.25,IF(B27="AM半",4.58,7.83))
のようにすればどうでしょうか。 (sato)
ご回答ありがとうござます。 基本労働時間には、祝祭日は計算しないように下記の式が入っています。
=IF(OR(MONTH(DATE($A$1,$C$1,0)+COLUMN(I$1))<>$C$1,(WEEKDAY(DATE($A$1,$C$1,0) +COLUMN(I$1),2)>5)+COUNTIF(祝祭日,DATE($A$1,$C$1,0) +COLUMN(I$1))),"","7:50"*24)
これに IF(B27="PM半",3.25,IF(B27="AM半",4.58,7.83))をどのように追加すれば 良いでしょうか?
そのまま当てはめると、 =IF(B27="PM半",3.25,IF(B27="AM半",4.58,7.83)) ~~~~~~ この部分にねねさんの数式をはめ込んで、
=IF(B27="PM半",3.25,IF(B27="AM半",4.58, IF(OR(MONTH(DATE($A$1,$C$1,0)+COLUMN(I$1))<>$C$1,(WEEKDAY(DATE($A$1,$C$1,0) +COLUMN(I$1),2)>5)+COUNTIF(祝祭日,DATE($A$1,$C$1,0) +COLUMN(I$1))),"","7:50"*24)))
でよさそうですね。 でも、 必ずしも基本労働時間そのものを変更する必要はありません。 もし残業時間を =B24-B20 として計算しているのであれば、 その数式を
=B24-IF(B27="PM半",3.25,IF(B27="AM半",4.58,7.83) とすることも可能ですね。 (sato)
ありがとうございます。 残業時間を =B24-B20 で計算していますので、後者の式を入れ替えてみました。 AM半、PM半に設定して定時にしても、残業が「0」になってくれます。 また、AM半休後の残業もちゃんと計算してくれます。 すごいです。ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.