<a name=▲このページのトップに戻る
249542タイムカード計算秘密 2005/03/29-11:33

メーカー名:富士通
OS名:WindowsXp
パソコン名:FMV-6000SL
--
タイムカード集計をエクセルで計算しようとしてるのですが、
まったくの初心者で計算方法がわかりません。
詳しく教えてください。m(__)m
基本の時間は8:30〜17:00なので、
退勤時間から出勤時間(8:30〜)を引いた合計を出すのですが、
休憩時間が10:00〜10:10
     12:00〜13:00
     15:00〜15:10とあるので、
この時間を合計から引きたいのですが・・・、
パート勤務者もいて、12:00で帰ったりと、
変則な時間になっているのでこの条件もクリアしたい。
あと時間は30分単位で計算したいです。



▲このページのトップに戻る
249553Re:タイムカード計算白茶 2005/03/29-12:43
記事番号249542へのコメント
こんにちは。

あくまで一例ね。

とりあえず休憩時間の引き方。
A2が日付
B2が出勤時間
C2が退勤時間
として、
D2に休憩時間を算出
D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)

で、
E2にその日の勤務時間を出す。
E2 =C2-B2-D2

さて、
>あと時間は30分単位で計算したいです。

これはどの時点で30分単位にするのでしょうか?

1日の勤務時間を30分単位で区切る?
1ヶ月の合計勤務時間を30分単位で区切る?

で、30分以下の端数は切り捨て?


▲このページのトップに戻る
249556Re:タイムカード計算秘密 2005/03/29-13:18
記事番号249553へのコメント
白茶さんは No.249553「Re:タイムカード計算」で書きました。
>こんにちは。
>
>あくまで一例ね。
>
>とりあえず休憩時間の引き方。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>として、
>D2に休憩時間を算出
>D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)
>
>で、
>E2にその日の勤務時間を出す。
>E2 =C2-B2-D2
>
>さて、
>>あと時間は30分単位で計算したいです。
>
>これはどの時点で30分単位にするのでしょうか?
>
>1日の勤務時間を30分単位で区切る?
>1ヶ月の合計勤務時間を30分単位で区切る?
>
>で、30分以下の端数は切り捨て?
>
>

▲このページのトップに戻る
249558Re:タイムカード計算秘密 2005/03/29-13:32
記事番号249553へのコメント
白茶さんは No.249553「Re:タイムカード計算」で書きました。
>こんにちは。
>
>あくまで一例ね。
>
>とりあえず休憩時間の引き方。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>として、
>D2に休憩時間を算出
>D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)
>
>で、
>E2にその日の勤務時間を出す。
>E2 =C2-B2-D2
>
>さて、
>>あと時間は30分単位で計算したいです。
>
>これはどの時点で30分単位にするのでしょうか?
>
>1日の勤務時間を30分単位で区切る?
>1ヶ月の合計勤務時間を30分単位で区切る?
>
>で、30分以下の端数は切り捨て?
>
>
すみません、空の返事を送ってしまいました。

まず、30分単位というのは、7:59に出社しても、8:10に出社しても
8:30からの勤務となり、30分以下は切捨てになります。

それと、休憩時間算出の関数を入力してみたのですが、
00と表示され、計算されないので、勤務時間も00になってしまいました。
もう一度試してみますが、この方法以外ないでしょうか?



▲このページのトップに戻る
249561Re:タイムカード計算白茶 2005/03/29-13:59
記事番号249558へのコメント
ども。
>休憩時間算出の関数を入力してみたのですが、
>00と表示され、計算されないので、勤務時間も00になってしまいました。
あれ?おかしいな。
セルの表示形式は「時刻」になってますか?
私の画面上ではバッチリ答えが出ますよ。

>30分単位というのは、7:59に出社しても、8:10に出社しても
>8:30からの勤務となり、30分以下は切捨てになります。

では、さっきのE2を訂正
E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30

これで
8:30〜17:00まで勤務した場合は、
E2="420"
になると思います。この数字の単位は「分」です。
つまり「420分」
7時間10分の「10分」を切り捨てました。

▲このページのトップに戻る
249563Re:タイムカード計算秘密 2005/03/29-14:09
記事番号249561へのコメント
白茶さんは No.249561「Re:タイムカード計算」で書きました。
>ども。
>>休憩時間算出の関数を入力してみたのですが、
>>00と表示され、計算されないので、勤務時間も00になってしまいました。
>あれ?おかしいな。
>セルの表示形式は「時刻」になってますか?
>私の画面上ではバッチリ答えが出ますよ。
>
>>30分単位というのは、7:59に出社しても、8:10に出社しても
>>8:30からの勤務となり、30分以下は切捨てになります。
>
>では、さっきのE2を訂正
>E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
>
>これで
>8:30〜17:00まで勤務した場合は、
>E2="420"
>になると思います。この数字の単位は「分」です。
>つまり「420分」
>7時間10分の「10分」を切り捨てました。

ありがとうございます。
休憩時間は、表示形式でバッチリ解決しました。

何度も申し訳ないのですが、420分の表示ではなく、
7時間30分か7.5時間という表示にはできないでしょうか?



▲このページのトップに戻る
249567Re:タイムカード計算白茶 2005/03/29-14:25
記事番号249563へのコメント
はいはい。

>7時間30分か7.5時間という表示にはできないでしょうか?

E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
の最後、"*30"を"/2"に訂正
E2="7.0"
になると思います。

一まとめの式にしましょうか。
A2が日付
B2が出勤時間
C2が退勤時間
D2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2

▲このページのトップに戻る
249573Re:タイムカード計算秘密 2005/03/29-14:37
記事番号249567へのコメント
白茶さんは No.249567「Re:タイムカード計算」で書きました。
>はいはい。
>
>>7時間30分か7.5時間という表示にはできないでしょうか?
>
>E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
>の最後、"*30"を"/2"に訂正
>E2="7.0"
>になると思います。
>
>一まとめの式にしましょうか。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>D2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>

ありがとうございます。
だんだんと形になってきました。

関数もきちんと計算され、表示されました、
が、休みの日(出勤・退勤が入力されていない日が
-8.5と出てしまって、合計時間がマイナスになってしまいます。
これは解決する方法があるのでしょうか?


▲このページのトップに戻る
249578Re:タイムカード計算白茶 2005/03/29-14:45
記事番号249573へのコメント
休みの日(出勤・退勤が入力されていない日が
>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>これは解決する方法があるのでしょうか?
>

IF関数で回避します。
B2の出勤時間に対しての条件式
IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)

IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
に訂正。

式を1本にすると
=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2

▲このページのトップに戻る
249583Re:タイムカード計算秘密 2005/03/29-14:59
記事番号249578へのコメント
白茶さんは No.249578「Re:タイムカード計算」で書きました。
>休みの日(出勤・退勤が入力されていない日が
>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>これは解決する方法があるのでしょうか?
>>
>
>IF関数で回避します。
>B2の出勤時間に対しての条件式
>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>を
>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>に訂正。
>
>式を1本にすると
>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2


すごいです・・・・・。
もう目が点になりそうな関数ですね。
でも、でも、すべて計算ができているんですね。
ほんとにすごい・・・。


この際だから、全部聞いてしまっていいですか?
残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
計算できません・・・?

あと、深夜残業の算出もしたいのですが、
IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
この関数では、時間がでてこないのです・・・?

もうひとつは、休日に出勤したときの
カウントの方法があれば教えてください。

ややこしいことばかり言って申し訳ありませんが、
よろしくお願いします。


▲このページのトップに戻る
249597Re:タイムカード計算秘密 2005/03/29-15:50
記事番号249583へのコメント
秘密さんは No.249583「Re:タイムカード計算」で書きました。
>白茶さんは No.249578「Re:タイムカード計算」で書きました。
>>休みの日(出勤・退勤が入力されていない日が
>>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>>これは解決する方法があるのでしょうか?
>>>
>>
>>IF関数で回避します。
>>B2の出勤時間に対しての条件式
>>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>>を
>>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>>に訂正。
>>
>>式を1本にすると
>>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>
>
>すごいです・・・・・。
>もう目が点になりそうな関数ですね。
>でも、でも、すべて計算ができているんですね。
>ほんとにすごい・・・。
>
>
>この際だから、全部聞いてしまっていいですか?
>残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
>計算できません・・・?
>
>あと、深夜残業の算出もしたいのですが、
>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>この関数では、時間がでてこないのです・・・?
>
>もうひとつは、休日に出勤したときの
>カウントの方法があれば教えてください。
>
>ややこしいことばかり言って申し訳ありませんが、
>よろしくお願いします。
>
>すごい関数があることに、おどろいて、内容を書いていませんでした。
残業とは、17:00〜22:00の間のことをいいます。

深夜残業とは、22:00〜翌6:00までのことをいいます。

どうぞよろしくお願いします。


▲このページのトップに戻る
249616Re:タイムカード計算秘密 2005/03/29-16:57
記事番号249597へのコメント
秘密さんは No.249597「Re:タイムカード計算」で書きました。
>秘密さんは No.249583「Re:タイムカード計算」で書きました。
>>白茶さんは No.249578「Re:タイムカード計算」で書きました。
>>>休みの日(出勤・退勤が入力されていない日が
>>>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>>>これは解決する方法があるのでしょうか?
>>>>
>>>
>>>IF関数で回避します。
>>>B2の出勤時間に対しての条件式
>>>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>>>を
>>>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>>>に訂正。
>>>
>>>式を1本にすると
>>>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>>
>>
>>すごいです・・・・・。
>>もう目が点になりそうな関数ですね。
>>でも、でも、すべて計算ができているんですね。
>>ほんとにすごい・・・。
>>
>>
>>この際だから、全部聞いてしまっていいですか?
>>残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
>>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>>パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
>>計算できません・・・?
>>
>>あと、深夜残業の算出もしたいのですが、
>>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>>この関数では、時間がでてこないのです・・・?
>>
>>もうひとつは、休日に出勤したときの
>>カウントの方法があれば教えてください。
>>
>>ややこしいことばかり言って申し訳ありませんが、
>>よろしくお願いします。
>>
>>すごい関数があることに、おどろいて、内容を書いていませんでした。
>残業とは、17:00〜22:00の間のことをいいます。
>
>深夜残業とは、22:00〜翌6:00までのことをいいます。
>
>どうぞよろしくお願いします。
>
>白茶さま、どうかわかる範囲でいいので教えてください。
このまま行き詰ってしまって、先に動けない状態になってしまっています。
今日は5時で終業なので、また、明日連絡まっています。
お願いします。m(__)m


▲このページのトップに戻る
249674まだ済んでなかったのね白茶 2005/03/29-20:51
記事番号249616へのコメント
ごめんなさいね。
私も常にパソコンの前に居る訳じゃないもので。

ええっと・・・

最初っから整理し直しましょうか。
A2に日付
B2に出勤時間
C2に退勤時間
が入力されてあるとして、

最終的には
D2に休憩時間を引いた終日の勤務時間(残業も含む)
E2に残業した時間
F2に深夜残業した時間
を算出することとします。

下ごしらえとして、
G2〜J2を集計エリアとして使います。

G2で出勤時間を補正
G2=IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
(8:30以前の出勤は8:30にする。且つ空白の場合は0を返す)

H2で退勤時間を補正
H2=IF(C2="",0,IF(C2<TIMEVALUE("8:30"),C2+1,C2))
(24:00以降の時刻には24時間プラス。且つ空白の場合は0を返す)

I2で、G2とH2から休憩時間を算出
I2=IF(AND(G2<TIMEVALUE("12:00"),H2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(G2<TIMEVALUE("10:00"),H2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(G2<TIMEVALUE("15:00"),H2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)

J2で休憩時間を引いた終日の勤務時間(残業も含む)を算出
J2=IF(G2*H2=0,0,H2-G2-I2)
(且つB2、C2どちらかが空白の場合は0を返す)

で、仕上げに、

D2=ROUNDDOWN(J2/0.000694444444444444/30,0)/2

E2=ROUNDDOWN(IF(G2<=TIMEVALUE("17:00"),IF(H2<=TIMEVALUE("17:00"),0,IF(H2<=TIMEVALUE("22:00"),H2-TIMEVALUE("17:00"),TIMEVALUE("5:00"))),IF(G2<=TIMEVALUE("22:00"),IF(H2<=TIMEVALUE("17:00"),H2-G2,TIMEVALUE("22:00")-G2),0))/0.000694444444444444/30,0)/2

F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),0)/0.000694444444444444/30,0)/2

目一杯広げちゃいました。
セル参照で式を組み立てた方が説明し易いので。

式をつなげて列の消費を抑えたいのならお好きにどうぞ。
あえてオススメはしません。
同じ式をあちこちで何度も入力しないといけないし、
この方が仕組みが見えて分り易いでしょ。

▲このページのトップに戻る
249835ごめん訂正白茶 2005/03/30-08:54
記事番号249674へのコメント
ミス発見

深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。

F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2

に訂正します。

▲このページのトップに戻る
249875Re:ごめん訂正秘密 2005/03/30-11:35
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。

本当にややこしい問題を解決してくださって、
ありがとうございました。m(__)m
仕事を頼まれた時はどうなることかと
思いましたが、白茶さんのおかげで
なんとか乗り越えれそうです。
本当にありがとうございました。
がんばります!!


▲このページのトップに戻る
249878Re:ごめん訂正秘密 2005/03/30-11:39
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。

ややこしい問題を解決してくださって、
ありがとうございました。m(__)m
仕事を頼まれたときは、どうなることかと
思っていましたが、白茶さんのおかげで
何とか乗り越えれそうです。
本当にありがとうございました。
がんばります!!


▲このページのトップに戻る
250444Re:ごめん訂正(タイムカード計算について)秘密 2005/04/01-15:25
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。



白茶さんへ
またまた質問が出てきてしまいました。

今月の休み 3月21日(Mon) 4月2日(Sat) 4月9日(Sat) 4月16日(Sat)

       時間数   深夜     G〜Jまでは関数が入っています。
日付   出勤  退出  小計  残業(22:00〜6:00)
3月21日(Mon)       0.0 0.0 0.0
3月22日(Tue) 8:15 17:05 7.0 0.0 0.0
3月23日(Wed) 0.0 0.0 0.0
3月24日(Thu) 0.0 0.0 0.0
3月25日(Fri) 0.0 0.0 0.0
3月26日(Sat) 0.0 0.0 0.0
3月27日(Sun) 0.0 0.0 0.0
3月28日(Mon) 0.0 0.0 0.0

今こんな感じで入力をしています・・・
前に教えていただいた関数はバッチリ計算できています。
で、問題ですが、日曜日にあたる日を条件付書式設定で、
赤文字にしています。その赤文字の部分の小計だけを計算して、
合計時間を出すことは可能ですか?
それと、日曜日以外の休日(今月の休み(1ヶ月4〜5日位))の
文字に色をつける設定をしてその色に対しての部分だけを
計算することは可能ですか?
あと色別に日数が集計できればありがたいのですが・・・
またまた、またまたですが、よろしくお願いいたします。




▲このページのトップに戻る
250450Re:ごめん訂正(タイムカード計算について)秘密 2005/04/01-15:39
記事番号250444へのコメント
秘密さんは No.250444「Re:ごめん訂正(タイムカード計算について)」で書きました。
>白茶さんは No.249835「ごめん訂正」で書きました。
>>ミス発見
>>
>>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>>
>>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>>
>>に訂正します。
>
>
>
>白茶さんへ
>またまた質問が出てきてしまいました。
>
>今月の休み 3月21日(Mon) 4月2日(Sat) 4月9日(Sat) 4月16日(Sat)
>
>        時間数   深夜     G〜Jまでは関数が入っています。
>日付   出勤  退出  小計  残業(22:00〜6:00)
>3月21日(Mon)         0.0 0.0 0.0
>3月22日(Tue) 8:15 17:05 7.0 0.0 0.0
>3月23日(Wed)         0.0 0.0 0.0
>3月24日(Thu)         0.0 0.0 0.0
>3月25日(Fri)         0.0 0.0 0.0
>3月26日(Sat)         0.0 0.0 0.0
>3月27日(Sun)         0.0 0.0 0.0
>3月28日(Mon)         0.0 0.0 0.0
>
>今こんな感じで入力をしています・・・
>前に教えていただいた関数はバッチリ計算できています。
>で、問題ですが、日曜日にあたる日を条件付書式設定で、
>赤文字にしています。その赤文字の部分の小計だけを計算して、
>合計時間を出すことは可能ですか?
>それと、日曜日以外の休日(今月の休み(1ヶ月4〜5日位))の
>文字に色をつける設定をしてその色に対しての部分だけを
>計算することは可能ですか?
>あと色別に日数が集計できればありがたいのですが・・・
>またまた、またまたですが、よろしくお願いいたします。
>
>
よく考えれば、もし、色別で集計が可能であれば、4日分だけ
書式で色をつければいいんですよね・・・
でも、色でできないときはどうすれば・・・
やっぱり、愛の手を・・・・・


▲このページのトップに戻る
249621Re:タイムカード計算やまと 2005/03/29-17:12
記事番号249597へのコメント
>>この際だから、全部聞いてしまっていいですか?

おしえて君は嫌われますよ?
すこしは、自分で勉強しないと・・・。

こちらを参考にして下さい。

http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20050324174019]]

hed_" BORDER="0" WIDTH="88" HEIGHT="31">
◇-?タイムカード計算-秘密(2005/03/29-11:33)No.249542
 ┗?~Re:タイムカード計算...-白茶(2005/03/29-12:43)No.249553
  ┣?~!Re:タイムカード計算...-秘密(2005/03/29-13:18)No.249556
  ┗?~-Re:タイムカード計算...-秘密(2005/03/29-13:32)No.249558
   ┗?~-!Re:タイムカード計算...-白茶(2005/03/29-13:59)No.249561
    ┗?~-!-Re:タイムカード計算...-秘密(2005/03/29-14:09)No.249563
     ┗?~-!-!Re:タイムカード計算...-白茶(2005/03/29-14:25)No.249567
      ┗?~-!-!-Re:タイムカード計算...-秘密(2005/03/29-14:37)No.249573
       ┗?~-!-!-!Re:タイムカード計算...-白茶(2005/03/29-14:45)No.249578
        ┗?~-!-!-!-Re:タイムカード計算...-秘密(2005/03/29-14:59)No.249583
         ┗?~-!-!-!--Re:タイムカード計算...-秘密(2005/03/29-15:50)No.249597
          ┣?~-!-!-!--?Re:タイムカード計算...-秘密(2005/03/29-16:57)No.249616
          ┃┗?~-!-!-!--?!まだ済んでなかったの...-白茶(2005/03/29-20:51)No.249674
          ┃ ┗?~-!-!-!--?!~ごめん訂正...-白茶(2005/03/30-08:54)No.249835
          ┃  ┣?~-!-!-!--?!~【解決】Re:ごめん訂...-秘密(2005/03/30-11:35)No.249875
          ┃  ┣?~-!-!-!--?!~【解決】Re:ごめん訂...-秘密(2005/03/30-11:39)No.249878
          ┃  ┗?~-!-!-!--?!~?Re:ごめん訂正(タ...-秘密(2005/04/01-15:25)No.250444
          ┃   ┗?~-!-!-!--?!~?-Re:ごめん訂正(タ...-秘密(2005/04/01-15:39)No.250450
          ┗?~-!-!-!--!Re:タイムカード計算...-やまと(2005/03/29-17:12)No.249621

▲このページのトップに戻る
249542タイムカード計算秘密 2005/03/29-11:33

メーカー名:富士通
OS名:WindowsXp
パソコン名:FMV-6000SL
--
タイムカード集計をエクセルで計算しようとしてるのですが、
まったくの初心者で計算方法がわかりません。
詳しく教えてください。m(__)m
基本の時間は8:30〜17:00なので、
退勤時間から出勤時間(8:30〜)を引いた合計を出すのですが、
休憩時間が10:00〜10:10
     12:00〜13:00
     15:00〜15:10とあるので、
この時間を合計から引きたいのですが・・・、
パート勤務者もいて、12:00で帰ったりと、
変則な時間になっているのでこの条件もクリアしたい。
あと時間は30分単位で計算したいです。



▲このページのトップに戻る
249553Re:タイムカード計算白茶 2005/03/29-12:43
記事番号249542へのコメント
こんにちは。

あくまで一例ね。

とりあえず休憩時間の引き方。
A2が日付
B2が出勤時間
C2が退勤時間
として、
D2に休憩時間を算出
D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)

で、
E2にその日の勤務時間を出す。
E2 =C2-B2-D2

さて、
>あと時間は30分単位で計算したいです。

これはどの時点で30分単位にするのでしょうか?

1日の勤務時間を30分単位で区切る?
1ヶ月の合計勤務時間を30分単位で区切る?

で、30分以下の端数は切り捨て?


▲このページのトップに戻る
249556Re:タイムカード計算秘密 2005/03/29-13:18
記事番号249553へのコメント
白茶さんは No.249553「Re:タイムカード計算」で書きました。
>こんにちは。
>
>あくまで一例ね。
>
>とりあえず休憩時間の引き方。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>として、
>D2に休憩時間を算出
>D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)
>
>で、
>E2にその日の勤務時間を出す。
>E2 =C2-B2-D2
>
>さて、
>>あと時間は30分単位で計算したいです。
>
>これはどの時点で30分単位にするのでしょうか?
>
>1日の勤務時間を30分単位で区切る?
>1ヶ月の合計勤務時間を30分単位で区切る?
>
>で、30分以下の端数は切り捨て?
>
>

▲このページのトップに戻る
249558Re:タイムカード計算秘密 2005/03/29-13:32
記事番号249553へのコメント
白茶さんは No.249553「Re:タイムカード計算」で書きました。
>こんにちは。
>
>あくまで一例ね。
>
>とりあえず休憩時間の引き方。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>として、
>D2に休憩時間を算出
>D2=IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)
>
>で、
>E2にその日の勤務時間を出す。
>E2 =C2-B2-D2
>
>さて、
>>あと時間は30分単位で計算したいです。
>
>これはどの時点で30分単位にするのでしょうか?
>
>1日の勤務時間を30分単位で区切る?
>1ヶ月の合計勤務時間を30分単位で区切る?
>
>で、30分以下の端数は切り捨て?
>
>
すみません、空の返事を送ってしまいました。

まず、30分単位というのは、7:59に出社しても、8:10に出社しても
8:30からの勤務となり、30分以下は切捨てになります。

それと、休憩時間算出の関数を入力してみたのですが、
00と表示され、計算されないので、勤務時間も00になってしまいました。
もう一度試してみますが、この方法以外ないでしょうか?



▲このページのトップに戻る
249561Re:タイムカード計算白茶 2005/03/29-13:59
記事番号249558へのコメント
ども。
>休憩時間算出の関数を入力してみたのですが、
>00と表示され、計算されないので、勤務時間も00になってしまいました。
あれ?おかしいな。
セルの表示形式は「時刻」になってますか?
私の画面上ではバッチリ答えが出ますよ。

>30分単位というのは、7:59に出社しても、8:10に出社しても
>8:30からの勤務となり、30分以下は切捨てになります。

では、さっきのE2を訂正
E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30

これで
8:30〜17:00まで勤務した場合は、
E2="420"
になると思います。この数字の単位は「分」です。
つまり「420分」
7時間10分の「10分」を切り捨てました。

▲このページのトップに戻る
249563Re:タイムカード計算秘密 2005/03/29-14:09
記事番号249561へのコメント
白茶さんは No.249561「Re:タイムカード計算」で書きました。
>ども。
>>休憩時間算出の関数を入力してみたのですが、
>>00と表示され、計算されないので、勤務時間も00になってしまいました。
>あれ?おかしいな。
>セルの表示形式は「時刻」になってますか?
>私の画面上ではバッチリ答えが出ますよ。
>
>>30分単位というのは、7:59に出社しても、8:10に出社しても
>>8:30からの勤務となり、30分以下は切捨てになります。
>
>では、さっきのE2を訂正
>E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
>
>これで
>8:30〜17:00まで勤務した場合は、
>E2="420"
>になると思います。この数字の単位は「分」です。
>つまり「420分」
>7時間10分の「10分」を切り捨てました。

ありがとうございます。
休憩時間は、表示形式でバッチリ解決しました。

何度も申し訳ないのですが、420分の表示ではなく、
7時間30分か7.5時間という表示にはできないでしょうか?



▲このページのトップに戻る
249567Re:タイムカード計算白茶 2005/03/29-14:25
記事番号249563へのコメント
はいはい。

>7時間30分か7.5時間という表示にはできないでしょうか?

E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
の最後、"*30"を"/2"に訂正
E2="7.0"
になると思います。

一まとめの式にしましょうか。
A2が日付
B2が出勤時間
C2が退勤時間
D2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2

▲このページのトップに戻る
249573Re:タイムカード計算秘密 2005/03/29-14:37
記事番号249567へのコメント
白茶さんは No.249567「Re:タイムカード計算」で書きました。
>はいはい。
>
>>7時間30分か7.5時間という表示にはできないでしょうか?
>
>E2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-D2)/0.000694444444444444/30,0)*30
>の最後、"*30"を"/2"に訂正
>E2="7.0"
>になると思います。
>
>一まとめの式にしましょうか。
>A2が日付
>B2が出勤時間
>C2が退勤時間
>D2=ROUNDDOWN((C2-(IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>

ありがとうございます。
だんだんと形になってきました。

関数もきちんと計算され、表示されました、
が、休みの日(出勤・退勤が入力されていない日が
-8.5と出てしまって、合計時間がマイナスになってしまいます。
これは解決する方法があるのでしょうか?


▲このページのトップに戻る
249578Re:タイムカード計算白茶 2005/03/29-14:45
記事番号249573へのコメント
休みの日(出勤・退勤が入力されていない日が
>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>これは解決する方法があるのでしょうか?
>

IF関数で回避します。
B2の出勤時間に対しての条件式
IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)

IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
に訂正。

式を1本にすると
=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2

▲このページのトップに戻る
249583Re:タイムカード計算秘密 2005/03/29-14:59
記事番号249578へのコメント
白茶さんは No.249578「Re:タイムカード計算」で書きました。
>休みの日(出勤・退勤が入力されていない日が
>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>これは解決する方法があるのでしょうか?
>>
>
>IF関数で回避します。
>B2の出勤時間に対しての条件式
>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>を
>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>に訂正。
>
>式を1本にすると
>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2


すごいです・・・・・。
もう目が点になりそうな関数ですね。
でも、でも、すべて計算ができているんですね。
ほんとにすごい・・・。


この際だから、全部聞いてしまっていいですか?
残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
計算できません・・・?

あと、深夜残業の算出もしたいのですが、
IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
この関数では、時間がでてこないのです・・・?

もうひとつは、休日に出勤したときの
カウントの方法があれば教えてください。

ややこしいことばかり言って申し訳ありませんが、
よろしくお願いします。


▲このページのトップに戻る
249597Re:タイムカード計算秘密 2005/03/29-15:50
記事番号249583へのコメント
秘密さんは No.249583「Re:タイムカード計算」で書きました。
>白茶さんは No.249578「Re:タイムカード計算」で書きました。
>>休みの日(出勤・退勤が入力されていない日が
>>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>>これは解決する方法があるのでしょうか?
>>>
>>
>>IF関数で回避します。
>>B2の出勤時間に対しての条件式
>>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>>を
>>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>>に訂正。
>>
>>式を1本にすると
>>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>
>
>すごいです・・・・・。
>もう目が点になりそうな関数ですね。
>でも、でも、すべて計算ができているんですね。
>ほんとにすごい・・・。
>
>
>この際だから、全部聞いてしまっていいですか?
>残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
>計算できません・・・?
>
>あと、深夜残業の算出もしたいのですが、
>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>この関数では、時間がでてこないのです・・・?
>
>もうひとつは、休日に出勤したときの
>カウントの方法があれば教えてください。
>
>ややこしいことばかり言って申し訳ありませんが、
>よろしくお願いします。
>
>すごい関数があることに、おどろいて、内容を書いていませんでした。
残業とは、17:00〜22:00の間のことをいいます。

深夜残業とは、22:00〜翌6:00までのことをいいます。

どうぞよろしくお願いします。


▲このページのトップに戻る
249616Re:タイムカード計算秘密 2005/03/29-16:57
記事番号249597へのコメント
秘密さんは No.249597「Re:タイムカード計算」で書きました。
>秘密さんは No.249583「Re:タイムカード計算」で書きました。
>>白茶さんは No.249578「Re:タイムカード計算」で書きました。
>>>休みの日(出勤・退勤が入力されていない日が
>>>>-8.5と出てしまって、合計時間がマイナスになってしまいます。
>>>>これは解決する方法があるのでしょうか?
>>>>
>>>
>>>IF関数で回避します。
>>>B2の出勤時間に対しての条件式
>>>IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)
>>>を
>>>IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
>>>に訂正。
>>>
>>>式を1本にすると
>>>=ROUNDDOWN((C2-(IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2)))-(IF(AND(B2<TIMEVALUE("12:00"),C2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(B2<TIMEVALUE("10:00"),C2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(B2<TIMEVALUE("15:00"),C2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)))/0.000694444444444444/30,0)/2
>>
>>
>>すごいです・・・・・。
>>もう目が点になりそうな関数ですね。
>>でも、でも、すべて計算ができているんですね。
>>ほんとにすごい・・・。
>>
>>
>>この際だから、全部聞いてしまっていいですか?
>>残業を求めるのに、この関数を入れていたのですが、(人に教わって・・・)
>>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>>パートさんなどで、17:00前に帰ってしまう人の、計算が#VALUEになって
>>計算できません・・・?
>>
>>あと、深夜残業の算出もしたいのですが、
>>IF(COUNT(B6:C6)=2,IF(C6>TIMEVALUE("22:00"),TIMEVALUE("5:00"),FLOOR(--(TEXT(C6-"17:00","h:mm")),"0:30")),"")
>>この関数では、時間がでてこないのです・・・?
>>
>>もうひとつは、休日に出勤したときの
>>カウントの方法があれば教えてください。
>>
>>ややこしいことばかり言って申し訳ありませんが、
>>よろしくお願いします。
>>
>>すごい関数があることに、おどろいて、内容を書いていませんでした。
>残業とは、17:00〜22:00の間のことをいいます。
>
>深夜残業とは、22:00〜翌6:00までのことをいいます。
>
>どうぞよろしくお願いします。
>
>白茶さま、どうかわかる範囲でいいので教えてください。
このまま行き詰ってしまって、先に動けない状態になってしまっています。
今日は5時で終業なので、また、明日連絡まっています。
お願いします。m(__)m


▲このページのトップに戻る
249674まだ済んでなかったのね白茶 2005/03/29-20:51
記事番号249616へのコメント
ごめんなさいね。
私も常にパソコンの前に居る訳じゃないもので。

ええっと・・・

最初っから整理し直しましょうか。
A2に日付
B2に出勤時間
C2に退勤時間
が入力されてあるとして、

最終的には
D2に休憩時間を引いた終日の勤務時間(残業も含む)
E2に残業した時間
F2に深夜残業した時間
を算出することとします。

下ごしらえとして、
G2〜J2を集計エリアとして使います。

G2で出勤時間を補正
G2=IF(B2="",0,IF(B2<TIMEVALUE("8:30"),TIMEVALUE("8:30"),B2))
(8:30以前の出勤は8:30にする。且つ空白の場合は0を返す)

H2で退勤時間を補正
H2=IF(C2="",0,IF(C2<TIMEVALUE("8:30"),C2+1,C2))
(24:00以降の時刻には24時間プラス。且つ空白の場合は0を返す)

I2で、G2とH2から休憩時間を算出
I2=IF(AND(G2<TIMEVALUE("12:00"),H2>TIMEVALUE("13:00")),TIMEVALUE("1:00"),0)+IF(AND(G2<TIMEVALUE("10:00"),H2>TIMEVALUE("10:10")),TIMEVALUE("0:10"),0)+IF(AND(G2<TIMEVALUE("15:00"),H2>TIMEVALUE("15:10")),TIMEVALUE("0:10"),0)

J2で休憩時間を引いた終日の勤務時間(残業も含む)を算出
J2=IF(G2*H2=0,0,H2-G2-I2)
(且つB2、C2どちらかが空白の場合は0を返す)

で、仕上げに、

D2=ROUNDDOWN(J2/0.000694444444444444/30,0)/2

E2=ROUNDDOWN(IF(G2<=TIMEVALUE("17:00"),IF(H2<=TIMEVALUE("17:00"),0,IF(H2<=TIMEVALUE("22:00"),H2-TIMEVALUE("17:00"),TIMEVALUE("5:00"))),IF(G2<=TIMEVALUE("22:00"),IF(H2<=TIMEVALUE("17:00"),H2-G2,TIMEVALUE("22:00")-G2),0))/0.000694444444444444/30,0)/2

F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),0)/0.000694444444444444/30,0)/2

目一杯広げちゃいました。
セル参照で式を組み立てた方が説明し易いので。

式をつなげて列の消費を抑えたいのならお好きにどうぞ。
あえてオススメはしません。
同じ式をあちこちで何度も入力しないといけないし、
この方が仕組みが見えて分り易いでしょ。

▲このページのトップに戻る
249835ごめん訂正白茶 2005/03/30-08:54
記事番号249674へのコメント
ミス発見

深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。

F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2

に訂正します。

▲このページのトップに戻る
249875Re:ごめん訂正秘密 2005/03/30-11:35
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。

本当にややこしい問題を解決してくださって、
ありがとうございました。m(__)m
仕事を頼まれた時はどうなることかと
思いましたが、白茶さんのおかげで
なんとか乗り越えれそうです。
本当にありがとうございました。
がんばります!!


▲このページのトップに戻る
249878Re:ごめん訂正秘密 2005/03/30-11:39
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。

ややこしい問題を解決してくださって、
ありがとうございました。m(__)m
仕事を頼まれたときは、どうなることかと
思っていましたが、白茶さんのおかげで
何とか乗り越えれそうです。
本当にありがとうございました。
がんばります!!


▲このページのトップに戻る
250444Re:ごめん訂正(タイムカード計算について)秘密 2005/04/01-15:25
記事番号249835へのコメント
白茶さんは No.249835「ごめん訂正」で書きました。
>ミス発見
>
>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>
>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>
>に訂正します。



白茶さんへ
またまた質問が出てきてしまいました。

今月の休み 3月21日(Mon) 4月2日(Sat) 4月9日(Sat) 4月16日(Sat)

       時間数   深夜     G〜Jまでは関数が入っています。
日付   出勤  退出  小計  残業(22:00〜6:00)
3月21日(Mon)       0.0 0.0 0.0
3月22日(Tue) 8:15 17:05 7.0 0.0 0.0
3月23日(Wed) 0.0 0.0 0.0
3月24日(Thu) 0.0 0.0 0.0
3月25日(Fri) 0.0 0.0 0.0
3月26日(Sat) 0.0 0.0 0.0
3月27日(Sun) 0.0 0.0 0.0
3月28日(Mon) 0.0 0.0 0.0

今こんな感じで入力をしています・・・
前に教えていただいた関数はバッチリ計算できています。
で、問題ですが、日曜日にあたる日を条件付書式設定で、
赤文字にしています。その赤文字の部分の小計だけを計算して、
合計時間を出すことは可能ですか?
それと、日曜日以外の休日(今月の休み(1ヶ月4〜5日位))の
文字に色をつける設定をしてその色に対しての部分だけを
計算することは可能ですか?
あと色別に日数が集計できればありがたいのですが・・・
またまた、またまたですが、よろしくお願いいたします。




▲このページのトップに戻る
250450Re:ごめん訂正(タイムカード計算について)秘密 2005/04/01-15:39
記事番号250444へのコメント
秘密さんは No.250444「Re:ごめん訂正(タイムカード計算について)」で書きました。
>白茶さんは No.249835「ごめん訂正」で書きました。
>>ミス発見
>>
>>深夜残業の式(F列ね)が夜勤の場合に対応していなかったです。
>>
>>F2=ROUNDDOWN(IF(G2<=TIMEVALUE("22:00"),IF(H2>TIMEVALUE("22:00"),H2-TIMEVALUE("22:00"),0),IF(H2>=TIMEVALUE("22:00"),H2-G2,0))/0.000694444444444444/30,0)/2
>>
>>に訂正します。
>
>
>
>白茶さんへ
>またまた質問が出てきてしまいました。
>
>今月の休み 3月21日(Mon) 4月2日(Sat) 4月9日(Sat) 4月16日(Sat)
>
>        時間数   深夜     G〜Jまでは関数が入っています。
>日付   出勤  退出  小計  残業(22:00〜6:00)
>3月21日(Mon)         0.0 0.0 0.0
>3月22日(Tue) 8:15 17:05 7.0 0.0 0.0
>3月23日(Wed)         0.0 0.0 0.0
>3月24日(Thu)         0.0 0.0 0.0
>3月25日(Fri)         0.0 0.0 0.0
>3月26日(Sat)         0.0 0.0 0.0
>3月27日(Sun)         0.0 0.0 0.0
>3月28日(Mon)         0.0 0.0 0.0
>
>今こんな感じで入力をしています・・・
>前に教えていただいた関数はバッチリ計算できています。
>で、問題ですが、日曜日にあたる日を条件付書式設定で、
>赤文字にしています。その赤文字の部分の小計だけを計算して、
>合計時間を出すことは可能ですか?
>それと、日曜日以外の休日(今月の休み(1ヶ月4〜5日位))の
>文字に色をつける設定をしてその色に対しての部分だけを
>計算することは可能ですか?
>あと色別に日数が集計できればありがたいのですが・・・
>またまた、またまたですが、よろしくお願いいたします。
>
>
よく考えれば、もし、色別で集計が可能であれば、4日分だけ
書式で色をつければいいんですよね・・・
でも、色でできないときはどうすれば・・・
やっぱり、愛の手を・・・・・


▲このページのトップに戻る
249621Re:タイムカード計算やまと 2005/03/29-17:12
記事番号249597へのコメント
>>この際だから、全部聞いてしまっていいですか?

おしえて君は嫌われますよ?
すこしは、自分で勉強しないと・・・。

こちらを参考にして下さい。

http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20050324174019]]