アプリ版:「スタンプのみでお礼する」機能のリリースについて

私の会社では大変複雑な勤務形態となっています。
給与を計算するためにエクセルを使用していますが、
残業した時間については、手入力となっています。
下の例のように、開始時間(24時間表示)と終了時間(24時間表示)
を入力すると自動的に勤務時間(10進法)と深夜時間(10進法)が
自動で表示されるようにしたいのですが、
いろいろやってみましたができませんよい方法を教えてください。
  開始時間  18:00
  終了時間  22:30
  残業時間  04.50
  深夜時間  00.50
00:00を超えた場合でも計算できる方法はありますか。

A 回答 (4件)

NO2,NO3です。


もっと簡単な式がありましたので追加情報です。
=HOUR(B2-B1+(B1>B2))+MINUTE(B2-B1+(B1>B2))/60

条件が真で1、偽の時は0とする場合数式で使う為には
(B1>B2)*1 または (B1>B2)/1 とする必要があり、関数の
引数で使う場合は *1、/1 は不要(付けても可)になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
うまくいきました。

深夜時間の計算方法でよいものがあれば、
助言お願いします。

お礼日時:2009/08/20 11:17

NO2です。


済みません見落としがありました。
>=(HOUR(B2-B1+"24:00")+MINUTE(B2-B1)/60)*(B1>B2)
> +(HOUR(B2-B1)+MINUTE(B2-B1)/60)*(B1<=B2)
の部分
=(HOUR(B2-B1+"24:00")+MINUTE(B2-B1+"24:00")/60)*(B1>B2)
 +(HOUR(B2-B1)+MINUTE(B2-B1)/60)*(B1<=B2)
として下さい。
IF文の方も同様です。

また、+"24:00"の部分を+1と変えても同じ結果が出ます。
解りやすさでは+"24:00"、数式の簡潔さでは+1といった所。

ご参考まで。
    • good
    • 0

NO1の方の数式をお借りして零時を超えたときの対応



=(HOUR(B2-B1+"24:00")+MINUTE(B2-B1)/60)*(B1>B2)
 +(HOUR(B2-B1)+MINUTE(B2-B1)/60)*(B1<=B2)

*(B1>B2)と*(B1<=B2)は条件が真で1、偽の時は0として
作用しますのでこのような方法でif文の代用ができます。

=if(B1>B2,HOUR(B2-B1+"24:00")+MINUTE(B2-B1)/60,
HOUR(B2-B1)+MINUTE(B2-B1)/60)
どちらでも全く同じ結果となります。

深夜の計算はこれを参考に考えて見て下さい。
深夜の終了時間および休憩時間を考慮すると一発の数式では
困難かと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
数式の意味するところは、分かるのですが、
エラーが出て、正しく表示されません。
自分でもいろいろやってみようと思いますが、
お気づきのことがあればお教えください。

お礼日時:2009/08/19 23:39

B1に18:00


B2に22:30
とし
B3に=HOUR(B2-B1)+(MINUTE(B2-B1)/60)
B4に=HOUR(B2-TIME(22,0,0))+(MINUTE(B2-TIME(22,0,0))/60)
B3セルとB4セルの書式設定で小数点二桁迄表示するようにします。
HOURはシリアル値から時間を取ってくる関数です。
後ろの/60は時間は60進数なのでこれで10進数にしています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。
しかし、00:00を超えたような時刻を入力するとエラーになります。
よい方法はないでしょうか。

お礼日時:2009/08/19 20:34

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