プロが教えるわが家の防犯対策術!

Excel 関数 時間の計算

シフト表のようなものを作っています。

出勤時間と退勤時間をそれぞれセルに入力するのですが、
退勤時間が日付を超えたときにわかるようにしたいと思っています。

本来であれば、退勤時間が出勤時間より小さい時に"日またぎ"と返す…ような式を入れれば、
いいかと思うのですが、
入力する人が何人かいて、人によっては
「24:30」と入れたり、「0:30」といれたりする可能性があります。

その場合でも
A B C
1 日付   出勤時間 退勤時間
2 2022/4/1 17:00   0:30

D2セルにIF(B2>C2,"日またぎ","")と入れたかったのですが、
24:30と入ってしまっているときに対応できるような式があれば
教えてください。ORとかでしょうか…?

ちなみに入力する人は何人かいて、
Excelの知識もまちまちなのでわざわざ書式を[h]:mmに変えてくれたりします…涙
そういうのに対応出来たら嬉しいです。

何卒宜しくお願いいたします。

A 回答 (2件)

> 日付を超えたときにわかるように


時間を示す数値(シリアル値)は、
整数部分が年月日(経過日数)、小数部分が時分秒を表しています。
なのので、小数部分の大小比較で、日付を超えたか否か判断できます。

> 「24:30」と入れたり、「0:30」といれたりする可能性があります。
これは一日の差を生じるので、入力条件を徹底するしかありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
夜勤もある会社なので今回は当てはまらず…。
しかし今後何かに使えそうなのでとても勉強になりました!
ありがとうございました!!

お礼日時:2022/04/20 17:55

会社の時間計算の規則はどうなっていますか?


つまり「今日」の終了点はどこですか?

例えば、「今日」の区切り(エンド)は5:59まで(<6:00)という規則などないでしょうか? ない場合はとりあえず「この時間に出勤することはあり得ない」と感覚的に思う時間に設定しておくとよいと思います。


もしそれならば、退勤時刻、厳密には退勤時刻の時間(h)の値だけで簡単に判別できます。hだけの取得はHour関数でよいので(25時=1が返ります)

仮に区切りが6:00までの場合、

=IF(Hour(C2)<6 ,"日またぎ","")でよいかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!やはりできないのですね…。少しめんどくさいですが、もう一つのシートをつくりリンクさせて、書式をh:mmにしたものを作ったことで解決しそうです!
できるかできないかがわかって助かりました!ありがとうございます(^^)

お礼日時:2022/04/20 17:54

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