シリアル値
EXCELの日付や時刻はホントは数字って知ってた?
EXCELの内部では、日付や時刻は「シリアル値」という数字で管理されています。
日付のシリアル値
日付のシリアル値は「1900/1/1」を「1」として1日増えるごとに1増えるというからくりです。つまり「1900/1/1」は「1」です。
ちなみに今日「2020/6/21」は、「1900/1/1」から数えて44003日目なので「44003」になりますね。
時刻のシリアル値
時刻のシリアル値は、日付との兼ね合いと合わせるために、24時間を1とした小数で管理されています。例えば「12:00」は1日の2分の1なので「0.5」になりますね。
日付と時刻のシリアル値
日付と時刻のシリアル値は、両者を足すことで表現できます。先程の「2020/6/21」の「12:00」は、両者のシリアル値を足した「44003+0.5」で「44003.5」となります。
シリアル値の確認方法
そもそも、EXCELにとっては日付も時刻も数字です。表示の方法(表示形式)で日付や時刻のように出しているだけなんですね。EXCELは賢いので、セルに日付のような文字列を入れるときちんと日付だと認識して、表示形式を「日付」に設定します。
つまり、シリアル値を確認したい時は、日付を入れたセルの表示形式を「標準」や「文字列」にして、入ってる数字をそのまま表示させればいいということになります。
動画で見てみましょう。
関数を使って確認する
関数を使ってシリアル値を確認することも出来ます。
=VALUE(文字列)
「VALUE関数」を使います。

D3セルに「=VALUE(B3)」を入力すると

D6セルにB6セルの「1900/1/1」も表示させてみましょう。

このように、日付や時刻はシリアル値という数字なので、表示形式を変更することでそれがどんな数字なのか分かります。数式で計算することで、日付の差を計算することも可能です。
おまけ
ちなみに、ややこしい話ですが、Mac版のEXCELはシリアル値の「1」が「1904/1/1」だそうです。。。Mac版で作ったものを、Windows版で開いた場合は自動的にWindows版に変更されるみたいですが、逆のWindows版のものをMac版で開くと変換されないので、日付が全部4年後。。。っていう悲劇が起こる可能性があるので注意して下さい!
この1900年or1904年は、ファイルごとに変更出来ます。
「ファイル」タブ→「オプション」→「詳細設定」→「次のブロックを計算するとき」→「1904年から計算する」にチェック

もう一つ。
EXCEL番のシリアル値には、実際には存在しない「1900/2/29」が1としてカウントされています。まぁあまり無いと思いますが、1900/2/29より前からの日数を計算する場合は、その1日を引いて考える必要があります。
まとめ
「日付入れてたつもりなのに、なんか数字になってる!!」みたいな声がたまに聞こえますが、そもそも日付は数字なので、落ち着いて「表示形式」をチェックしてみましょう(^^)
コメント