解決済みの質問
勤務表管理のため、表を作成しています。
通常勤務は9:00-17:30で残業時間が15分の休憩を挟んだ後17:45-21:30までです(その後深夜残業がありますがここでは割愛します)
C22に仕事開始時間、D22に仕事終了時間を入れています。
例えば9:00-22:00で仕事したとします。そして、あるセルに、残業時間開始時間、終了時間を表示させたいのですが、残業時間開始を
=IF(D22> "17:30","17:45","")
と入れたのですが空白で返されてしまいます。">"を"<"にするとなぜか17:45が表示されます。
終了時間は、IF(D22>="21:30",MIN(D22,"21:30"),D22)
だと空白で返されます。逆にするとMIN(D22,"21:30")が返されて例えばD22に17:30とか入れると21:30と返されてしまいます。
時間計算の場合、何か特殊な設定をしないと逆になってしまうのでしょうか?
投稿日時 - 2008-10-10 16:36:38
> =IF(D22> "17:30","17:45","")
⇒D22は数値、時刻は文字列だから数値<文字列でFALSEになります。
よって、時刻の文字列をTIMEVALUE("17:45")、又は"17:45"*1として下さい。
一例.=IF(D22>"17:30"*1,"17:45"*1,"") セルの書式設定で表示形式を時刻にして下さい。
因みに"17:30"は"17:45"では無いでしょうか。
投稿日時 - 2008-10-10 17:02:13
お礼
ありがとうございます。
*1とするというのを始めて知りました。
今試して見ましたが、おかげさまで出来そうです。
投稿日時 - 2008-10-10 17:59:16
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
=IF(D22> "17:30","17:45","")は
=IF(D22> "17:30"*1,"17:45"*1,"")
で試してみてください。
=IF(D22>="21:30",MIN(D22,"21:30"),D22)
の意味もよくわからないのですが
D22が21:30より大きければD22と21:30の小さいほう?
MIN(D22,"21:30")は常に21:30?
=MIN(D22,"21:30"*1)
或いは
=IF(D22>="21:30","21:30"*1,D22)
と同じでは。
投稿日時 - 2008-10-10 17:25:56
お礼
ありがとうございます。
=IF(D22>="21:30",MIN(D22,"21:30"),D22)
については、深夜残業の関係があり、こうしてみたのですが、おっしゃる通り、=IF(D22>="21:30","21:30"*1,D22)というのに私も先ほど気づきました。
参考にさせていただきます。
投稿日時 - 2008-10-10 18:01:29