この記事で分かること
- Excel が時刻を「1日=1」の小数で持つ仕組みと、
TIME・TIMEVALUE・HOUR・MINUTE・SECONDの返り値の違い - 24時間を超える合計の表示(
[h]:mm)と、日をまたぐ勤務時間の求め方(MOD)、文字列の時刻の直し方 - 時間(シリアル値)×24×時間単価で請求額を出す式と、分単位に丸めた値での検算
想定読者:FAS・コンサルのタイムチャージ集計、FP&A の人件費・残業時間の分析、投資先の生産性 KPI の作成を Excel で行う若手の方
前提知識:SUM などの基本関数と、セルの書式設定を開いた経験があれば十分です
結論:時刻は「1日=1」の小数。合計は[h]:mm、日またぎはMOD、金額は×24
以下は学習用の架空事例です。10名の担当者(A〜J)の1週間(月〜金)の作業記録から、週合計と請求額を求めます。時間単価は計算練習のための仮定値(円/時間)です。
Excel は時刻を「1日=1」の小数で保存します(12:00 は 0.5)。このため、合計が24時間を超えると通常の時刻表示(h:mm)は24で巻き戻り、深夜をまたぐ勤務で終了から開始を引くと負の値になってセルに ######## が出ます。また、時間の値は日に対する割合なので、時間単価をそのまま掛けると金額が24分の1になります。
対処は、表示形式を [h]:mm にする、MOD(終了-開始,1) で引く、時間×24×単価 で金額にする、の3つです。法定労働時間や割増賃金などの労務制度、営業日の計算(WORKDAY)は扱いません。
本文の式と表示は、Windows 版 Excel 16.0(日本語環境)で2026年10月24日に入力して確認したものです。Excel for the web などでは異なる場合があります。
時刻の正体:日に対する割合として保存される
Microsoft のサポートページによると、TIME 関数が返す小数は 0:00:00 から 23:59:59 までの時刻を表し、12:00 PM は半日なので 0.5 です1。9:30 なら、1日1,440分のうち570分なので 570÷1,440=0.395833 です。23:59:59 でも 86,399÷86,400=0.99998843 で、時刻だけの値は必ず0以上1未満に収まります。
TIME(時,分,秒) は3つの数字から時刻を作り、時が23を超えると24で割った余りを時として扱います(TIME(27,0,0) は3:00と同じ0.125)2。TIMEVALUE は「9:30」のような文字列を時刻の小数に変換します3。HOUR・MINUTE・SECOND は、時刻から時(0〜23)・分(0〜59)・秒(0〜59)の整数を返します4。海外の解説サイトにも同じ説明があります5。
| 式 | 返り値 | 読み方 |
|---|---|---|
=TIME(9,30,0) | 0.395833 | 570分÷1,440分 |
=TIMEVALUE("9:30") | 0.395833 | 文字列→時刻 |
=HOUR(A1) | 9 | 「時」の部分 |
=MINUTE(A1) | 30 | 「分」の部分 |
=SECOND(A1) | 0 | 「秒」の部分 |
=TIME(27,0,0) | 0.125 | 27−24=3時 |
=TIMEVALUE(A1) | #VALUE! | 数値だとエラー |
図表1のとおり、TIME(9,30,0) も TIMEVALUE("9:30") も同じ0.395833を返し、違いは入力が数字か文字列かだけです。注意点は2つあります。HOUR は「時刻の時の部分」を返すだけで、経過時間の時間数ではありません(後で扱うAさんの週合計44時間に使うと20が返ります)。また、すでに数値の時刻になっているセルに TIMEVALUE を使うと、今回の環境では #VALUE! になりました。
24時間を超える合計:h:mm は巻き戻り、[h]:mm は累計を示す
図表2は、Aさんの日をまたがない5日分の勤務時間(終了−開始−休憩)と、その合計の見え方です。
| 曜日 | 開始 | 終了 | 休憩 | 勤務時間 |
|---|---|---|---|---|
| 月 | 9:00 | 18:30 | 1:00 | 8:30 |
| 火 | 9:00 | 19:00 | 1:00 | 9:00 |
| 水 | 9:00 | 19:30 | 1:00 | 9:30 |
| 木 | 9:15 | 19:00 | 1:00 | 8:45 |
| 金 | 9:00 | 18:15 | 1:00 | 8:15 |
合計(表示形式 h:mm) | 20:00 | |||
合計(表示形式 [h]:mm) | 44:00 | |||
| 合計(標準表示。値そのもの) | 1.833333 | |||
=HOUR(合計) | 20 | |||
=合計*24(時間数) | 44 | |||
Aさんの5日の合計は44時間です。SUM で合計したセルの値は1.833333(=44÷24)で、h:mm で表示すると「20:00」になります。時刻表示は1日の中の時刻を示すため、24を超えた分が落ちて見えるのです。Microsoft の手順でも、12:45と15:30を足すと4:15と表示され、表示形式に [h]:mm;@ を指定すると28時間15分と表示されます6。[h] の角かっこは、時間を24で区切らず経過時間として表示する指定です7。
[h]:mm に変えても値は1.833333のままで、変わるのは表示形式=合計*24 で44を得ます。HOUR(合計)+MINUTE(合計)/60 では20になり、24時間を超えた分が落ちます。なお、Excel for the web ではカスタム数値形式を適用できないと Microsoft のページに書かれています8。
日またぎ勤務:MOD(終了-開始,1) で負の値を正す
夜勤の担当者(DさんとGさん)は、22:00開始・翌6:00終了のように日をまたぎます。セルには時刻しか入っていないので、終了の6:00(0.25)から開始の22:00(0.916667)を引くと、0.25−0.916667=−0.666667 の負の値になります。図表3は、これを1日の軸で表したものです。
実際に引くと、表示形式が h:mm でも [h]:mm でもセルは ######## と表示され、標準表示にすると「−0.66667」と負の値が読めました。Microsoft のページにも、負の値を返す日付・時刻の数式は ##### と表示されることがあり、1900年日付システム(今回のブックも同じ)では値が正であることを確認するよう書かれています9。エラー値の見分け方はExcelのエラー値
対処は MOD です。MOD(数値,除数) は割り算の余りを返し、結果は除数と同じ符号になります。MOD(n,d) は n-d*INT(n/d) と表せます10。除数を1にすると、負の差に1(=1日)を足し戻した値が返ります。MOD(0.25-0.916667,1) は0.333333で、時刻にすると8:00(22〜24時の2時間+0〜6時の6時間)です。
休憩を引くときは =MOD(終了-開始,1)-休憩 とします。Dさんの月曜は、22:00〜翌6:00で休憩1:00なので、8:00−1:00=7:00です。日をまたがない勤務でも同じ式で正しい値になるため、勤務表の全行に1つの式を使えます。
限界もあります。MOD は開始と終了が同じとき0を返す(今回の環境でも0:00)ため、ちょうど24時間以上の連続稼働は表せません。そうした記録は日付つきの日時(日付+時刻)で持ちます(2026年10月5日9:00〜翌6日9:00の差は [h]:mm で24:00と表示されました)。勤務が必ず24時間未満なら時刻だけ+MOD、24時間以上になりうるなら日付つき、が使い分けの目安です。
文字列の時刻を数値に直す:TIMEVALUE と見分け方
システムから取り込んだ時刻が文字列になっていることがあります。設例では、Cさんの月曜の開始「8:00」と、Iさんの水曜の終了「17:30」が文字列です。
この環境では、文字列の時刻どうしを引く式(=D2-C2 や MOD)は Excel が自動で数値に読み替えて正しい結果を返したため、日次の勤務時間だけを見ても誤りに気づきにくい状態です。見分け方は2つあります。=ISTEXT(セル) が TRUE になるか、列の COUNT(数値の個数)と COUNTA(空白でないセルの個数)が食い違うかです。Cさんの開始時刻5行では、前者が4、後者が5でした。日付が文字列だと条件が効かない注意点は、SUMIFSによる条件付き集計でも触れています。
直し方は TIMEVALUE です。引数は「Microsoft Excel のいずれかの時刻形式で時間を表すテキスト文字列」で、時刻文字列に含まれる日付は無視されます11。ただし図表1のとおり、数値の時刻に使うと #VALUE! になるため、数値と文字列が混ざる列では次の形にします。
数値と文字列が混在する列の読み替え=IF(ISNUMBER(C2),C2,TIMEVALUE(C2))
勤務時間の式は、開始と終了をこの形で読み替えてから MOD で引き、休憩を差し引きます。文字列2か所を含む50行の週合計は全体で412:30(24,750分)となり、入力データから数えた分数と一致しました。取り込み後のクリーニングは財務データクリーニング、チェックセルの作り方は検算チェックの設計で扱っています。データの入力規則COUNTA(範囲)-COUNT(範囲) が0かを見るチェックセルを併用すると安全です。
時間×24×単価:請求額と分単位の検算
請求額の式(時間単価は仮定値・円/時間)=ROUND(週合計*24*時間単価,0)(週合計はシリアル値。24を掛けて時間数にし、円未満四捨五入)
Aさんは、週合計1.833333(=44:00)に24を掛けた44時間に、単価5,000円を掛けて220,000円です。24を掛け忘れると、1.833333×5,000=9,167円(円未満四捨五入)で、正しい金額の24分の1になります。
| 担当 | 週合計 | 単価 | 請求額 | 24忘れ | 検算差 |
|---|---|---|---|---|---|
| Aさん | 44:00 | 5,000 | 220,000 | 9,167 | 0 |
| Bさん | 38:00 | 4,500 | 171,000 | 7,125 | 0 |
| Cさん | 41:30 | 5,500 | 228,250 | 9,510 | 0 |
| Dさん | 36:30 | 4,800 | 175,200 | 7,300 | 0 |
| Eさん | 42:30 | 6,000 | 255,000 | 10,625 | 0 |
| Fさん | 35:00 | 4,200 | 147,000 | 6,125 | 0 |
| Gさん | 39:00 | 5,200 | 202,800 | 8,450 | 0 |
| Hさん | 52:30 | 7,000 | 367,500 | 15,313 | 0 |
| Iさん | 41:15 | 4,600 | 189,750 | 7,906 | 0 |
| Jさん | 42:15 | 5,800 | 245,050 | 10,210 | 0 |
| 合計 | 412:30 | ― | 2,201,550 | 91,731 | 0 |
図表4のとおり、全体の週合計は412:30(412.5時間)、請求額は各担当を円未満四捨五入した合計で2,201,550円です。24を掛け忘れた金額の合計91,731円は、その約24分の1(2,201,550÷24=91,731.25)です。週合計は10名×5日の計50行の記録から求め、図表4には週合計と単価だけを載せています。
検算は、=ROUND(週合計*1440,0) で分に丸め、60で割って単価を掛けた金額が請求額と一致するかを見ます。「検算差」列のとおり、10名すべてで差は0円です。分に丸めるのは、時刻の小数が2進数の浮動小数点で持たれ、ごくわずかな誤差が残ることがあるためです。今回もGさんの週合計×24の内部値は38.99999999999999でした(INT は39を返しました)。この挙動に頼らず、等号の比較や整数化は分単位に丸めてから行うほうが確実です。丸めと突合の考え方は端数処理とタイアウト
請求額が出れば、専門サービスの稼働率
実務チェックリスト
- 合計セルの表示形式が
[h]:mmか。24時間を超える週合計が20:00のように巻き戻っていないかを確認する。 - 日をまたぐ可能性のある勤務表では、勤務時間の式が
MOD(終了-開始,1)になっているか。負の値や########がないかを見る。 - 開始=終了の行(0:00になる行)がないか。あれば、日付つきの日時で持つ必要がないかを判断する。
- 時刻の列で
COUNTとCOUNTAが一致するか。食い違えばTIMEVALUEで数値に直す。 - 金額の式に
*24が入っているか。週合計の金額が想定の約24分の1に見えたら、掛け忘れを疑う。 - 金額の検算に、分単位に丸めた再計算(
ROUND(…*1440,0))を置き、差が0円になるかを確認する。
よくある質問(F AQ)
日付つきの記録なら MOD は要りませんか。
日付が正しく入っていれば終了は常に開始より後なので、引き算だけで正の値になります。ただし日付の入力漏れや誤りがあると負の値が出るため、勤務時間が負の行を数えるチェックセルを置くと誤りを見つけられます。
秒まで入った打刻を、分単位にそろえるには。
ROUND(値*1440,0) で分に丸められます(1,440は1日の分数)。切り捨てなど丸め方の選び方は、端数処理の別の解説に委ねます。
まとめ
Excel は時刻を「1日=1」の小数で持つため、合計表示、日またぎ、金額換算で誤りが出ます。合計は [h]:mm で表示し、日またぎは MOD(終了-開始,1) で正の値にし、金額は時間×24×単価で求めます。文字列の時刻は TIMEVALUE で直し、最後に分単位の再計算で差が0円かを確かめます。
脚注
- Microsoft サポート「TIME 関数」の説明と解説。返す小数は0:00:00〜23:59:59の時刻を表し、12:00 PM は0.5。同ページは上限を「0.99988426」と記すが、23:59:59は86,399秒÷86,400秒=0.99998843のため本文は計算値を示した(参考文献 R1)。↩
- Microsoft サポート「TIME 関数」の引数。時が23を超えると24で割った余りが時として扱われ、
TIME(27,0,0)=TIME(3,0,0)=0.125(参考文献 R1)。↩ - Microsoft サポート「TIMEVALUE 関数」の説明。文字列で表された時刻を小数に変換する(参考文献 R2)。↩
- Microsoft サポート「HOUR 関数」「MINUTE 関数」「SECOND 関数」の説明。戻り値は時が0〜23、分・秒が0〜59の整数(参考文献 R3・R4・R5)。↩
- Wall Street Oasis の TIME・HOUR 関数のページ(一般的な概念の参考)。23を超える時は24で割った余り、
HOURは0〜23(参考文献 R10・R11)。↩ - Microsoft サポート「Excel で時間を加算または減算する」。12:45と15:30の合計は4:15と表示され、
[h]:mm;@を指定すると28時間15分と表示される(参考文献 R6)。↩ - Microsoft サポート「日付または時刻として数値の書式を設定する」の表示形式の一覧。
[h]:mmは「経過時間(時間単位)」(参考文献 R7)。↩ - 参考文献 R6 の注。Excel for the web は24時間を超える時間を加算・減算できるが、カスタム数値形式は適用できない(2026年10月24日閲覧時点)。↩
- Microsoft サポート「##### エラーの修正方法」の「負の日付または時刻を修正する」。負の値を返す日付・時刻の数式は
#####と表示されることがあり、1900年日付システムでは正の値か確認する(参考文献 R8)。↩ - Microsoft サポート「MOD 関数」。剰余を返し、戻り値は除数と同じ符号。
MOD(n, d) = n - d*INT(n/d)(参考文献 R9)。↩ - Microsoft サポート「TIMEVALUE 関数」の引数と解説。引数は時刻形式で時間を表すテキスト文字列で、文字列に含まれる日付の情報は無視される(参考文献 R2)。↩
参考文献(2 026年10月確認)
- R1 Microsoft サポート
「T IME 関数」 support.microsoft.com (説明・引数・解説。脚注1・2の根拠。閲覧日:2026年10月24日) - R2 Microsoft サポート
「T IMEVALUE 関数」 support.microsoft.com (説明・引数・解説。脚注3・11の根拠。閲覧日:2026年10月24日) - R3 Microsoft サポート
「H OUR 関数」 support.microsoft.com (説明・引数。脚注4の根拠。閲覧日:2026年10月24日) - R4 Microsoft サポート
「M INUTE 関数」 support.microsoft.com (説明・引数。脚注4の根拠。閲覧日:2026年10月24日) - R5 Microsoft サポート
「S ECOND 関数」 support.microsoft.com (説明・引数。脚注4の根拠。閲覧日:2026年10月24日) - R6 Microsoft サポート
「E xcel で時間を加算または減算する」 support.microsoft.com (24時間以上を合計する手順。脚注6・8の根拠。閲覧日:2026年10月24日) - R7 Microsoft サポート
「日 付または時刻として数値の書式を設定する」 support.microsoft.com (時刻の表示形式の一覧。脚注7の根拠。閲覧日:2026年10月24日) - R8 Microsoft サポート
「# #### エラーの修正方法」 support.microsoft.com (負の日付または時刻を修正する。脚注9の根拠。閲覧日:2026年10月24日) - R9 Microsoft サポート
「M OD 関数」 support.microsoft.com (説明・解説。脚注10の根拠。閲覧日:2026年10月24日) - R10 Wall Street Oasis「TIME Function」 wallstreetoasis.com (一般的な概念の参考。脚注5。閲覧日:2026年10月24日)
- R11 Wall Street Oasis「HOUR Function」 wallstreetoasis.com (一般的な概念の参考。脚注5。閲覧日:2026年10月24日)
※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための学習用の架空事例であり、実在の企業・案件とは関係ありません。