エクセルのシリアル値とは?それを使うメリットは?

エクセルでは日付を「シリアル値」という数字で管理します。

シリアル値とは

シリアル値とは、
日付を数値に置き換えたもので、

1900年1月1日を「1」として、
そこからの経過日数を数値化したものです。

例えば、

日付   シリアル値
1900年1月1日 1
1900年1月2日 2
1900年1月3日 3
...

というような感じです。

最近の日付だと、

日付   シリアル値
2016年2月28日 42428
2016年2月29日 42429
2016年3月1日 42430
2016年3月2日 42431
...

という感じになります。

ちょうど、直線上に、
日付が1列に並んでいるイメージをしてもらうと、
わかりやすいと思います。

serial_1

シリアル値を使うと何が便利なのか?

いくつか便利になる点はあるのですが、

シリアル値を使う最大のメリットは
ある日付の「1日前」「1日後」の計算が簡単
というところです。

シリアル値がない状態で、
「1日前の日付」とか「1日後の日付」を計算するのは、
かなり大変です。

例えば、
シリアル値の仕組みがない場合、
一番大変なのが、次の計算。

問:2000年2月28日の次の日は?

シリアル値なしに計算しようと思うと、

次のようなロジックを
自力で組み立てないといけません

  1. 2月は普通は28日までだから、翌日は3月1日のはず。
  2. でも、うるう年の場合は、2月28日の次の日は2月29日になるから
    まずは、うるう年かどうかを調べよう。
  3. 4年に1回はうるう年だから、うるう年か?
  4. 例外的に100年に1回はうるう年じゃないから、うるう年じゃないか・・・。
  5. あ。例外の例外として400年に1回はうるう年だから、やっぱりうるう年だ。
  6. ということで、2000年2月28日の次の日は2000年2月29日だ!

結局、

  • 月によって1ヶ月が何日あるかが変わるので、そこの判定が必要
  • 2月は、うるう年かどうかによって、1ヶ月が何日あるかが変わるので、
    うるう年かどうかの判定が必要

なので、
真っ正面から計算式を組もうとすると、
非常に大変です。
(if関数をグチャグチャに使いまくることになります)

でも、
エクセルの「シリアル値」の仕組みを使うと、
こういう面倒な判定を全部エクセルが勝手にやってくれるわけです。

結果、
面倒くさいところは、全部エクセルに押しつけることができて、

あ、2000年2月28日の翌日ね。
2000年2月28日のシリアル値に1足せばOK!

と、人間のほうは手抜きができるわけです。

前日・翌日の計算をするならばシリアル値を使おう

ということで、
シリアル値のすごいところは、

どんな日付であっても、
その翌日の日付は、
「1を足す」だけで、計算でできてしまう、
というところです。

当然、
「30日後」「45日後」
「1日前」「30日前」「45日前」
といった計算も、

足し算・引き算だけで計算できます。

おすすめ記事