[[20070704014918]] 『勤務時間の計算』(とるち) ページの最後に飛ぶ

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

 

『勤務時間の計算』(とるち)
 出勤		休憩開始		休憩終了		退出	
 D	E	F	G	H	I	J	K
 8	00	12	00	14	00	19	00

 というようにタイムカードを時と分にわけて入力しています。
 このデータから「出勤時から18時までの基本労働時間(単位は分)」と
 18時以降の「時間外労働時間(単位は分)」を得たいと思っています。

 基本的には時間を分に直して18時を18*60分と考え、休憩時間や始業時間を引いていけばいいと思うのですが、
 それぞれの人によって出勤曜日が違い、出勤しない日は0と表示したいので最後にCOUNTA(D2)をかけてあります。

 ((18*60-D2*60-E2-(H2*60+I2-(F2*60+G2)))*COUNTA(F2)+(J2*60+K2-D2*60-E2)*(1-COUNTA(F2))*COUNTA(D2))

 D	E	F	G	H	I	J	K
 8	00					14	00

 というような勤務体系もあるので
 (J2*60+K2-D2*60-E2)*(1-COUNTA(F2))*COUNTA(D2)がついています。

 ただし、今回
 D	E	F	G	H	I	J	K
 13	00					19	00

 というような勤務形態が出てきてしまい、共通の式を求める方法に悩んでいます。

 ちなみに残業時間は(J2*60+K2-18*60)*COUNTA(F2) という式で出しています。
 これも3パターンめには対応できておりません。
 まとめると勤務形態は
 1 朝から18時過ぎまで。休憩あり。
 2 朝から午後まで。休憩なし
 3 午後から18時過ぎまで。休憩なし。

 という3種類になります。
 ご教授よろしくお願い致します。


ちなみに分の方はすべて00にしておきましたが、実際にはランダムな数字が入ります。

 お尋ねしますが。。。
 分は00と入力するということは文字列ということですか?
 分はランダムな数字とありますが、30分の場合は30or50?
 時の部分(D,F,H,J)は数値ですか?

 出勤   休憩開始  休憩終了	 退出	
  D	  E	  F	  G
 8:00	12:00	14:00	19:00
 のようにシリアル値(時刻)で入力するように変更は可能ですか?
 (gon-2)

=time(D1,E1,0) で出勤時間
退出ー出勤ー(休憩終了ー休憩開始)で求まると思いますが

 参考までにシリアル値とした場合
     D      E        F         G       H        I
 1  出勤	休憩開始	休憩終了	 退出   定時就業	残業時間
 2  8:00	 12:00	 14:00	19:00	 8:00	 1:00
 3  8:00			14:00	 6:00	 0:00
 4 13:00			20:00	 5:00	 2:00
 5                                    0:00     0:00

 H2=IF(D2="",0,MIN("18:00",G2)-D2-(F2-E2))				
 I2=MAX(G2-"18:00",0)
 下へフィルコピー                          (gon-2)


お返事ありがとうございます。
 シリアル値というのがいまいちよくわかりません。
 「8」「:」「00」と打ち込むだけではだめなのでしょうか?
 またD2のセルの書式はどのようにしたらよいのでしょうか?


自分で調べてみてシリアルにはできたのですが、毎回シリアルに変換するのは大変です。
 やはりこの場合hh:mmのhhとmmをそれぞれのセルに分けて
 D2=hh/24+mm/1440というような感じにしないとだめでしょうか?
 できればD2に0820と打つだけでシリアルに変換できるようになればいいのですが。。。

 =time(D1,E1,0)  シリアル値に変換
見てないようですね.
(()) 

 毎回シリアル値に切り替える必要はありません。8:20と入力するだけです。(2個のセルに入力するより楽と思うのは私だけかな)
 8:20と入力したセルの書式を見てください。ユーザー定義 h:mm になっているはずです。ちなみにそのセルの書式を標準に切り替
 えてみてください。0.347222になります。それがシリアル値です。24:00と入力して標準に切り替えると 1 となります。

 7/4と入力すると数式バーには2007/7/4、セルには7月4日となりますよね。書式を標準に切り替えると39267になります。
 つまり、1900/1/1より数えて39267日目ということです。 シリアル値 1 は 1日、24時間ということです。

 : や / をつければ表示は自動的に時刻、日付となり、エクセルが計算するのはシリアル値でもってするということです。

 8:や12:と00を省略しても8:00  12:00と表示してくれますよ。
 数式がスッキリするかと思い提示してみました。

 衝突しました。前レスのTIME関数をお試しください。  (gon-2)


 timeの関数がシリアル値に変換したものだと理解できていませんでした。
 お二人に感謝いたします。
 ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


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