目次
Excel形式の日時とは
Excel形式の日時とは、Excelによる日時の表現形式のことだ。
ここでは下図のような形式のセル値のことを指している。
Excelは、日時を「シリアル値」という数値で管理している。
日時が格納されたセルの書式を「日付」や「時刻」に設定すると、規定の日時フォーマットに従って出力される仕組みだ。
シリアル値とは
シリアル値とは、1900年1月1日を1として、以後24時間経過するごとに1を加えていく方法で日時を表現する方式だ。
一日に満たない時間単位は、小数を使って表現する。
マイクロソフト独自の日時表現方式で、Excelで採用されている。
Unix時間とは
Unix時間とは、1970年1月1日の0時0分0秒からの経過秒数で表した時間表記のことだ。
時刻を表す場合には、Unix時刻ともいう。
Unix系のシステムで、広く採用されている表現方式だ。
シリアル値をUnix時間に変換するには
結論を先に書いてしまおう。
セルA1にExcel形式の日時が入力されている場合は、以下のような式でUnix時間を取得することができる。
=((A1 – 25569) * 86400) – 32400
この式を、セルB1に入力した例は、以下の通りとなる。
式の意味について
以下は、式の意味が知りたい人向けの解説となる。
25569とは
これは、1970年1月1日 0時0分0秒のシリアル値を表している。
すなわち、(A1 – 25569)が表すのは、1970年1月1日 0時0分0秒から当該日時までの日数となる。
一日に満たない端数は、小数で表されている。
86400とは
86400とは、60 × 60 × 24を計算した値だ。
すなわち、一日の秒数を表している。
したがって、((A1 – 25569) * 86400)が表すのは、 1970年1月1日 0時0分0秒から当該日時までの秒数となる。
定義より、この値がUnix時間となるが、日本国内で使用する場合には、さらに時差の考慮が必要となる。
32400とは
32400とは、 60 × 60 × 9を計算した値だ。
すなわち、日本時間とグリニッジ標準時との時差を秒で表した値となる。
したがって、((A1 – 25569) * 86400) – 32400が表すのは、日本時間に補正したUnix時間ということになる。
まとめ
A1セルにExcel形式の日時が格納されている場合、以下のような式を使ってUnix時間を求めることができる。
=((A1 – 25569) * 86400) – 32400