• ベストアンサー

EXCELで関数を使って残業時間の計算がしたいのですが・・

EXCELを使って残業時間の計算したいと思っているのですが、関数にあまり詳しくないのでアドバイスお願い致します。 (A1)出社、(B1)退社時間は30分単位で自分で入力します。 D1に10時間以降残業にし、残業に満たない場合は未表示で30分単位は0.5と表示させようと思っています。 今現在 A1=出勤時間 8:00 B1=退社時間 20:00 C1=労働時間 12:00   関数  =IF(A1="","",B1-A1) D1=残業時間 =IF(C1="","",IF(C1>"10:00",(C1-"10:00")*24,"")) と、いう感じにやってみましたが、D1の計算がうまくいきません。よくわからないのですが、シリアル値というのが関係してるのでしょうか?宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.2

[時間(hour)] / 24 で シリアル値になります [D1] =IF(C1="","",IF(C1>10/24,(C1-10/24),"")) これでで、10時間オーバー分の時間のシリアル値が出ます。 時間表示にすると「xx:xx」形式で表示されます。 =IF(C2="","",IF(C2>10/24,FLOOR((C2-10/24),0.5/24),"")) これに、このようにFLOOR関数を噛ませると30分刻み(端数切り捨て)になります。 30分を0.5で表す、つまり0.5時間刻み表示にするならば =IF(C2="","",IF(C2>10/24,FLOOR((C2-10/24),0.5/24)*24,"")) 表示形式は数値にしてください。

ran37
質問者

お礼

細かく説明していただきありがとうございました! とても参考になりました(^^

その他の回答 (2)

  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.3

No.2で回答したhiruminです。 途中からセルの行が変わってました。 「C2」を「C1」に置き換えて下さい。

回答No.1

=IF(C1="","",IF(C1>"10:00"*1,(C1-"10:00")*24,""))

ran37
質問者

お礼

ありがとうございました! できれば*1の意味をご教授していただきたかったのですが(^^; 自分なりに勉強してみます。