プロが教える店舗&オフィスのセキュリティ対策術

エクセルのタイムカードで悩んでいます。。。。

今、エクセルでタイムカードを作っています。
飲み込みが遅い初心者なものでなかなか進みません。。。。

教えてください(>‐<。)

会社はサービス業です。
・基本就業時間は9:00から~18:00の1時間休憩の8時間勤務の15分刻みになっております。
・早出や遅出等もありますので、その場合は1時間休憩は無しの時間を求めます。
・8時間以上の場合で9:00前と18:00以降は15分単位で残業となります。

@時間単位を15分単位できることができません。

一応、教わりながら関数を作ったのですが、どうしても15分単位できることができません。。。。
A1 出勤時間
B1 退勤時間
C1 就業時間 →→=IF(A1="","",IF(B1-A1>TIME(8,0,0),B1-A1-TIME(1,0,0),B1-A1))
D1 残業時間
となってます。

C1の関数式で15分単位にする場合の式を教えて下さい。

言葉足らずで解りずらい説明ですが・・・・
宜しくお願い致します。

A 回答 (4件)

早出や遅出のときの休憩時間ですが基本的には8時間以上のときは1時間の休憩をとることでよいのですね。


また、このような勤務時間の計算では15分単位で切り捨てや切り上げが行われますが、出勤時間では切り上げを、退勤時間では切り捨てを行うのが普通でしょう。これらの切り上げや切り捨てにはFLOOR関数やCEILIMG関数が使われます。

C1セルには次のような式を入力するのがよいでしょう。

=IF(COUNT(A1:B1)<>2,"",FLOOR(B1,"0:15")-CEILING(A1,"0:15")-IF(FLOOR(B1,"0:15")-CEILING(A1,"0:15")>="8:00"*1,"1:00",0))

また残業時間の計算ですが計算にエラーが出ないようにMAXやMIN関数を使って計算をします。
C1セルには次の式を入力します。

=IF(COUNT(A1:B1)<>2,"","9:00"-MIN(CEILING(A1,"0:15"),"9:00")+MAX(FLOOR(B1,"0:15"),"18:00")-"18:00")

いずれもセルの表示形式は時刻から選択します。
    • good
    • 0
この回答へのお礼

何回も本当にありがとうございます。

飲み込みが悪くてすみません。。。。
丁寧な回答のおかげで本当に助かりました☆★

15分刻みの件もなんとかクリアできました!!!
これからもしっかりと学んでいきたいと思います(^^)

本当にありがとうございました!!!!

お礼日時:2010/08/31 18:06

8月24日にも同じ質問がありましたね。


時間の計算は15分単位ということは、15分で割って、切り捨てて15分を掛ければ
求める時間が出ます。
難しい関数は使っていませんので、ファイト!
--------------------
A1=7:14(出勤時間入力)
B1=19:10(退出時間入力)

C1=IF(A1<>0,INT((MIN(B1,"18:00")-MAX(A1,"9:00"))/"0:15")*"0:15"-"1:00",0)
9:00から18:00までの勤務時間です。(8:00)となっています。
なお、A1が0の場合(休暇)は0になります。

D1=IF(A1<>0,INT(max((+A1-"9:00"),0)/"0:15",0)*"0:15",0)
朝の超過勤務時間を算出しています。(0:45)となっています。

E1=INT(MAX((+B1-"18:00"),0)/"0:15",0)*"0:15"
夜の超過勤務時間を算出しています。(1:00)となっています。
--------------------
(注)各セルの表示形式を、時刻に変更してくださいね。
【セルの書式設定】→【表示形式】→【時刻】→【13:30】
    • good
    • 0
この回答へのお礼

何回も回答ありがとうございます。

私も初めてのことだったので本当に助かりました!!!
丁寧に何度も教えて頂いたおかげで、かなり進みました☆★

これからもっと勉強して学んでいきたいと思います(^^)

本当にありがとうございました!!!!

お礼日時:2010/08/31 18:02

下のようにセルに式を入れます。



B2開始時刻 8:00:00
C2終業時刻 12:05:00
D2時間数     =C2-B2
E2分換算数 =D2*60   
F215分単位の分数計=int(E2/15)*15
G215分単位の時間数=int(F2/60)
H215分単位の分数 =F2-G2*60


この関数のコツはF2のint関数の使い方です。合計分数(E2)を60で割って端数を切り捨てた数に15を掛けると、15未満の数が切り捨てになります。

例えば 17→15、37→30というようになります。
この式に実際の数値を入れて確かめてください。
意味は良く考えてくださいね。

G2はそれから時間数だけを取り出します。 (例4時間15分の場合 4)
H2は端数に当たる15分単位の分数です。  (例4時間15分の場合 15)

これで基本的な問題は解決しますので、実際のタイムカードの数値にどう適用するかを考えてください。
なお、E2からH2はセルの属性は時間表示ではなく数値にしておくことが肝心です。ここが時間表示になるとうまくいきません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

勉強になりました☆★

まだまだ勉強不足ですが・・・・
これから頑張っていきたいと思います(^^)♪♪

お礼日時:2010/08/30 18:38

実際の就業時間からmod関数で15分(0.25時間)で割った余りを実際の就業時間から引いてみてください。


B1-A1の部分を以下のように変更してみてください。
B1-A1-MOD(B1-A1,0.25)

この回答への補足

回答ありがとうございます☆★

こーいうことですか???
→→=IF(A1="","",IF(B1-A1>TIME(8,0,0),B1-A1-TIME(1,0,0),B1-A1-MOD(B1-A1,0.25))

本当に理解能力がなくてすみません。

補足日時:2010/08/30 18:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!