[[20071009155013]] 『勤務時間の計算(遅刻、早退の合計)』(マネ) ページの最後に飛ぶ

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

 

『勤務時間の計算(遅刻、早退の合計)』(マネ)

勤務表作成の際に、(所定勤務時間から)遅刻した時間と早退した時間の合計の求め方を教えて下さい。

      A        B       C        D
 始業時間 9:00 就業時間 17:00 休憩時間 1:00 実労働時間 7:00

   E    F     G     H      I
 開始時間 終了時間 開始時間 終了時間 遅刻・早退時間
 9:00   12:00   13:00   15:00   2:00
 11:00   12:00   13:00   17:00   2:00
 11:00   12:00   13:00   16:00   3:00
 9:00   12:00   13:00   17:00   0:00

上記のようになるようにIに計算式を入れたいのですが、

=IF(E>$A,E-TIME(9,00,),0+IF(H<$B,$B-H,0))

という計算式を入れた場合、早退か遅刻かどちらかの場合は正しく計算されるのですが、

同じ日に、遅刻と早退が重なると合計値が出ません。

説明が下手で申し訳ありませんが、是非よろしくお願いします。

WindoxXP Excel2002


 カッコの場所をちょっと変えて、
 =IF(E2>$A$1,E2-$A$1,0)+IF(H2<$B$1,$B$1-H2,0)
 ということでどうですか。

 なお、式中の TIME(9,00,) の部分は $A$1 に置き換えてあります。
 (sato)

satoさま

出来ました!!ありがとうございます!!(マネ)


もう一つ疑問が出ましたのでご教授お願い致します。

EFGH全てに数値が入っているときは問題ないのですが、
例えば午後半休を取った場合など、GHがブランクになる場合や、
午前半休でEFがブランクになると上手く計算できません。
その場合はどのような計算式を入れたら良いでしょうか?

また、欠勤でEからFが全てブランクの時はIもブランクにさせる為以下の数式にしましたが
良かったでしょうか?

=IF(E2&F2&G2&H2="","",IF(E2>$A$1,E2-$A$1,0)+IF(H2<$B$1,$B$1-H2,0))

よろしくお願い致します。
(マネ)


 遅刻した時間を考えると
 >IF(E2>$A$1,E2-$A$1,0)
 この式ですが ~~~~~~~ここを計算する条件として
 ●E2>$A$1 これは勿論ですが、併せて
 ●E2とF2に入力がある
 と言う2つの条件を設定するのはどうでしょう。

 >E2&F2&G2&H2=""
 と言う書き方をするなら
 AND(E2>$A$1,E2&F2="")
 の様に書けると思います。

 (HANA)

HANAさん

 >AND(E2>$A$1,E2&F2="")
 上記の式だと、
 E2が$A$1より大きく、なおかつE2&F2がブランクの時
 という式になるのでしょうか?

(マネ)


 はぁ〜、ごめんなさい。
 そう言う式ですよね。
 本当は、
「E2が$A$1より大きく、なおかつ
 E2&F2がブランクでない時」
         ~~~~~~
 ですよね。
 ブランクでない は「E2&F2<>""」
 として下さい。

 (HANA)


HANAさん

 AND の使い方がいまいち理解できていないせいか計算式が完成せずエラーになります。
 大変申し訳ないのですが、もう一度どこに
 AND(E2>$A$1,E2&F2<>"")
 を入れたらよいのか教えて下さい。
 本当にスミマセン。。。

 (マネ)


 えっと・・・
 どんな式を作ったとき、どんなエラーになりますか?
  
>IF(E2>$A$1,E2-$A$1,0)
     ~~~~~~~ここの代わりに
    AND(E2>$A$1,E2&F2<>"")←なので
 IF(AND(E2>$A$1,E2&F2<>""),E2-$A$1,0)
    ~~~~~~~~~~~~~~~~~~~~~~
 と言う式ですが・・・。
 これが駄目なのですかね?
 単独で空いたセルに入れて確認してみて下さい。

 (HANA)

HANAさん

 ありがとうございました!
 欠勤でEからFが全てブランクの時はIもブランクにさせることはできました!

 が、もう一つの難題で、、、
 午前半休でEFがブランク、または午後半休でGHがブランクの場合、
 答えがO.00時間になり、半休分の時間が計算されません。
 やはりこれを計算式に組み込むことは無理でしょうか?
 色々試してはいますが、0.00またはエラーです。。。(T-T)

 何度も申し訳ありませんがよろしくお願い致します。

(マネ)


 どんな式を作りましたか?

 (HANA)

HANAさん

 =IF(AND(E2>$A$1,E2&F2<>""),E2-$A$1,0)+IF(AND(H2<$B$1,E2&F2<>""),$B$1-H2,0)

 という式を入力しています。
 EFGHに数値が入っている場合は正しい数値が返ります。
 EFブランクまたはGHブランクの際に、正しい数値が返りません。

(マネ)


 前半部分と後半部分に分けて、空いたセルに入力したとき
 期待しない結果が表示されると思いますが
 どんな値が入力されているときの、どちらの値が
 どの様に期待しない値になるか、教えてもらえますか?

 ちなみに「E2&F2<>""」は
 「E2とF2が空欄でない」ですよ?
 「G2とH2が空欄かどうか?」は確認出来ませんが。

 (HANA)

HANAさん

 質問に対する答えが間違えていたらすみません。

      A        B       C        D
 始業時間 9:00 就業時間 17:00 休憩時間 1:00 実労働時間 7:00

   E    F     G     H      I
 開始時間 終了時間 開始時間 終了時間 遅刻・早退時間
 10:00   12:00   13:00   15:00   3:00
 9:00   12:00   13:00   17:00   0:00
                     13:00   17:00   3:00
 9:00   12:00                        4:00

 Iのセルに↓の式を入れています。

 =IF(AND(E2>$A$1,E2&F2<>""),E2-$A$1,0)+IF(AND(H2<$B$1,E2&F2<>""),$B$1-H2,0)

 E1 や E2 のようにE〜Hまで時間が入っているときは正確な数値が入ります。
 E3 や E4 のように午前、午後がブランクの時は、
 休んだ時間を上の様にIに入れたいのですが、上記計算式だと0.00になります。

 上記式に
  E3,F3がブランクの時は3.00を足す
  G4,G5がブランクの時は4.00を足す
 という感じで条件式に追加出来るのでしょうか?

(マネ)


 そう言う事で有れば、その様なIF関数を作って
 足し算すれば良いのではないですか?
「E3,F3がブランクの時は3時間、そうでない時は0時間」
 と言う式は↓の様になると思いますが。
 IF(E2&F2="",3/24,0)

 式を作るときは、場合分けをするのが良いと思います。
 1.遅刻時間を計算する
 2.早退時間を計算する
 3.午前休みを計算する
 4.午後休みを計算する
 これらを足した時間が、I列に入る時間です。
 J2に遅刻した時間
=IF(AND(E2>$A$1,E2&F2<>""),E2-$A$1,0)
 K2に早退した時間
=IF(AND(H2<$B$1,E2&F2<>""),$B$1-H2,0)
 L2に午前休みだった時の時間
=IF(E2&F2="",3/24,0)
 M2の式は作ってみて下さい。

 それぞれ下にコピーしたときに、期待する所に
 期待する数字が出るので有れば、これらを足し算した式を
 I列に入れて下さい。

 (HANA)

HANAさん

 す、凄い!!出来ました!!
 IF関数をこんな風に複数足し算できるとは思いませんでした。
 というかそういう発想が全くありませんでした。
 やっと出来上がりました☆
 最後の最後まで丁寧に教えてくださって本当にありがとうございます☆
 また今後も何かありましたらどうぞよろしくお願い致します。

(マネ)


コメント返信:

[ 一覧(最新更新順) ]


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