シリアル値
提供: ExcelPedia

概要
シリアル値とはExcelにおける、日付や時刻を表現する数値。整数部分を日付、小数部分を時刻に割り当てることによって、一つの数値で日付と時刻を同時に表現することができる。

日付
日付のシリアル値
1900 年 1 月 1 日 を基点（＝１）として、１日経過ごとに１加算される、日付の連番（serial number）を日付のシリアル値（serial values）と表現する。Windows版の規定の設定では 1900 年 1 月 1 日 を 数値の１として表現し、例えば、2009 年 11 月 10 日は 数値の 40,127 で表現される。これは1900 年 1 月 1日 を１日目としたときに 40,127 日目であることを表現している。

扱える日付の範囲
次のような範囲で扱うことが可能。
日付シリアル値の範囲
A1B

C

日付・時刻表示形式

数値表示形式

2

日付下限値

1900/1/1

13

日付上限値

9999/12/312958465

DE456
表のセル部分のみコピーし、ワークシートに貼り付けて、試すことが出来ます。
Internet Explorer 普通に貼り付け / FireFox [ 形式を選択して貼り付け ] - [ テキスト ]値と表示の関係「1900 年 1 月 1 日が表示されているセルには 1 というシリアル値が入力されている」と言うような、セルに返っている数値そのものををシリアル値と表現するのは厳密には正しくない。
セルに返っている値自体は数値である。

シリアル値はエクセルの内部で「 日付 に対して割り当てられている 連番 」である。

書式設定の表示形式はセル及び数式バーへの「数値の表示の仕方」を変更するものである。
つまり、表示が時刻や日付だからと言って、セルに返されている数値が特別な性格の数値に変化するということではない。「数値」と「シリアル値」の二つを「表示形式」が取り持って日付が表示されている。しかしながら、関数のHelpをはじめ、多くの文献では、日付や時刻に関係する数値をシリアル値と表現しているので、混乱を避けるために、以下の解説では日付・時刻に関連する数値のことをシリアル値と呼ぶこととする。

日付システムの問題点
1900年1月1日以前の日付が入力できない
エクセルの仕様として、1899年1月1日 以前の日付を日付として入力することが出来ない。同様に、9999年12月31日より未来の日付も日付として入力できない。これらの仕様外の入力は、文字列として確定される。
また、仕様外の範囲の数値が日付表示形式のセルに返っている場合には、エラー:#######表示となる。
実在しない日付
エクセルの日付システムの中には、実際には存在しない日付、「1900年2月29日」が存在する。グレゴリオ
暦では4で割り切れる年は閏年とする
100で割り切れる年は閏年ではないが、400で割り切れる年は閏年とするという概ね上記のようなルールで閏年を判定している。ここで、1900年は本来閏年ではないが、「エクセルでは」閏年として扱っている。このため、1900年1月1日から起算した場合、1900年3月1日以後の日付連番は実際の日数よりも 1 大きい数値となる。これに対し、Excel VBA? では、平年扱いとなっており、ユーザー定義関数（UDF）?を作成して計算する場合には、この点を考慮して設計する必要がある。
A>0135,8=      #24/5G+(%)$O!"       O   #LF6;J6H:A6I*KD&'.+-$OO !"   O

時刻
時刻のシリアル値
日付が整数の数値として表現されるなら、時刻は 1900 年 1 月 1 日から起算して ｎ 日目から （ｎ + 1）日目 までの途中経過部分と言う意味で、小数値の部分として表現される。
日付と時刻を数値として表現すると、次のような関係になる。
1900 年
1900 年
1900 年1 月 1 日 00:00:00 ＝
1.000
1 月 1 日 12:00:00 ＝
1.500
1 月 2 日 12:00:00 ＝
2.500
・・・
2009 年 11 月 10 日 00:00:00 ＝ 40,127.000
2009 年 11 月 10 日 03:00:00 ＝ 40,127.125

2009 年 11 月 10 日
2009 年 11 月 10 日
2009 年 11 月 10 日

06:00:00
12:00:00
23:59:59＝＝＝40,127.250

40,127.500
40,127.9999884259

また、ある時点から時間が経過した場合は次のように数値が増加する。
「１時間経過」すると「1/24」増加する（1日は24時間）「１分間経過」すると「1/1440」増加する（1日は1440分間）「１秒間経過」すると「1/86400」増加する（1日は86400秒間）

扱える時刻の範囲
次のような範囲で扱うことが可能。
時刻シリアル値の範囲
A
1BC

日付・時刻表示形式

数値表示形式2

時刻下限値

0:00:00

03

時刻上限値

71003183:59:59.9

2958465.99999884

DE456
表のセル部分のみコピーし、ワークシートに貼り付けて、試すことが出来ます。
Internet Explorer 普通に貼り付け / FireFox [ 形式を選択して貼り付け ] - [ テキスト ]値と表示の関係
タテマエ上、シリアル値は「1」からスタートしていることになっているが、24時間未満の時刻計算に対応する為、「０」からスタートする仕様となっている。 0:00 〜 23:59:59.9 （ 0 〜0.999998842592593 ）のシリアル値は、セルの書式設定 の 表示形式 を 日付形式 の「yyyy/m/d h:mm:ss.0」 に設定した場合、日付部分は「1900/1/0」と表示される。
時刻形式で入力された文字列は、入力確定時にシリアル値に基づいて数値に変換される。また、入力された時
刻文字列にもとづいて自動的に表示形式が選択される。入力結果が数値に変換されるので、時刻は計算が可能となる。セルの書式設定の表示形式を時刻カテゴリから選択している場合には、24時間を超える部分については「日付」のシリアル値に繰上げされる形となり、1日未満の時刻部分のみが表示される。（【参考】「24時間以上の時刻表示」）
24時間以上の表示方法を時刻表示形式から選択できないという点は、初心者にはやや不親切な仕様となっている。

時刻計算の問題点
マイナス時刻が表示できないセルにマイナス値が返っている場合は時刻の表示形式を選択している場合、通常 エラー:#######表示となる。これはエクセルの仕様である。エラー表示となっていても、マイナスの数値としては有効なので、計算にはそのまま使用することが出来る。

計算時の誤差時刻（時間）を扱う計算をエクセルで行った場合、次のような場合に、結果が意図しないものとなるときがある。
「日付と時刻を含んだシリアル値からある時刻を加算（減算）したもの」と、「直接入力の日付や時刻」とを比較した場合。
「複数の時刻を加算（減算）したもの」と、「直接入力の時刻」とを比較した場合。
つまり、[計算結果としてのシリアル値] = [定数シリアル値] などのような比較演算を行ったときに、論理的には「等しい」と判断されるべきものが「等しくない」と判断されるケースがある。これは次のようなことが原因となっている。
1. 小数計算に精度の限界がある。
2. 時刻入力によってセルに確定される小数値が概算値である。
3. エクセルが扱うことの出来る数値の有効桁数が 15 桁である。
1.

については浮動小数点演算の誤差?の問題であり、純粋に技術上の問題である。

2. については、エクセルの内部処理の問題である。既出のように、「1時間＝1/24」「1分間＝1/1440」「1秒間＝1/86400」として定義されているが、これらはそれぞれ割り切れない小数となる。
A. 時刻
B. 時刻

T1T3

が時刻が時刻T2T4のの11秒後であるときの 時刻の差 T1秒後であるときの 時刻の差 T3- T2- T4

これら A と B の時刻の差は論理的にはともに 1 秒間であるが、エクセル上で比較すると、「等しくない」と判断されるケースが存在する。 1 / 86400 が割り切れない少数である為に、86400 秒の、時刻間隔の全てを 等差 とすることが出来ない。ゆえに、時刻入力によってセルに保持されるシリアル値は概算値であり、その概算値と、概算値同士の計算結果とを比較しても期待する比較結果を得られないことが発生する。
3.

については、日付と時刻を含むシリアル値同士の演算時に問題となる。次の簡単な例で検証できる。
時刻計算の誤差A
11900/1/1 1:00

2

1900/1/1 2:00

3=A2-A1

41:00

BC

D=A3=A45
6
表のセル部分のみコピーし、ワークシートに貼り付けて、試すことが出来ます。
Internet Explorer 普通に貼り付け / FireFox [ 形式を選択して貼り付け ] - [ テキスト ]E上記のワークシートで、A3の計算結果と、A4の直接入力の時刻とは概念的には同じ時刻となるはずだが、B3セルでの比較演算の結果はFALSE（虚偽）となる。これは、先の 1. 2. の問題もからんでおり、さらに、日付が進んで整数部分の桁が大きくなると演算上の誤差が拡大する。以上の結果から、時間計算においてはあまり高い精度の計算結果を求めることは出来ず、また、計算結果に対して、これら小数誤差?を解消する為の丸め処理が必要になる。
A>C?9B<@,7EMN

24時間以上の時刻表示
結果が24時間以上の時刻となるような時刻計算の場合、セルへの表示が 24時間 で割ったあまりの時刻の表示となる場合がある。これはエクセルが「24時間以上（数値の整数部分）は『日付』、24時間未満（数値の小数部分）を『時刻』として表示」する仕様のためである。この現象はセルの表示上の問題である為、セルの書式設定の表示形式を「シリアル値の日付部分を時刻として表示」するようにユーザー定義することで解決することが出来る。
24時間以上の時間表示の手順（h:mm:ss形式）
1. 表示形式のユーザー定義での方法
1. 対象セルを選択し、メニュー[書式]-[セルの書式設定]-[表示形式]タブ選択
2. [分類]で[ユーザー定義]を選択し、[種類]の欄へ [h]:mm:ss と入力
3. [OK]ボタンクリック。
2. セルへの直接入力による方法
1. 対象セルを選択し、 25:00 などと24時間を越える時刻を入力
2. 25:00:00 と表示されるので、Deleteキー などで値クリア
3. h:mm形式に変更する場合は [セルの書式設定]-[表示形式]-[分類]で[ユーザー定義]を選択し、[種類]の欄を [h]:mm に編集

1904年日付システム
Mac版Excelでは日付システムとして1904年システム（シリアル値１を1904年1月1日とする）を採用している。Win版で互換性を保つため、ブックオプションとして1904年システムを適用することが出来るようになっている。したがって、基本的にはMacユーザーとWindowsユーザーがエクセルブックのやりとりを行う時に使用するオプションである。
Win版のExcelで1904年日付システムを運用した場合、時刻のシリアル値においてマイナス時刻表示をすることができる。 ただし、日付表示においてはエラーにはならないが、不適切な表示となる。 時刻のマイナス表示を目的に1904年日付システムを採用することもあるが、この場合は異なる日付システムのブック間で日付を参照した場合、４年分の差異が発生する点に注意しなければならない。

日付と時刻の関数
関数/日付と時刻の関数
この「シリアル値」はExcelの仕様に関連した書きかけ項目です。この記事を加筆・訂正などして下さる協力者を求めています。
「http://localhost/mwiki/index.php/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E5%80%A4」

より作成

カテゴリ: Excelの仕様
このページの最終更新は 2014年1月10日 (金) 13:11 に行われました。