エクセルの学校


[[20031104234154]] 『実働時間』(チルチル) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

|
| 全文検索 | 過去ログ | HOME ]

 

『実働時間』(チルチル)

 出勤  退社   実働
  

 9:00	18:00	8:00

 9:15	18:00	7:45

 12:15	18:00	5:00

 8:30	18:00	8:30

出勤時間と退勤時間を入力すると、
実働時間がでるようにしたいのです。
12時から13時は休憩時間になります。
12時15分や13時に出勤した場合休憩時間
を引かないようにしたいのですが・・・・
自分でやってみたのですが全然分かりません(>_<)
助けてください〜


 上記「実働」のすぐ下のセルをC2としますと、
 =IF(A2>TIMEVALUE("12:00"),IF(A2<TIMEVALUE("13:00"),B2-"13:00",B2-A2),B2-A2-"1:00")
 を入力してこの式を2行目以降へフィル。
 (KAMIYA)


有難うございます(^o^) できました〜


新たに問題が発生しちゃいました!
=IF(A2>TIMEVALUE("12:00"),IF(A2<TIMEVALUE("13:00"),B2-"13:00",B2-A2),B2-A2-"1:00")
↑で遅刻して来た人に関してはOKなのですが、9時(出勤)12時(退勤)など
早退すると、計算がおかしくなります・・・。
どうしたらいいのでしょうか?教えてください

 KAMIYAさんの式をお借りして
=IF(A2>TIMEVALUE("12:00"),IF(A2<TIMEVALUE("13:00"),B2-"13:00",B2-A2),B2-A2-"1:00"*(B2>TIMEVALUE("13:00")))
で良いと思います。(ケン)

 衝突しました。
 形を変えます。
 「12時から13時の間に出退勤がない場合は昼休みとして1時間控除する」
 という式にします。

 =IF(OR(A2>"12:00"*1,B2<"13:00"*1),B2-A2-"0:00"*1,B2-A2-"1:00"*1)

 "12:00"*1の部分はTIMEVALUE("12:00")と同義だと思ってください。
 (KAMIYA)


KAMIYAさん、ケンさん有難うございました!何とか仕上がって来たのですが、また問題が
・・・。出勤していない日に−1時間が表示されてしまい、合計がおかしくなってしまいます(ToT) 実働のところにマイナスを表示させない事出来ますか?

 マイナス表示はされないと思いますが、もし表示したくないのなら
=IF(OR(A2="",B2=""),"",IF(OR(A2>"12:00"*1,B2<"13:00"*1),B2-A2-"0:00"*1,B2-A2-"1:00"*1))
とか
=IF(OR(A2="休み",B2="休み"),"休み",IF(OR(A2>"12:00"*1,B2<"13:00"*1),B2-A2-"0:00"*1,B2-A2-"1:00"*1))
こんな感じです。(ケン)

 >−1時間が表示されてしまい
 そんなことってあるんでしょうか?(「########」の表示ならわかりますが)
 前掲の数式
 =IF(OR(A2>"12:00"*1,B2<"13:00"*1),B2-A2-"0:00"*1,B2-A2-"1:00"*1)
 は双方空白または「0」なら「0」が返ります。
 (KAMIYA)


 たぶん再現できました。
 ケンさんの数式で、
 A2=1900/1/1  0:00:00 →表示形式「13:30」だと0:00に見える。(実際には24時)
 数式を入力したセルが表示形式「標準/G」
 の場合にセルへ「-1」が返るようです。
 -1の出るセルを「0」か空白にすることで解決すると思います。
 (KAMIYA)

 あちゃちゃ。
 (誤)-1の出るセルを「0」か空白にすることで解決すると思います。
 (正) 「A2」セルを「0」か空白にすることで解決すると思います。
 でした。
 (慌て者のKAMIYA)

KAMIYAさんケンさんお手数かけました。有難うございます、出来ました〜。
(チルチル)

コメント:

[ 一覧(最新更新順) |

]


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