シリアル値は、Excelが日付や時刻を管理するために使っている数値です。その実態は単なる数字なのですが、1900/1/1からの経過日数を表しています。
日付・時刻 | 対応するシリアル値 |
---|---|
1900/1/1 0:00:00 | 1 |
1900/1/1 12:00:00 | 1.5 |
1901/1/1 0:00:00 | 367 |
2005/4/10 10:30:35 | 38452.4379050926 |
Excel上に日付や時刻を入力した際、内部的には実はこのシリアル値が記録されています。それは以下の操作を行ったときに分かります。
このように「日付」や「時刻」の実態が「シリアル値」であることが分かります。
Excelの日付や時刻は単なる数値で、書式つまり見た目のデザイン調整によって人間にとって分かりやすいものに変えられているのです。
日付や時刻を「シリアル値」という単なる数値で表現しておけば、足し算や引き算を行って、簡単に日付を使った計算が行なえます。
またその日が何曜日であるかや、うるう年であるかどうかといったことも、特殊な計算で求められます。
計算がしやすいので、シリアル値はExcelにとって都合が良いのです。
Excelの日付は、以下のルールで求められます。
日付 | シリアル値 |
---|---|
1900/1/1 | 1 |
1900/1/2 | 2 |
1901/1/3 | 3 |
: | : |
2014/6/23 | 41,813 |
Excel内で行われている、日付を使った計算の例を示します。
日付をシリアル値を使って表現してみます。
例えば 2005/5/10
と 2005/4/10
をそれぞれシリアル値に換算すると、38,482
と 38,452
というふうに表されます。
2つの日付の差が何日かを計算したい場合、その2つのシリアル値を単純に引き算すれば求められます。
この例では、 38,482 - 38,452 = 30 なので、2005/5/10
と 2005/4/10
の間には30日間の差があることが分かります。
このように日付を足し算・引き算することで、日付を増減させたり、2つの日付間の日数を求めたりできます。
日付だけでなく、時刻もシリアル値で表せます。
実はシリアル値には少数点以下の値も存在しており、時刻はその小数部分に対応しています。(一方、整数部分が日付と対応しているのは先に述べたとおりです)
つまり「38452.4379050926」のように整数と少数を組み合わせれば、日付と時刻を一度に表すこともできます。
38452.4379050926 ↑ ↑ 日付 時刻
日付と時刻 | シリアル値 | |
---|---|---|
2005/4/10 10:30:35 | ←→ | 38452.4379050926 |
上の例のシリアル値では、 38452 の部分が日付を、.4379050926 の部分が時刻を表しています。
Excelの時刻は、以下のルールで求められます。
時刻 | シリアル値 |
---|---|
00:00:00 | 0 |
00:00:01 | 0.0000115740740740741 |
00:00:02 | 0.0000231481481481481 |
00:00:03 | 0.0000347222222222222 |
: | : |
06:00:00 | 0.25 |
: | : |
12:00:00 | 0.5 |
: | : |
23:59:59 | 0.999988425925926 |
24:00:00 | 1.0 |
日付に関しては、1日がシリアル値の「1」に相当するので、必要な日数分だけ足し算・引き算をすることで操作できます。
また2つの日付を単純に引き算すれば差が何日であるかを求められます。
例えば、今日から3日後の日付は、以下のような計算で求められます。
=TODAY() + 3
時刻に関しては、1秒がシリアル値の「1/86400」に相当するので、必要な秒数に「1/86400」を掛け算することで操作できます。
例えば、今から5時間後の時刻は以下のような計算で求められます。(計算後にシリアル値が表示される場合は、「右クリック」→「セルの書式設定」などで時刻タイプの書式を手動で設定する必要があるかもしれません)
=NOW() + ( 5 * 60 * 60 / 86400 )