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

勤務時間が8時間を越えると、1時間マイナスするという関数を作りたいのですがうまくいきません。
開始 終了 勤務時間
20:00 05:00 8:00

としたいと思っています。

どういう関数を使えば良いのでしょうか。

A 回答 (4件)

20:00~29:00(翌日05:00)ということでしょうか?


B2が29:00と入力なら
=B2-A2-((B2-A2)>1/3)/24
解説:
(B2-A2)>1/3の部分が終了-開始と1/3日(24時間/3で8時間)の比較で
8時間を越えると1(TRUE)、8時間以内なら0(FALSE)となります。
時間からすると1は1日(24時間)を表すので24で割ってます。

B2が05:00と入力なら
=B2-A2+(B2<A2)-((B2-A2+(B2<A2))>1/3)/24
解説:
追加した(B2<A2)が時刻が逆転の判定で1日(24時間)を追加しています。

※29:00と表示したい場合は、セルの書式設定の表示形式をユーザー定義にして
[hh]:mm
としてください。24時間以上の時刻が表示できます。
    • good
    • 1
この回答へのお礼

=B2-A2+(B2<A2)-((B2-A2+(B2<A2))>1/3)/24でできました。

時間計算はどうも苦手で・・・。

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

お礼日時:2006/11/14 11:53

開始時刻がA1、終了時刻がB1のとき


=IF(B1-A1<0,IF(B1+1-A1>=8/24,B1+1-A1-1/24,B1+1-A1),IF(B1-A1>=8,B1-A1-1/24,B1-A1))
でどうでしょうか。

補足説明
1)開始時刻>終了時刻の場合は日またがりと判断して終了時刻に1を加算しています。1はEXCEL内部では1日に相当しますので、質問例では翌日の朝5時を意味するようになります
2)勤務時間が8時間以上の時は勤務時間から1時間(EXCEL内部では1/24)を減算しています
    • good
    • 0
この回答へのお礼

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

計算式はNo.1さんのでうまくいきましたが、皆さんの計算式も後でゆっくり勉強させていただきます。

色々な計算方法があるのがわかりとても勉強になりました。
ありがとうございました。

お礼日時:2006/11/14 11:58

=IF(E4>=1/3,E4-1/24,E4)


(E4に勤務時間8:00が入っているものとします。)
Excelでは時間の場合、1=1日=24時間ですので、
1/3が8時間
1/24が1時間です。
    • good
    • 1
この回答へのお礼

計算式はNo.1さんのでうまくいきました。

>1/3が8時間
>1/24が1時間です。

そうなんですか。とても勉強になりました。
ありがとうございました。

お礼日時:2006/11/14 11:57

開始時間をA1終了時間をB1に入れます。


ただし、例示されたような日付をまたぐ場合は、2006/11/14 20:00や2006/11/15 5:00というように日付も入れないと計算できないと思います。

エクセルでは1時間を一日の1/24、8時間なら8/24⇒1/3というように認識します。
式は
=IF(B1-A1>1/3,B1-A1-1/24,B1-A1)

式を入れたセルの書式は「時刻」にしてください。
    • good
    • 0
この回答へのお礼

時間の所には時間しか入ってなく、それが300行くらいあったので、今回はNo.1の方のでやりました。

今後の参考にさせていただきます。
ありがとうございました。

お礼日時:2006/11/14 11:56

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

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


このQ&Aを見た人がよく見るQ&A