LWP | Excelの日付は、なぜ「数値」なのか
Excelの日付は、なぜ「数値」なのか
~暦・シリアル値・時点・期間を「時間軸」でつなげて考える~
Copyright © 2026 LWP 山中 一弘
本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。
記事要約
Excelのセルに見える「2026/8/28」は、内部では連続した数値として扱われます。整数部分が日付、小数部分が時刻を表すため、日付の差や時刻の計算を通常の数値演算として処理できます。
この仕組みはExcelだけの特殊な発想ではありません。ユリウス日、Unix Time、Windows FILETIMEなども、基準点からの経過量で時間を表します。ただし、基準点や単位、型はそれぞれ異なります。表示する暦と、計算に使う内部表現を分けて理解することが、日付処理を正しく設計する第一歩です。
1 Excelの日付は、見た目と中身が違う
日付を入力したセルは、画面上では年月日に見えます。しかしExcel内部では、日付と時刻を連続した数値、すなわちシリアル値として管理しています。日付が1日進むと値が1増え、12時は1日の半分なので小数部分が0.5になります。

図1|2026年8月28日は、Excelの1900日付システムではシリアル値46262として扱われます。
2 暦は、時間軸上の位置に付けた名前
私たちが読む「2026年8月28日」は、時間そのものではなく、連続した時間軸上の一点へ暦の規則で付けた名前です。暦の規則が変われば、同じ時間軸上の位置でも年月日の表し方が変わることがあります。
ユリウス暦とグレゴリオ暦では閏年の規則が異なります。グレゴリオ暦では、4で割り切れる年を原則として閏年としつつ、100で割り切れて400で割り切れない年を平年にします。そのため1900年は平年です。

図2|暦は人が決めた規則であり、時間軸そのものとは分けて考えます。
3 ユリウス日とExcelシリアル値は同じものではない
ユリウス暦は年月日を決める暦ですが、ユリウス日は基準点から日を連続番号で数える方式です。名前は似ていますが、役割が違います。
Excelシリアル値も日を連続値で扱いますが、ユリウス日や修正ユリウス日そのものではありません。基準点と仕様は別です。共通しているのは、「基準を決め、そこからの経過日数を数える」という設計思想です。

図3|同じ連続日数方式の仲間でも、基準点と正式な定義はそれぞれ異なります。
4 1日を1とすると、日付と時刻を計算できる
Excelでは1日を1として扱います。したがって、2つの日付を引くと、その間の日数が得られます。時刻は1日の小数部分で、12時間は0.5、6時間は0.25、1時間は1/24です。
たとえば45000.5は、整数部分45000が日付、小数部分0.5が正午を表します。表示形式を変更しても、内部の値そのものが別の値へ変わるわけではありません。

図4|日付差や時刻計算を数値演算として行えるのは、1日=1という尺度があるためです。
5 Excelには1900年2月29日が残っている
グレゴリオ暦に1900年2月29日は存在しません。それでもExcelの1900日付システムでは、シリアル値60に架空の1900年2月29日が割り当てられています。
これは、初期の表計算ソフトLotus 1-2-3との互換性を保つために受け継がれた歴史的仕様です。1900年3月1日以降のシリアル値を変えると、既存ファイル、数式、VBA、外部連携へ大きな影響が及ぶため、現在も維持されています。

図5|数学上の正しさだけでなく、長年の互換性もシステム仕様を左右します。
6 互換性は「何を同じにするか」で決まる
Google Sheetsは、通常利用する日付範囲でExcelと値を合わせつつ、存在しない1900年2月29日を同じ方法で挿入しません。1900年2月28日は、Excelでは59、Google Sheetsでは60になりますが、1900年3月1日以降は両者とも61から一致します。
新しいシステムでは、過去の誤りを内部モデルへ取り込むのではなく、実務上必要な範囲だけ互換にする選択もできます。互換性は「すべてを同じにすること」ではなく、影響範囲を見極める設計判断です。

図6|歴史的仕様を維持するコストと、変更による影響を比較して互換範囲を決めます。
7 「時点」と「期間」は別物
「2026年8月28日10時」は時間軸上の一点であり、時点です。一方、「3日5時間30分」は2つの時点の間隔であり、期間です。日付同士を引いた結果は、別の日付ではなく期間として考える必要があります。
Excelワークシートは日付・時刻・期間を数値として扱いますが、Power Query Mはdate、time、datetime、datetimezone、durationを型で区別します。型を分けることで、値の役割を明確にし、意図しない計算を防ぎやすくなります。

図7|同じ数値に見えても、時間軸上の位置と、時間の長さは意味が異なります。
8 Durationに「1か月」が単純にはない理由
1日は24時間、1時間は60分なので固定長として扱えます。しかし1か月は28日、29日、30日、31日のいずれにもなり、1年も365日または366日です。月や年の長さは暦に依存します。
そのため「8月1日の1か月後」と「8月1日の30日後」は、同じ結果になる場合があっても同じ概念ではありません。期間計算では、固定された長さを足すのか、暦の規則で次の月や年を求めるのかを先に決めます。

図8|CalendarとDurationを区別すると、月末や閏年を含む計算の設計が明確になります。
9 Excelの外にもある「基準点+経過量」
Unix Timeは1970年1月1日0時UTCからの秒数、Windows FILETIMEは1601年1月1日0時UTCからの100ナノ秒単位の数を使います。基準点と単位は違っても、時間を連続した数値へ変換する点はExcelと共通です。
2038年問題は、32bit符号付き整数でUnix Timeを表した場合の上限に由来します。これは暦の問題ではなく、経過秒数を格納するデータ型の範囲の問題です。

図9|時刻表現を比較するときは、基準点、単位、データ型、対応範囲を確認します。
10 日付表現は用途に合わせて設計される
SQLiteは日付時刻をTEXT、REAL、INTEGERなどで保存でき、用途に応じてISO 8601形式、Julian Day、Unix timestampを選べます。古い業務システムや汎用機では、YYYYMMDD、YYYYDDD、独自の基準日からの日数といった形式も使われます。
方式が違っても、比較や差分計算をしやすくするために、時間を基準点と経過量へ変換する考え方は広く使われています。大切なのは、見た目の形式だけでなく、内部表現が何を意味するかを確かめることです。

図10|日付表現に唯一の正解はなく、用途に応じて基準点、単位、型、表示形式が選ばれます。
まとめ
Excelの日付を理解する鍵は、表示と内部表現を分けることです。人間は暦で年月日を読み、コンピュータは基準点からの経過量として時間を計算します。
Excelでは1日を1とし、整数部分で日付、小数部分で時刻を表します。この単純な仕組みにより、比較、差分、並べ替え、範囲検索を数値演算として処理できます。一方で、1900年問題のように、正しさより互換性が優先された歴史的仕様もあります。
さらに、時点と期間、固定長と暦依存、表示形式と保存形式を区別すれば、ExcelだけでなくPower Query、データベース、外部システムの日付処理も同じ視点で整理できます。
出典メモ
記事原案:『Excelの日付はなぜ数値なのか ― 暦・ユリウス日・シリアル値・1900年問題・Unix Time・Durationまで』
掛け合いインフォグラフィック:シャケもん、コイ丸先輩、アユさん、ココさん(全10点)
Microsoft Support「DATE function」:Excelの1900日付システムと日付計算の基本を確認
Google Docs Editors Help「DATE」:Google Sheetsの日付値の基準と1900年付近の扱いを確認
Microsoft Learn「Values, types, and expressions」:Power Query Mのdate、time、datetime、datetimezone、duration型を確認
U.S. Naval Observatory「Julian Date」:ユリウス日の基準と連続日番号としての定義を確認
