ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

Excelのシリアル値の計算と活用法

はじめに

Excelは日時をシリアル値で管理しています。本記事ではシリアル値の計算と活用法を解説します。

日付をシリアル値で管理する

Excelは日付をシリアル値という形式で管理しています。

Excel では、日付を計算に使用できるように一連のシリアル番号として保存します。 1900 年 1 月 1 日がシリアル値 1 として保存され、2008 年 1 月 1 日は 1900 年 1 月 1 日から 39,447 日後に当たるので、シリアル値は 39448 になります。 適切な日付を表示するためには、数値形式を変更 (セルを書式設定) する必要があります。

DATE 関数

つまり、Excelの表示が "1900/1/1" になっていたとしても、内部では "1" というシリアル値で管理されています。"1" が入力されたセルの書式設定で表示形式を「日付」にすると "1900/1/1" になるのはこのためです。

シリアル値1の表示形式による違い

1日間は シリアル値で "1" に相当します。つまり、 "1900/1/1"(シリアル値は "1")にシリアル値を "1" 足すということは、翌日である "1900/1/2"(シリアル値は "2")となります。

シリアル値1は1日間相当

時刻もシリアル値で管理する

時刻もシリアル値で表現できます。1日間 = 24時間 = シリアル値は "1" です。時刻は 00:00:00 からの経過時間と考えることができます。そうすると以下のとおり計算できます。
時刻 = 00:00:00からの経過[時間] / 24[時間] = シリアル値
24:00:00 = 24[時間] / 24[時間] = 1
12:00:00 = 12[時間] / 24[時間] = 0.5(0.5日間、つまり半日といえる)
01:00:00 = 1[時間] / 24[時間] = 0.041666...
00:01:00 = 1[分間] / (24 * 60)[分間] = 0.000694...
00:00:01 = 1[秒間] / (24 * 60 * 60)[秒間] = 0.000011...
※時間を計算する際は単位合わせ(時間・分間・秒間)を忘れないでください。

シリアル値を用いた日付や日時の計算例

日付の引き算

日付を引き算することで経過日数が得られる理屈はシリアル値で考えるとわかります。
例えば、"1900/1/31" のセルと "1900/1/1" のセルを引き算すると "30" になります。これは "1900/1/31" がシリアル値では "31" 、"1900/1/1" がシリアル値では "1" であり、その引き算の結果が "30" だからです。

日付の引き算

日付と日数の足し算

"1900/1/1 00:00:00" にシリアル値の "1.5" を足すということは "1.5日間" が経過したということになり、"1900/1/2 12:00:00" になります。

日付と日数の足し算

日時と時間の計算

開始日時と処理時間から終了日時を算出することもできます。以下の例で考えます。

開始日時 処理時間[秒]
2022/06/01 10:00:00 5400

まず、"処理時間[秒]"をシリアル値に変換します。
5400[秒間] / (24 * 60 * 60)[秒間] = 0.0625

シリアル値の計算

そして、開始日時と処理時間[シリアル値]を足し算することで、終了日時を算出できます。5400[秒間] = 90[分間]なので、"2022/06/01 11:30:00" となります。

日時と時間の計算

まとめ

Excelは日時をシリアル値で管理しており、計算(処理)もシリアル値で行われています。Excelで日時の処理に悩んだときはシリアル値で考えてみましょう。