時間数の合計を求めるには?

Question 11.1 Previous Next
例えば給与計算などを思っていただければよいかと思うのですが、労働時間をサマリーしたいのです。
しかしどうも24:00を越えてしまうと0:00になってしまうようなのですが・・・たとえば13:00+15:00なら28:00という答えが欲しいのですが・・・不可能ですか?
Answer   Copyright (C) 1998.10.9 永井善王
ユーザーが「時間数」のつもりで、セルへ 13:00 と入力しても、エクセルはセルの書式の表示形式を「時刻」として自動設定してしまいます。そのため、質問にある 13:00+15:00の答えが 4:00となってしまいます。つまり、午後1時の15時間後の時刻を、午前4時と答えてくれたことになりますね。
では、どうすれば良いかですが、エクセルは多機能ですから、いろいろな方法が考えられます。ですが、 あまり難しく考えずに自分のやれる範囲で解決することを、お勧めします。

このテーマはマクロを組む程ではないと思います。ワークシートへ式を埋め込むだけで、解決可能です。
ポイントとしては、時刻と時間数の違いを計算し直すために、まず、入力値を基にして「分」を算出します。そして、その「分」の月間トータルを時間数として表示します。

下図の水色ぽい部分、つまり A1:B4セルが入力された実績値とします。
黄色ぽい部分、つまり D1:G4セルに各日別に「分」を計算する式を埋め込み、「分」の月間合計を G5セルに算出します。
緑色部分の A5:B6セルに、「分」の月間合計を時間数と端数の「分」に計算し直して表示し、答えとします。

労働時間集計表 各セルへ入れる式の書き方
D2セル =HOUR(B2)
E2セル =D2*60
F2セル =MINUTE(B2)
G2セル =E2+F2
B5セル =ROUNDDOWN($G$5/60,0)
B6セル =$G$5-ROUNDDOWN($G$5/60,0)*60

D2:G2をコピーして
D3:G4へ貼り付ける

式の中にある関数の HOURは時刻を時に変換します。MINUTEは時刻に対応する分を返します。ROUNDDOWNは演算結果を切り捨てします。くわしく知りたければ、エクセルのヘルプのトピックの検索で調べてください。
【参考】
・上図のシートは画面表示の関係で3日分しかありません。実際には31日分とかに行を増やしてください
・式は、理解しやすいように少しずつ区切ってます。あなたの実力に合せてネストしてください。
・実績が入力されたシートに、式を入れることができない場合などは、計算用のシートを別に作り、実績
 値を写して計算させて、答えを実績シートに写せば解決します。
・どうしてもマクロで組みたければ、式を組み込む事例が
休日カレンダーから実働日数を計算するには?
 にありますから、参考にして頑張ってください。

 

Excel VBA Macro