- ベストアンサー
Excelで就業時間を出したい!
社員の就業時間をExcelで出せたらいいな、と思って作ろうとしています。 出社時刻と退社時刻を入力したら、就業した時間が出るようにしたいのですが、 どのような式にすればいいのでしょうか。 30分きざみで計算したいのです。 10:00~10:29までの出社時間では、10:30からの勤務ということになり、 (出社が10:30だったら11:00からの勤務ということになる。) 18:00~18:29までの退社時間は、18:00までの勤務ということになります。 例えば セル(A1)に10:05、(B1)に18:02、と入れたら(C1)に7.5と表示させるには、 (C1)にどのような式を書けばよいのでしょう。 (C1)の単位は「時間」です。 どなたか分かる方いましたらぜひ、助けて下さい!!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
(A1)(B1)は値をシリアル値(1日が1)で持っています。 (A1)を30分単位にするには、CEILING(A1+1/1440,1/48) (B1)を30分単位にするには、FLOOR(B1,1/48) あとは差をとって時間単位に直せばいいので、(C1)に =(FLOOR(B1,1/48)-CEILING(A1+1/1440,1/48))*24 と入力すればいいようです。 あるいはちょっと計算して =FLOOR(B1*24,.5)-CEILING(A1*24+1/60,.5) でもいいですね。
その他の回答 (4)
- k_eba
- ベストアンサー率39% (813/2055)
a1を30分単位にするには =CEILING(A1*24,0.5)/24 で良いと思います また参考urlを付けときます がんばって下さい
- koutaka
- ベストアンサー率47% (18/38)
●こんな方法はいかがでしょうか。 1.セル(D1)にセル(A1)を30分きざみで計算した値 "=TIME(IF(30<=MINUTE(A1),HOUR(A1)+1,HOUR(A1)),IF(30<=MINUTE(A1),0,30),0)"を入力します。 2.セル(E1)にセル(B1)を30分きざみで計算した値 "=TIME(HOUR(B1),IF(30<=MINUTE(B1),30,0),0)"を入力します。 3.セル(C1)にセル(E1)からセル(D1)を引いた値 "=E1-D1"を入力します。
- HitomiKurose
- ベストアンサー率38% (54/141)
すみません、No.2の補足です。 式を入力すると表示形式が変わって、違う値が表示されるかもしれません。 その場合、(C1)を右クリックして、セルの書式設定から、表示形式を標準に変えて下さい。
- sight
- ベストアンサー率53% (199/370)
こんにちは。 確かに、A1,B1にデータを入れて、C1にごたごたと長い式を書くのもよいのでしょうが、ちょっと私的にはあまり考えたくありませんね。 A1:出社時間入力 B1:退社時間入力 C1:計算式 就業時間開始(非表示セル) D1:計算式 就業時間終わり(非表示セル) E1:C1とD1から就業時間を算出するセル のような構成ではどうでしょう? C1、D1では入力された時間からHOUR関数、MINUTE関数を使って時間と分を取り出して、IFなどの条件分岐でわけてあげる計算式を入れます。計算結果は時刻型じゃなく(たとえば、10:30なら10.5として)する。 これで、C1、D1のセルには、計算結果として勤務開始と勤務終了が入っていますので、E1では単純に算術減算してやればよい。 で、C1とD1の列は非表示にしてしまう。と。 一つのセルだけにすべての計算式書こうとすると結構すごいことになると思います。