Excelで日付や時間を計算していると、
「なぜか時間が小数で表示された」
「日付の引き算をしたら変な数字になった」
「24時間を超えたら表示がおかしくなった」
といった経験はありませんか。
こうした現象の原因は、Excelが日付や時間を「シリアル値」という数値で管理しているためです。
シリアル値の仕組みを知らなくてもExcelは使えますが、勤怠管理やスケジュール管理、売上集計などで時間計算を行う場合は理解しておくとトラブルを大幅に減らせます。
この記事では、Excelのシリアル値の基本から時間計算でズレる原因、実務で役立つ確認方法までわかりやすく解説します。
目次
- ✅ Excelのシリアル値とは何か
- ・シリアル値の基本的な考え方
- ・時間もシリアル値で管理されている
- ✅ Excelでシリアル値を確認する方法
- ・セルの表示形式を標準に変更する
- ・時間も小数として確認できる
- ✅ シリアル値が原因で時間計算がズレる理由
- ・計算結果が小数になる
- ・24時間を超えるとリセットされる
- ・時間の引き算でマイナスになる
- ✅ シリアル値を理解すると便利な実務活用例
- ・日数計算
- ・時間を分に変換する
- ・時間を時単位で集計する
- ✅ VBAでもシリアル値を理解しておくと役立つ
- ✅ シリアル値を扱うときの注意点
- ・文字列の日付は計算できない
- ・表示形式と実際の値は違う
- ・24時間以上の集計は表示形式を変更する
- ✅ まとめ:Excelのシリアル値を理解して時間計算のミスを防ごう
✅ Excelのシリアル値とは何か
Excelで日付や時間を扱う際、多くの人は「日付は文字として保存されている」と思いがちです。しかし実際には違います。
Excel内部では日付や時間を数値として管理しています。
この仕組みを理解していないと、
- 日付計算がうまくいかない
- 時間の引き算でエラーになる
- 集計結果がおかしくなる
といった問題が発生します。
まずはシリアル値の基本から確認していきましょう。
・シリアル値の基本的な考え方
Excelでは1900年1月1日を「1」として日付を管理しています。
例えば次のようになります。
| 日付 | シリアル値 |
|---|---|
| 1900/1/1 | 1 |
| 1900/1/2 | 2 |
| 1900/1/3 | 3 |
つまり1日経過するごとに数値が1ずつ増えていきます。
例えば2025年1月1日は約45658という数値として保存されています。
私たちが見ている日付表示は、単なる表示形式に過ぎません。
・時間もシリアル値で管理されている
時間は1日を1として扱います。
| 時刻 | シリアル値 |
|---|---|
| 6:00 | 0.25 |
| 12:00 | 0.5 |
| 18:00 | 0.75 |
| 24:00 | 1 |
つまり、
- 1時間=1/24
- 30分=1/48
- 1分=1/1440
として保存されています。
そのため時間計算も実際には小数計算で処理されています。
✅ Excelでシリアル値を確認する方法
普段は日付や時刻として表示されているため、シリアル値を意識する機会はあまりありません。
しかし計算結果がおかしいときは、シリアル値を確認すると原因が見つかることがあります。
・セルの表示形式を標準に変更する
最も簡単な方法です。
- 日付が入力されたセルを選択
- 「ホーム」タブを開く
- 表示形式を「標準」に変更
すると日付が数値として表示されます。
例えば、
2025/01/01
が
45658
のように表示されます。
・時間も小数として確認できる
例えばセルに
9:00
が入力されている場合、標準形式に変更すると
0.375
と表示されます。
これは24時間のうち9時間分を意味しています。
時間計算で小数が表示される場合は、表示形式が変更されてしまっている可能性があります。
✅ シリアル値が原因で時間計算がズレる理由
時間計算でトラブルが起きる多くの原因は、Excel内部のシリアル値の仕組みにあります。
実務では特に勤怠表や作業時間集計で発生しやすいため注意が必要です。
・計算結果が小数になる
例えば、
開始時刻:9:00
終了時刻:18:00
として
"=B2-A2"
を計算すると、本来は9時間です。
しかし表示形式が標準になっていると、
0.375
と表示されます。
これは9時間を1日の割合で表した数値です。
計算自体は正しく行われています。
・24時間を超えるとリセットされる
例えば次の式を入力します。
"=12:00+18:00"
計算結果は30時間ですが、通常の時刻表示では
6:00
になります。
これは24時間で1日として扱われるためです。
24時間以上を表示したい場合は、
"[h]:mm"
の表示形式を使用します。
・時間の引き算でマイナスになる
例えば、
開始:18:00
終了:9:00
の場合、
"=B2-A2"
はマイナス値になります。
Excelは標準設定では負の時間を表示できません。
その結果、
#####(シャープ)
が表示されることがあります。
夜勤やシフト管理では特に注意が必要です。
✅ シリアル値を理解すると便利な実務活用例
シリアル値の仕組みを理解すると、単なる日付計算だけでなく高度な集計にも応用できます。
ここでは代表的な活用例を紹介します。
・日数計算
開始日と終了日の差を求める場合は、
"=B2-A2"
だけで計算できます。
これはシリアル値同士の引き算だからです。
例えば、
2025/1/1
から
2025/1/31
までなら、
30
が返されます。
👉 シリアル値を理解すると日付の引き算は簡単にできますが、実務では「〇日後」「経過月数」「満年齢」などを求めるケースも多くあります。日付計算を体系的に学びたい方は、【Excel】日付計算の完全ガイド|日数・月数・年数の求め方まとめもぜひ参考にしてください。
・時間を分に変換する
勤務時間を分単位で管理したい場合は、
"=A2*1440"
を使用します。
1440は1日の分数です。
例えば、
1:30
なら
90
になります。
👉 シリアル値を理解すると時間を分へ変換できますが、実務では集計後の分数を再び「1:30」「2:15」のような時間表示に戻したい場面もあります。そんなときは、【Excel】分を時間表示に変換する方法|「90分→1:30」を自動化する方法もあわせてご覧ください。
・時間を時単位で集計する
時間数に変換したい場合は、
"=A2*24"
を使用します。
例えば、
8:30
なら
8.5
として扱えます。
工数管理や作業時間集計でよく利用されます。
✅ VBAでもシリアル値を理解しておくと役立つ
Excel VBAでも日付や時間は基本的にシリアル値で管理されています。
そのため、
- 日付比較
- 勤怠集計
- スケジュール管理
- CSV出力
などを自動化する際には重要な知識になります。
例えばVBAでセルの値を取得すると、
2025/01/01
ではなく
45658
という数値として扱われるケースがあります。
日付処理を行う機会が多い場合は、VBAの日付型やFormat関数についても理解しておくと、より安全なマクロを作成できるようになります。
実務のマクロでは、取得した日付や時刻をそのまま出力するのではなく、「2025/01/01」や「09:30」のように整形して使用するケースがほとんどです。シリアル値と表示形式の関係をさらに深く理解したい方は、【VBA】Format関数の使い方|日時・桁数・0埋め・Nowの実務活用まとめもぜひご覧ください。
✅ シリアル値を扱うときの注意点
シリアル値は便利ですが、いくつか注意点もあります。
ここを理解しておかないと集計ミスにつながります。
・文字列の日付は計算できない
見た目が日付でも文字列として保存されている場合があります。
例えば、
2025/01/01
が左寄せになっている場合は要注意です。
シリアル値として認識されていないため計算できません。
・表示形式と実際の値は違う
Excelでは表示形式だけ変更できます。
例えば、
45658
という数値に日付形式を適用すると
2025/01/01
になります。
見た目だけで判断すると誤解しやすいため注意しましょう。
・24時間以上の集計は表示形式を変更する
勤務時間集計では頻繁に発生します。
通常の時刻形式では正しい結果が見えないため、
"[h]:mm"
形式を利用するのがおすすめです。
👉 勤怠管理や残業時間の集計では、24時間を超えた時間を扱うケースが少なくありません。通常の時刻表示では正しい結果が見えなくなるため、【Excel】24時間以上を正しく表示する方法|「25:00」表示の実務テクニックもあわせて確認しておきましょう。
✅ まとめ:Excelのシリアル値を理解して時間計算のミスを防ごう
Excelのシリアル値は、日付や時間を数値として管理する仕組みです。
この記事のポイントを振り返ります。
- Excelの日付はシリアル値として保存されている
- 時間は1日を1とした小数で管理されている
- 日付計算や時間計算はシリアル値同士の演算
- 小数表示や24時間超えの問題はシリアル値が原因
- 表示形式を変更すると内部値を確認できる
- VBAでもシリアル値の理解は重要
シリアル値の仕組みを理解すると、日付や時間に関するトラブルの原因が見つけやすくなります。勤怠管理やスケジュール管理、工数集計などを正しく行うためにも、ぜひ基本知識として身につけておきましょう。