架空の映画のネタバレレビュー

教えてください。
10時以降の出勤、16時前の退勤をした場合に"○"を表示させる方法が分かりません。ちなみに、このようなシートを作成中です。
C    D    E    F     G    H    I
出勤 退勤 計算用 計算用  休憩   計  計
11:16 20:29 11:30 20:00   1:00  7:30  7.5

 J   K    L    M
休出 深夜 休暇 ペナルティ
 7.0   0    

C=出勤   D=退勤   E=CをCEILINGしたもの
F=DをFLOORしたもの   G=休憩1:00が入力されている
H=F-E-Gの式      I=H*24の式
J=手入力         K=22時以降の深夜残業を計算する式
L=有給等手入力      M=????

【このM列に入る式がわかりません】
先にも言いました、【10時以降の出勤または16時前の退勤】が該当したら"○"と表示させたいのですが、どなたか教えてください!!
よろしくお願い致します。

A 回答 (7件)

No.3,6です。



=IF(AND(ISBLANK(C2)=FALSE,ISBLANK(D2)=FALSE),FLOOR(IF(D2>="13:00"*1,"13:00",IF(D2<="12:00"*1,"12:00",D2))-IF(C2<="12:00"*1,"12:00",IF(C2>="13:00"*1,"13:00",C2)),"0:30"),"")

これでいかがでしょうか。
出勤時間と退勤時間から、12:00~13:00の間の
何分間いたかを計算して、30分単位で切り捨てる
    • good
    • 0
この回答へのお礼

ほんとーーーーーに助かりました!!!!
長くお付き合いいただいて、感激しております(涙、涙です
お蔭様で完了いたしました。
これで、勤務表の入力が楽になりました。

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

お礼日時:2007/08/24 17:34

No.3です。

補足有難うございます。

~11:00 休憩1時間
11:01~12:00 休憩30分
12:01~ 休憩なし
ということですね。

では、12:00までに早退した場合は休憩なしということでいいですね?

=IF(AND(ISBLANK(C2)=FALSE,ISBLANK(D2)=FALSE),IF(D2<="12:00"*1,"0:00",IF(C2>"12:00"*1,"0:00",IF(C2>"11:00"*1,"0:30","1:00"))),"")

これでいかがでしょうか。
※この式だと昼休み中(12:01~13:00)に早退した人は、
13:00退勤にしないと計算が合わなくなりますのでご注意下さい。

この回答への補足

すみません。思い切り勘違いしていました。
本来の通常の休憩時間が12:00~13:00ですので、
12:00時出勤も1:00の休憩は取れることになります。
12:01~出勤者が00:30の休憩になります。

まとめると、12:00までの出勤者→1:00休憩
      12:01~12:30までの出勤者→00:30休憩
      12:31~の出勤者→休憩なし
お手数ですがご回答お願いできますか???

補足日時:2007/08/24 09:31
    • good
    • 0

書いてるうちに補足がきてたw


それだとやっぱり計算値使ったほうがいいのかな?
これでどうでしょう。

=IF(AND(ISBLANK(E2)=FALSE),IF(E2>"12:00"*1,"0",IF(E2>"11:00"*1,"0:30","1:00")),"")
    • good
    • 0
この回答へのお礼

ありがとうございました!
感激です。。。(泣)
助かりました。できました。できました!

お礼日時:2007/08/23 17:55

>出勤時間が13:00以降なら"0"表示(ノーカウント)にする方法は、13:00前出勤なら”1:00”とG列(休憩欄)に表示させたいのですが、単純に


=IF(C2>="13:00"*1,"0")ではだめですよね?

ああ、そういうことでしたか。
でしたらNo3の方の回答もあわせると、

=IF(AND(ISBLANK(C2)=FALSE),IF(C2>="13:00"*1,"0","1:00"),"")

みたいな感じになります。
でもこの場合計算値使ったほうがいいのかな?(ちょうどはOKにして)
No3の方が仰られているように12:30が微妙なのもありますね。
30分損しちゃいます。
    • good
    • 0

ブランクは0(この場合は0:00)として扱われます。


つまりD2<=16:00の条件にひっかかるわけです。
これを回避するにはもう一度IFを使って
ISBLANK関数を使って場合分けをすればいいです。

=IF(AND(ISBLANK(C2)=FALSE,ISBLANK(D2)=FALSE),IF(OR(C2>="10:00"*1,D2<="16:00"*1),"○",""),"")

こんな感じですね。
10:00ちょうどの出勤、16:00ちょうどの退勤を
遅刻・早退扱いにしないのであれば[>=]は[>]に変えてください。

出勤が13:00以降なら休憩時間0表示、の方は
恐らく昼休みが12:00から1時間だと推察しますが
13:00より前に出勤した人には無条件で1時間つくのですか?
例えば12:30に出勤してきた場合どういう扱いになりますか?
補足いただけませんか。

この回答への補足

お手間取らせましてすみません。
ご指摘の通り、昼休憩は12:00以降出勤者にはつきません。
12:00~13:00までが休憩としてみなされます。
1:00休憩がつく人は11:00までの出勤者までになります。
11:30ジャスト出勤者は00:30がつくことになります。
以上を含めましてご指導おねがいできますでしょうか?
※エクセルで不可能であれば教えてください。

補足日時:2007/08/23 17:21
    • good
    • 0

>出勤時間が13:00以降なら"0"表示(ノーカウント)にする方法



もう一個IF関数使えばいけませんかね?
=IF(OR(C2>="10:00"*1,D2<="16:00"*1),IF(C2>="13:00"*1,"0","○"),"")

ただ、退勤時間が日をまたぐ時は注意したほうがいいかと思います。
(午前1時退勤の場合25:00ならOKだが1:00と入れるとD3<="16:00"*1の条件に含まれてしまう)

この回答への補足

=IF(OR(C2>="10:00"*1,D2<="16:00"*1),"○","")
重ね重ねで申し訳ございませんが、最初の質問事項ですが、
上記の式をフィルハンドルでほかの
セルに入れてみたところ、休日などで出勤・退勤セルがブランクのところにも"○"と表示されてしまいます。
どうしてでしょうか?

補足日時:2007/08/23 14:04
    • good
    • 0
この回答へのお礼

すいません。。。
説明不足でした。

>出勤時間が13:00以降なら"0"表示(ノーカウント)にする方法
は、13:00前出勤なら”1:00”とG列(休憩欄)に表示させたいのですが、単純に
=IF(C2>="13:00"*1,"0")ではだめですよね?

お礼日時:2007/08/23 13:48

一例ですが次の数式をお試し下さい。


=IF(OR(C2>="10:00"*1,D2<="16:00"*1),"○","")
    • good
    • 0
この回答へのお礼

やってみました!
できました!!ありがとうございます!
できましたら、もう一点教えていただけませんでしょうか?
出勤時間が13:00以降なら"0"表示(ノーカウント)にする方法
が分からないのですが・・・・。

お礼日時:2007/08/23 12:57

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報