Excelで時間を計算する方法
時間の合計が24時間を超えるとおかしくなる、時給を掛けると金額が合わない、といったExcelの「時間計算あるある」を数式つきで解決します。
すぐに答えだけ知りたいときは、時間計算ツールや勤務時間計算に数字を入れるほうが早く確実です。
Excelの時間の仕組み
Excelは時間を「1日=1」とした数(シリアル値)で持っています。1時間は1/24(約0.0417)、30分は1/48です。「7:30」と入力すると、セルの中身は0.3125という数で、表示形式で「7:30」に見せているだけです。
この仕組みを知っておくと、「時給を掛けるときは24倍する」「24時間を超えると0に戻って見える」理由がわかります。
時間の合計(足し算)と24時間を超えるとき
合計は通常どおり =SUM(B2:B32) で出せます。ところが、合計が24時間を超えると「30:00」ではなく「6:00」のように表示されてしまいます。これは表示形式が「時刻」になっていて、24時間ごとに日付が繰り上がるためです。
解決方法:合計のセルの表示形式を [h]:mm にする
- 合計のセルを選んで Ctrl+1(Macは ⌘+1)で「セルの書式設定」を開く
- 「表示形式」タブ →「ユーザー定義」を選ぶ
- 「種類」に
[h]:mmと入力して OK
「30時間15分」のように表示したいときは [h]"時間"mm"分" と入力します。秒まで表示するなら [h]:mm:ss です。
時間の引き算(経過時間・勤務時間)
開始時刻がA2、終了時刻がB2なら =B2-A2 です。休憩時間(例:C2に「1:00」)を引くなら =B2-A2-C2 とします。
日付をまたぐ(夜勤)とき
22:00〜翌6:00のように終了が開始より小さいと、=B2-A2 はマイナスになり「#######」と表示されます。次のどちらかの式を使います。
=MOD(B2-A2,1)
=B2-A2+(B2<A2)
どちらも、終了が開始より前なら1日(24時間)を足して計算します。
時給計算:時間×時給は「24倍」が必要
実働時間がD2(例:7:45)、時給がE2(例:1200)のとき、=D2*E2 とすると約388円になってしまいます。7:45はExcelの中では0.3229…という「日」の数だからです。
正しい式:=D2*24*E2(7.75時間×1,200円=9,300円)
結果のセルの表示形式は「通貨」か「数値」にします。小数の誤差で9,299.99…のようになるのを避けたいときは、時間を先に丸めます。
=ROUND(D2*24,2)*E2
=ROUNDDOWN(D2*24*E2,0) ← 1円未満切り捨て
=ROUND(D2*24*E2,0) ← 1円未満四捨五入
時刻形式と小数(10進数)の変換
| やりたいこと | 数式(A1が元の値) | 例 |
|---|---|---|
| 時刻 → 小数の時間 | =A1*24 | 7:45 → 7.75 |
| 時刻 → 分 | =A1*1440 | 7:45 → 465 |
| 小数の時間 → 時刻 | =A1/24(表示形式 [h]:mm) | 7.75 → 7:45 |
| 分 → 時刻 | =A1/1440(表示形式 [h]:mm) | 465 → 7:45 |
| 時間と分から時刻を作る | =TIME(7,45,0) | 7:45 |
24時間を超える時間から「何時間」を取り出すときは、HOUR 関数ではなく =INT(A1*24) を使います(HOUR は0〜23しか返しません)。分は =MINUTE(A1) で取り出せます。
15分単位・30分単位で丸める
=FLOOR(A1,"0:15") ← 15分単位で切り捨て
=CEILING(A1,"0:15") ← 15分単位で切り上げ
=MROUND(A1,"0:15") ← 15分単位で四捨五入
"0:30" にすれば30分単位です。出勤時刻は切り上げ、退勤時刻は切り捨てにする、といった使い分けもできます。
マイナスの時間を表示したい
「予定より−0:30」のようなマイナスの時間は、標準の設定では「#######」になります。次のどちらかで対応します。
- 文字列で表示:
=IF(B2<A2,"-"&TEXT(A2-B2,"[h]:mm"),TEXT(B2-A2,"[h]:mm"))(結果は文字列なので、その後の計算には使えません) - 1904年からの日付システムに切り替える:「ファイル」→「オプション」→「詳細設定」の「次のブックで計算するとき」で「1904年から計算する」にチェックを入れます。ただし、ブック内の既存の日付が4年と1日ずれるので、日付を含むブックでは使わないでください。
Googleスプレッドシートの場合
数式はExcelとほぼ同じです(=B2-A2、=MOD(B2-A2,1)、=D2*24*E2 など)。24時間を超える合計は、セルを選んで「表示形式」→「数字」→「経過時間」にすると表示できます。
よくある質問
合計が「0:00」や小さい時間になってしまう
合計が24時間ちょうどやその倍数のとき、表示形式が「h:mm」だと0:00に見えます。表示形式を [h]:mm に変えてください。
「7時間30分」と文字で入力した時間を計算したい
文字列のままでは計算できません。「7:30」の形で入力し直すか、時間と分を別の列に入れて =TIME(A1,B1,0) で時刻にしてください。
時給を掛けたら金額がとても小さくなった
時間のセルを24倍していないのが原因です。=時間のセル*24*時給 にしてください。