[[20061214100247]] 『たくさんの条件を満たす計算式』(ねね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『たくさんの条件を満たす計算式』(ねね)

 いつもお世話になっています。
 下記のような表があって「残業時間」を割り出したいです。
 基本勤務時間は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)


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)


satoさま

 ありがとうございます。
 残業時間を =B24-B20 で計算していますので、後者の式を入れ替えてみました。
 AM半、PM半に設定して定時にしても、残業が「0」になってくれます。
 また、AM半休後の残業もちゃんと計算してくれます。
 すごいです。ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.