• ベストアンサー

時間の計算2

時間の計算ですが 出社時刻が12時以前に来た場合はお昼を1時間取って欲しいので 就労時間から1時間マイナスしたいのです。 同じく夜20時以降に居る場合は夜食で30分マイナスしたいのです。 このような 計算式が分りましたら教えてください お願いします

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

  • ベストアンサー
回答No.2

Excelと仮定し、A1に出社時刻、B1に退社時刻が入っているとします。 また、 12時から13時の間の出社は13時からの 19時半から20時の間の退社は19時半までの 時間だけを計算するようにしました。 =IF(B1>19.5/24,MAX(19.5/24,B1-0.5/24),B1)-IF(A1>13/24,A1,MIN(A1+1/24,13/24))

shinarin
質問者

お礼

ありがとうございます ちゃんとこの式で出来ました。 大変助かりました 又何か有りましたらよろしくお願いします

その他の回答 (2)

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.3

A1に出社時刻、B1に退社時刻が入っているとして、 =IF(AND(A1<"12:00"/1, B1>"20:00"/1),B1-A1-"1:30"/1,IF(A1<"12:00"/1,B1-A1-"1:00"/1,IF(B1>"20:00"/1,B1-A1-"0:30"/1,B1-A1))) セルの表示形式は、「時刻」にします。 Excelでの計算に参考になりそうなサイトを挙げておきます(参考URL)

参考URL:
http://pcgaz.nikkeibp.co.jp/pg/pcgaz/excel/index.shtml
shinarin
質問者

お礼

ありがとうございます 大変参考になりました 早速URLもチェックしてみます  エクセルって凄いですねー

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 まず、どんなアプリケーションで作ろうとしているのかを教えて下さい。ExcelとかAccessとか。 さらにそこで、どういう状況でその式を使用するのかもわからないと・・・ これだと一般的な回答になってしまいますが、一応。 出社時刻をA、退社時刻をBとすると、 A<12:00の場合は   就労時間a = B-A-1時間 A>=12:00の場合は   就労時間a = B-A さらに、 B>20:00の場合は   就労時間 = 就労時間a-0.5時間 B<=20:00の場合は   就労時間 = 就労時間a この程度しか書けません。 式の表し方や時間を計算に組み込む方法は、使用するアプリ(言語)で変わります。 では。

shinarin
質問者

補足

はい ありがとうございます エクセルで計算しようと思っています。 結局 したいことは従業員のタイムカードの整理なのですが タイムカードがCSVデータで来るのですがフレックスがあるため一概に就労時間8時間以上で1時間マイナスとは出来ないのです。従業員が始業した時間によりお昼が決まり就業時間が8時を超えると夜食時間30分マイナスすることとなっています。 maruru01さんが書いてくださった方程式がまさにその通りです。 これをエクセルで使えるものが知りたいのです。 説明不足ですみませんがよろしくお願いします