- ベストアンサー
EXCEL 時間計算について
出勤から退勤までの時間を計算したいです。しかし、お昼休憩の1時間は省きます。また、算出した数字は、15分単位で表示し、14分は00分で表示します。C列にいれる式はどうなりますでしょうか? A列 B列 C列 (出勤)(退勤)(勤務時間) 8:45 16:32 7:45
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#1 間違え =FLOOR(B1-A1,"0:15")-"1:00" でつ
その他の回答 (6)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
例からお昼休みを考慮しないとして A2:出勤時間 B2:退勤時間 =TIME(HOUR(B2-A2),INT(MINUTE(B2-A2)/15)*15,0) 表示書式が変わってしまう場合は、書式のコピー貼り付けして下さい。
- Wendy02
- ベストアンサー率57% (3570/6232)
こういうのは、ひじょうに難しいですね。 =FLOOR(MAX(B1,"13:00")*1440-"13:00"*1440+MAX(MIN("12:00",B1)*1440-MAX("8:45",A1)*1440,0),15)/1440 朝の開始時間が、8:45 だとした場合の計算です。 8:30 だったら、8:45 を直してください。お昼は、12:00~13:00としました。 なお、早朝労働や夜勤・残業計算などは、もうすこし複雑です。 または、昼食フリータイム制なら、 =FLOOR(B1*1440-A1*1440-60,15)/1440 時間は、引き算,割り算, FLOOR, MOD など減算に関わる計算、また、差分を増加率としてコピーするフィル・ドラッグが出来ません。 両方とも、浮動小数点丸め誤差が生じる可能性があるので、時間をそのまま引数にして、計算せずに、一旦、整数に戻すか、テキスト化してから、もう一度、数値にしてあげなくてはなりませんね。 こういう点が、Excelの問題点かな?
- goomania
- ベストアンサー率56% (84/149)
勤務状況管理においては#1さんのFLOOR関数を使用するのが 一般的なようです。 http://www.relief.jp/itnote/archives/001084.php また、#4さんに補足しておきます。 EXCELでは時刻を表すのにシリアル値を用いて計算しています。 時刻を表すシリアル値は24時間を1とし、昼の12:00は半日 つまり0.5というシリアル値になります。 ご質問者の例で15分単位で考えるということは1日24時間を 96分割・・・・(60分÷15分)×24=96 して考えることになります。そこで#4さんの回答のような 数式が登場するわけです。 #4さんのの数式はA列とB列が逆になっているようです ので、昼食時間の1時間を考慮すると =ROUNDDOWN((B1-A1-"1:00")*96,0)/96 となると思います。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/hour/hour.htm
- koganeton
- ベストアンサー率29% (30/101)
ちょっと強引ですけど =ROUNDDOWN((A1-B1)*96,0)/96 すべてのセルの書式は、時間表記にして下さい。
- shinkun0114
- ベストアンサー率44% (1553/3474)
お昼休憩を勤務時間から除くと、6:45になると思うのですが・・ とりあえず、こんな式でどうでしょう? =INT((B1-A1-"1:00")*24*4)/24/4 -"1:00" はお昼の休憩時間を引いています。 また時刻は、Excelでは24時間を1.0と考えているので、 24*4倍して小数を切り捨てれば、15分単位に丸まります。
- harukabcde
- ベストアンサー率15% (94/610)
1行目に入力されているとして C1に =FLOOR(B15-A15,"0:15")-"1:00" と入力。 6:45 になります。 休憩1時間を考慮しないなら、 後半の -"1:00" を削除。 もし、 -"1:00" を入れる入れないを自動判定したいなら 条件をおっしゃってください