重なった時間は1回だけ数え、空いた時間は足しません
9:00〜12:00と11:00〜14:00をそのまま足すと6時間になります。ただし11:00〜12:00はどちらの記録にも含まれていて、2回数えてしまっています。この1時間を1回だけ数えると、2つの記録が実際に占めた時間は9:00〜14:00、つまり5時間です。数学ではこの値を、区間の和集合の長さと呼びます。
計算機を開いたときの例は4つの時間帯です。9:00〜12:00、11:00〜14:00、13:30〜15:00、16:00〜17:30を足すと単純合計は9時間ですが、11:00〜12:00と13:30〜14:00が重なっていて、合計1時間30分を二重に数えています。重複を除いた合計時間は7時間30分です。15:00〜16:00はどの時間帯にも入っていないので、最初の開始から最後の終了までの8時間30分とも一致しません。タイムラインのバーに引いた斜線が二重に数えた部分で、いちばん下の「まとめた結果」の行の途切れたところが空き時間です。
重なりを除きたい場面
複数の記録が同じ時刻を占めているとき、何を知りたいかによって足し方が変わります。「その時間帯がどれだけ埋まっているか」を知りたいなら、重なった時間は1回だけ数えます。
- 会議室や機材が実際に使われた時間: 予約がダブって入っていても、部屋が使われた時間は1回分しか流れません。1日の稼働率は、重複を除いた合計時間を運用時間で割って求めます。
- 複数のアプリに分かれた勉強・作業の記録: タイマーアプリとカレンダーに同じ時間を別々に残していると、単純合計は実際より長くなります。重なった箇所の一覧を見れば、どの記録がダブっているかすぐに分かります。
- 介護や当番など、空きがあってはいけない仕事: 何人かで分担した時間をまとめると、「空き時間」は誰も担当していない時間そのものです。最初の例なら、15:00〜16:00が空いています。
- 通話・動画・ログイン時間をまとめるとき: 同じ時刻に複数の記録が重なっていても、1つの利用時間として整理できます。同時に最も多く重なった件数と、その時間帯も表示されます。
反対に、2人が同じ時間にそれぞれ1時間働いた作業量は2時間です。人ごとの作業時間(人時)を合計したいときは、重なりを除かず、結果の「単純合計」を見てください。
計算の手順
- 時刻を分に直します。9:30は9 × 60 + 30 = 570分です。こうすると時間帯の長さは「終了 − 開始」で求められます。
- 終了が開始より早いときは1日を足します。22:00〜2:00は120 + 1,440 − 1,320 = 240分、つまり4時間です。終了が0:00の場合は、その日の24:00に終わったものとして扱います。
- 時間軸を、境目となる時刻ごとに区切ります。すべての時間帯の開始と終了を順に並べ、その間の断片ごとに、いくつの時間帯が覆っているかを数えます。
- 1つでも覆っている断片の長さを足します。これが重複を除いた合計時間です。2つ以上が覆っている断片だけを足すと、「重なった時間帯」になります。
- 二重に数えた時間を求めます。k個が覆っている断片は単純合計にk回入っているので、k − 1回分を引く必要があります。これをすべて足したものが「二重に数えた時間」で、単純合計から合計時間を引いた値と等しくなります。
合計時間 = Σ 断片の長さ (k ≥ 1)・二重に数えた時間 = Σ (k − 1) × 断片の長さ = 単純合計 − 合計時間
終了と開始がちょうど接している点には長さがないため、重なりとは見なしません。9:00〜12:00と12:00〜14:00は、まとめた結果では9:00〜14:00の1かたまりに見えますが、二重に数えた時間は0分です。
2つの時間帯の位置関係は13通り
2つの時間帯の位置関係は、Allen(1983)が整理した13通りのどれかになります。互いに対になる6組(前・後、接する・接される、一部重なる・重なられる、同時開始で短い・同時開始で長い、内側に含まれる・含む、同時終了で短い・同時終了で長い)と、「同じ」の1つです。W3Cの時間オントロジーもこの13通りを定義し、いくつかをまとめたintervalIn・intervalDisjointも加えています。対になる関係は2つの時間帯の名前を入れ替えただけで結果が同じなので、下の表ではA = 9:00〜12:00にBを加える7通りだけを示します。
| 関係 | B | 二重に数えた時間 | 合計時間 | |
|---|---|---|---|---|
| 離れている | 13:00〜14:00 | 0分 | 4時間 | 入れてみる |
| 接している | 12:00〜14:00 | 0分 | 5時間 | 入れてみる |
| 一部が重なる | 11:00〜14:00 | 1時間 | 5時間 | 入れてみる |
| 同時に開始 | 9:00〜10:00 | 1時間 | 3時間 | 入れてみる |
| 内側に含まれる | 10:00〜11:00 | 1時間 | 3時間 | 入れてみる |
| 同時に終了 | 11:00〜12:00 | 1時間 | 3時間 | 入れてみる |
| まったく同じ | 9:00〜12:00 | 3時間 | 3時間 | 入れてみる |
BがAの内側にすっかり収まる場合は、Bをいくつ足しても合計時間は3時間のままです。同じ記録を2回入れた「まったく同じ」では、単純合計の6時間から3時間分がまるごと引かれます。
3つが重なると、二重に数えた時間はさらに長くなります
9:00〜12:00、10:00〜13:00、11:00〜14:00はいずれも3時間なので、単純合計は9時間です。まとめた時間帯は9:00〜14:00の5時間になります。2つ以上が重なった時間帯は10:00〜13:00の3時間ですが、二重に数えた時間は4時間です。11:00〜12:00は3つすべてが覆っていて3回足されているため、2回分を引く必要があるからです。下の表のように断片ごとに分けると違いが見えます。
| 断片 | 覆っている件数 | 単純合計に入った時間 | 引くべき時間 |
|---|---|---|---|
| 9:00〜10:00 | 1 | 1時間 | 0分 |
| 10:00〜11:00 | 2 | 2時間 | 1時間 |
| 11:00〜12:00 | 3 | 3時間 | 2時間 |
| 12:00〜13:00 | 2 | 2時間 | 1時間 |
| 13:00〜14:00 | 1 | 1時間 | 0分 |
| 合計 | 9時間 | 4時間 |
これは包除原理と同じ考え方です。3つの時間帯A・B・Cの和集合は、A + B + Cから2つずつの重なり(A∩B、B∩C、A∩C)を引き、3つすべての重なり(A∩B∩C)をもう一度足した値になります。9 − (2 + 2 + 1) + 1 = 5時間で、同じ答えになります。計算機のタイムラインにある「重なり具合」の行は、この断片ごとの件数を階段の高さで描いたものです。
0時をまたぐ記録と複数日の記録
終了時刻が開始より早いときは、翌日に終わったものとして計算します。22:00〜2:00は特に何も選ばなくても4時間で、長さの欄に「翌日終了」と表示されます。問題になるのは、0時を過ぎてから始まる記録です。同じ夜の1:00〜3:00をそのまま入れると初日の午前1時と解釈され、22:00〜2:00とは重なりません。
| 入力 | 合計時間 | 二重に数えた時間 | |
|---|---|---|---|
| 1日目 22:00〜2:00・2日目 1:00〜3:00 | 5時間 | 1時間 | 入れてみる |
| 1日目 22:00〜2:00・1日目 1:00〜3:00 | 6時間 | 0分 | 入れてみる |
| 9:00〜9:00・24時間で数える | 24時間 | 0分 | 入れてみる |
0時を過ぎてから始まる時間帯があるときは、タイムライン上の「複数日の記録」をオンにして、その時間帯の開始日を2日目に選んでください。開始日は1日目から7日目まで選べるので、数日にまたがる当直やイベントの記録もまとめて合計できます。開始と終了が同じ時刻のときは、0分の記録なのか丸1日なのか分からないため、計算を止めます。24時間の当直のように翌日の同じ時刻に終わった記録なら、その行の「24時間で数える」を押してください。
ExcelやGoogleスプレッドシートで同じ値を求める方法
記録がすでに表になっているなら、開始時刻の順に並べ替えたうえで、「ここまででいちばん遅い終了」を1列に続けて書きます。各行では、その終了より後ろに残る部分だけを新しく足します。A列に開始、B列に終了を入れ、2行目から始めるとすると、式は次のとおりです。
| 列 | 意味 | 2行目 | 3行目以降(下にコピー) |
|---|---|---|---|
| C | 0時をまたぐ終了の補正 | =IF(B2<A2,B2+1,B2) | =IF(B3<A3,B3+1,B3) |
| D | ここまででいちばん遅い終了 | =C2 | =MAX(D2,C3) |
| E | 新しく足す時間 | =C2-A2 | =MAX(0,C3-MAX(A3,D2)) |
E列の合計(SUM)が、重複を除いた合計時間です。Excelは1日を1として扱うので、B + 1は翌日の同じ時刻になります。合計のセルの表示形式を[h]:mmにすると7:30のように時間と分で表示され、合計が24時間を超えても0時に戻りません。計算機の例を入れると次のようになります。
| 行 | A 開始 | B 終了 | D いちばん遅い終了 | E 新しく足す時間 |
|---|---|---|---|---|
| 2 | 9:00 | 12:00 | 12:00 | 3:00 |
| 3 | 11:00 | 14:00 | 14:00 | 2:00 |
| 4 | 13:30 | 15:00 | 15:00 | 1:00 |
| 5 | 16:00 | 17:30 | 17:30 | 1:30 |
| 合計 | 7:30 |
並べ替えを忘れると、前の行の終了が後ろの行より遅くなって結果がずれます。データのメニューでA列の昇順に並べ替えてください。複数の日付にまたがる記録は、A・Bのセルに日付と時刻をあわせて入れれば、C列の補正なしで同じ式で計算できます。
間違えやすい計算
- 最初の開始から最後の終了までを合計時間にする: 9:00〜12:00と13:00〜14:00の合計は4時間です。9:00〜14:00の5時間とすると、記録のない12:00〜13:00まで入ってしまいます。
- 単純合計をそのまま使う: 重なった記録があるのに足すだけでは、実際より長くなります。結果の二重に数えた時間が0分でなければ、まずどの記録が重なっているかを確認してください。
- 接している時間帯を重なりと見なす: 12:00に終わった記録と12:00に始まった記録は、1分も重なっていません。
- 休憩を新しい時間帯として入れる: 9:00〜18:00から昼休みの12:00〜13:00を引こうとして昼休みを1行足すと、かえって重なりになります。9:00〜12:00と13:00〜18:00の2行に分けて入れてください。
- 小数の時間を「時間と分」として読む: 7.5時間は7時間50分ではなく7時間30分です。別の表に移すときは、丸めていない分(450分)を使うほうが安全です。
制限と注意点
- 時刻は1分単位で、時間帯は20件まで入力できます。秒単位の記録は分に丸めて入れてください。
- 1つの時間帯は24時間以内です。それより長い記録は日付で分けて2行にしてください。開始日は7日目までです。
- 1日は常に24時間として扱います。サマータイムが切り替わる日や、タイムゾーンの異なる記録は、同じタイムゾーンに直してから入れてください。
- この値は入力した時間帯の長さにすぎず、労働時間や休憩時間の扱い、給与・料金の算定基準ではありません。そのような計算には、該当する規定の基準を別途確認してください。
- 入力した内容はこのブラウザー内だけで計算し、サーバーには送信しません。「リンクをコピー」を押したときだけ、時間帯がURLに含まれます。
出典
- 01Allen, J. F. (1983). Maintaining knowledge about temporal intervals. Communications of the ACM, 26(11), 832–8432つの時間区間の関係13通り(前・接する・重なる・開始・含まれる・終了・同じと、その逆)
- 02W3C Time Ontology in OWL, 3.1 Topological Temporal RelationsCandidate Recommendation Draft(2022-11-15)。Allenの13通りの区間関係をintervalMeets、intervalOverlapsなどとして定義
- 03Microsoft サポート: 日付または時刻として数値の書式を設定する経過時間(時間)の表示形式 [h]:mm
- 04NIST SP 811, Chapter 5: Units Outside the SITable 6: 1分 = 60秒、1時間 = 60分、1日 = 24時間
- 05WHATWG HTML Standard: Time state (type=time)入力値は24時間制の「時:分」の文字列。画面上の表記は端末の設定に従うことがある
よくある質問
9:00〜12:00と11:00〜14:00は合計で何時間ですか?
同じ日の記録なら、重なりを除いた合計時間は5時間です。2つをそのまま足した単純合計は6時間で、二重に数えた11:00〜12:00の1時間を引きます。
二重に数えた時間と、重なった時間帯の違いは何ですか?
重なった時間帯は2つ以上が覆っている時間の長さで、二重に数えた時間は単純合計から引くべき時間です。9:00〜12:00・10:00〜13:00・11:00〜14:00では重なった時間帯は3時間ですが、11:00〜12:00を3回足しているため、二重に数えた時間は4時間になります。
12時に終わる時間帯と12時に始まる時間帯は重なりますか?
重なりません。接している時刻には長さがないため、9:00〜12:00と12:00〜14:00は合計5時間、二重に数えた時間は0分です。まとめた結果では9:00〜14:00の1かたまりに見えます。
夜の22:00から翌2:00まではどう入れますか?
そのまま22:00と2:00を入れてください。終了が開始より早いと翌日に終わったものとして、4時間と計算します。同じ夜の0時を過ぎてから始まる1:00〜3:00のような記録は、「複数日の記録」をオンにして開始日を2日目にします。
開始と終了が同じ9:00〜9:00は24時間になりますか?
そのままでは計算しません。0分の記録なのか丸1日なのか判断できないためです。翌日の同じ時刻に終わった記録なら、その行に表示される「24時間で数える」を押してください。
時間帯の間の空き時間も合計に含まれますか?
含まれません。9:00〜12:00と13:00〜14:00の合計は4時間で、12:00〜13:00の1時間は「空き時間」の欄に別に表示されます。最初の開始から最後の終了までの長さは「最初〜最後」の欄で確認できます。
Excelでも重なりを除いて合計できますか?
開始時刻の順に並べ替え、「ここまででいちばん遅い終了」をMAXで続けて書きます。各行では、その終了を超える部分だけをMAX(0, 終了 − MAX(開始, 前の行のいちばん遅い終了))で足せば求められます。合計のセルは[h]:mm形式で表示してください。
時間帯は何件まで入れられますか?入力内容は保存されますか?
20件まで入力できます。入力内容はブラウザー内だけで計算し、サーバーには送信しません。リンクをコピーしたときだけ、時間帯がURLに含まれます。