• ベストアンサー

Excelで勤務時間を計算する式について

MarcoRossiItalyの回答

回答No.3

できれば、Excel における通常の時刻の入力方法を採用することをお勧めしたいと思います。次のようにします。 「900」が午前 9 時を表すのであれば、「9:00」とタイプします。これは、確定と同時に午前 9 時の「シリアル値」に変換されてセルに入力され、その値は「0.375」という数値なのですが、見かけは「9:00」と表示されています。「0.375」をセルの書式でそのように見せているだけなのです。 「AM」や「PM」はタイプしなくて大丈夫です。「17:40」と打てば、数式バーでは自動的に「5:40:00 PM」と表示されます。 つまり、「9:00」とタイプした後に、「900」に見えるような書式に変更してあげればいいですね。具体的には、B・C 列のデータ入力したセル範囲を選択して、右クリックなどから「セルの書式設定>表示形式タブ>ユーザー定義>種類ボックス」に「hmm」と入力するだけです。見かけは「900」ですが実態は「0.375」であることが、書式を「標準」などに変更すれば確認できます。 こうしておくと何がいいのかというと、時間の計算がとても簡単になるということです。 シリアル値は、24 時間で「1」になるような値に定められています。1 × 24 = 24 であるのと同様に、0.375 × 24 = 9 が成り立ちます。つまりシリアル値に 24 をかけると、時間数に変換されるのです。したがって、 =24*(c2-b2) ※「24 倍する」代わりに「1:00 のシリアル値で割る」という計算をしても、  同じ結果が得られます。「=(c2-b2)/"1:00"」という具合に。 というふうに時間差が計算できます。ここまで、関数は不要ということです。 ただ、これだけだと休憩時間が考慮されてませんね。ある期間と他の期間との「重なり」は、「MAX(,MIN-MAX)」という形の数式で表されます。 =24*(c2-b2-max(,min(c2,"13:00")-max(b2,"12:00"))-max(,min(c2,"18:10")-max(b2,"17:40"))) D 列にこの数式を入力したら、そのセルの書式は、上でユーザー定義の時刻の書式を設定したのと同様にして、ボックスに「0.0」と入力するなどしてください。時刻の書式だと、「7.66…」が「16:00」とか表示されてしまったりします。なお D 列が「標準」の書式の場合は、B 列や C 列を編集していると、その右の D 列も書式が自動変更されてしまったりしますので、ご注意ください。

malmine
質問者

お礼

ご回答ありがとうございました。 確かにきちんと時刻の形式で入力されるべきものですが、 現状全員が図の形式で入力しており、 浸透させるには少し時間がかかると思われますが、 検討はしたいと思います。

関連するQ&A

  • エクセル 勤務時間の計算について

    以下の勤務時間とします。 開始  終了  休憩 実労働時間 09:00 17:30  1:00 7:30 この数値をエクセルにすると、 A1 B1 C1 D1 09:00 17:30 1:00 7:30 D1の時間算出 =(A1-B1-C1) となりますが、 このD1の7:30 を 7.5で算出したいのですが 簡単な計算式(セルD1内で計算)を教えてください。

  • エクセル関数(24捨25入)

    エクセル関数で以下を教えてください。 四捨五入の応用で、24捨25入(74捨75入)の数式が知りたいです。 (ようは下二桁を50か100単位に切捨てもしくは繰り上げしたいです。) 例えば関数の数値が以下左側のような数値の場合に 24捨25入(74捨75入)して右側の数値で表示させたいです。 「1224」⇒「1200」・「1225」⇒「1250」 「1274」⇒「1250」・「1275」⇒「1300」 エクセル自体得意ではなく困っています。 すみませんが教えてください。

  • エクセルでの時間計算について

    エクセルで勤怠管理表を作ろうとしていますが、わからない部分がありますのでご教授ください。 セルの書式をh:mmとして退社時間から出勤時間を引けば実際に勤務した時間が算出されるというところまでは出来たのですが、以下に挙げた二つの機能を作るにはどうしたらよいのでしょうか? 1.デフォルトで12:00から13:00、22:00から22:30を休憩時間としたいため、その時間を挟んで勤務した場合には、自動的に勤務時間からその時間を引きたい。  例)10:00から18:00まで勤務した場合、休憩時間を1時間引いて算出勤務時間を7時間としたい。 2.日をまたいだ勤務形態だと、うまく時間が算出されないので、正しく算出したい。  例)21:00に出社して、翌日の05:00まで勤務した場合、休憩時間を30分引いて算出勤務時間を8時間30分としたい。 セルに直接計算式を書くより、マクロを使ってうまく出来ればベターだと思っているのですが、良い方法がありましたらご教授ください。よろしくお願いいたします。

  • 勤務時間の計算

    いつもお世話になっています。 お知恵を貸してください。 勤務シフト別の実働時間を算出する方法を探しています。 B列に出勤時間(仮に9:15) C列に退勤時間(仮に17:00) D列に実働時間 を表したいと思っています。 算出したいのは拘束時間ではなく実働なので、休憩時間を除いて計算したいのですが、勤務シフトにより3種類の休憩時間があります。休憩時間の種類は、 6時間未満・・・0:00 6時間超8時間未満・・・0:45 8時間・・・1:00 となっています。 このような場合、どうすれば計算が可能でしょうか? どなたか教えてください。 よろしくお願いします。

  • エクセルでの表計算。

    エクセルでの表計算。 0.5単位で四捨五入したいのです。 たとえば 1.3は1.0に自動的に直してくれる関数。 1.5は2.0に。 1.7は2.0に。 CEILING やMROUNDでしょうか? 慣れていないので、CEILING(A1,0.5)としたのに、 1.3が1.5になってしまって、うまく動いてくれません。 1.3は1.0にしたいのです。 具体的な方法を教えてください。

  • 超過勤務の計算について 教えてください。

    最近の社会情勢を見ていると 超過勤務は 日々 1分単位で足しあげて 月単位で四捨五入、と労基署に指導された、なんて話を聞きますが、 では、事前申告は どのように考えたら良いでしょうか? 極端な話、1時間の申告をして タイムカードは 1時間1分だった なんて場合も1分単位で足さないとダメなのでしょうか? それであれば 事前申告はしなかったけど タイムカードが5分過ぎてたとかの場合は申告させて足しあげないと違法なのでしょうか? よろしくお願いしますm(__)m

  • エクセルで四捨五入した値を計算

    エクセルでダイエット記録表を作成して肥満度指数(BMI)を算出してます。計算式はエラー表示を出さないようにIFERROR関数を使用しています。値は小数点第2位四捨五入で算出しており、その四捨五入した値に対してさらに計算し四捨五入したいのです。 A1:体重、A2:身長、A3:BMI、A4:目標BMI といった感じです。 例えばA1:86.0、A2:182.0ですとA3:BMI 25.96なので四捨五入して26.0と表示させています。その26.0の値に対して0.96掛けて24.96→25.0と四捨五入表示させたいのです。しかしA3:26.0ではなく実際25.96に対して0.96掛けてしまうため24.92→24.9と表示してしまうのです。 この記録表は社内で回付するためエラー表示は避けたいのでどなたかいい解決方法を早急にお願い致します。!!

  • EXCEL 時間計算について

    出勤から退勤までの時間を計算したいです。しかし、お昼休憩の1時間は省きます。また、算出した数字は、15分単位で表示し、14分は00分で表示します。C列にいれる式はどうなりますでしょうか?  A列   B列   C列 (出勤)(退勤)(勤務時間)  8:45  16:32  7:45

  • Excelで勤務時間の計算をしたいです。

    すでに作られている勤務表を前任者から受け継ぎましたが、 すべて手入力しているので関数を使ってもっと効率化を図りたいと思います。 皆様の知恵をお貸し下さい。 出勤時間→B列 退社時間→C列 出勤日数のカウント→D列 残業時間→E列 条件として ・定時は8:00~17:00に対して1時間の休憩をとる。 例:B列   C列  D列  E列   8:00 17:00  1  [空白] ・実働時間9時間を超える場合は残業時間に入れる 例:B列   C列  D列  E列   8:00 18:30  1   1.5 ・実働時間9時間以上の場合は1時間休憩を差し引き実働時間8時間としてそれに対して 出勤日数のカウント「1」 実働時間4時間以下の場合は休憩時間を差し引かずに 出勤日数のカウント「0.5」 実働時間4時間超え、9時間未満のものに対しては休憩時間に関係なく 出勤日数のカウント「1」 (ここが一番厄介な点かと思われます。4時間以内ならカウント0.5、4時間を越えたものはカウント1です。) 例:B列   C列  D列  E列   8:00 12:00  0.5  [空白]   8:00 15:00  1  [空白]   8:00 17:30  1   0.5 ・深夜勤務もあるが、その場合の残業は手動で計算するので、出勤日数のカウントだけでOK 例:B列   C列  D列  E列  23:00  5:00  1  [空白] このような状態なのですが、計算の列などを増やして(あまり増やしたくはないのですが・・・) 関数をいれてある程度自動で計算をさせたいのです。 休憩時間はほぼ1時間と決まっているのであまり列は増やさずに計算させたいです。 簡単な関数は知っていますが、表示形式など詳しいことは分かりません(残業時間1時間半を1.5と表示するなど・・・) ちなみに出勤日数のカウント、残業に関しては1や1.5などの数値を 他の時給計算で使っています。 巧く説明できなくてすみません((汗)) どのような関数を組んだらよいか、ご指導を宜しくお願いします_(._.)_

  • エクセルの関数。お願いします!

    任意の桁数で四捨五入するROUND関数についてお願いします。 A1「5678.492」の数値。 (ア)小数点以下を四捨五入しなさい。 (イ)1の位を四捨五入しなさい。 =ROUND(A1,○)の○には何が入るんでしょうか?