EXCELでの日付や時間計算は、単純にセルの値を足し算引き算すれば解決します。でも日付をまたいだり、結果をYYYY/MM/DD HH:MM:SS形式で表示させようとするとやっかいです。
ここで紹介する方法を使えば、時差や勤務時間の計算に使えます。知っていると応用が効きいて便利です。
時間計算はDATE関数とTIME関数で解決できる
EXCELでは、日付や時間をシリアル値と呼ばれる数字で管理しています。シリアル値とは、1900年1月1日0時0分からの経過秒のことです。
簡単に言えば、n分後やn日前というのはすべて秒に換算して「n秒後」「n秒前」を計算しているようなものです。
日付や時間の計算はすべてシリアル値にする
日付や時刻をシリアル値に変換するには、DATE関数とTIME関数を使います。
=DATE(年, 月, 日)
=TIME(時, 分, 秒)
ここで注意が必要です。DATEには時刻の、TIMEには日付の概念がありません。つまりこうなります。
=DATE(2015, 1, 1) → 2015/1/1 00:00:00
=TIME(23, 10, 20) → 1900/1/1 23:10:20
なので「2015/2/3 15:20:00の2時間15分後」という計算には使えません。そこでDATE関数とTIME関数の両方を使うことにします。
=DATE(2015, 1, 1)+TIME(23, 10, 20) → 2015/1/1 23:10:20
これで「2015/1/1 23:10:20のシリアル値」を求めることができます。次に計算したいn時間やn分もシリアル値にしてしまいます。
=TIME(7, 0, 0) → 7時間
=TIME(0, 30, 0) → 30分
=TIME(0, 30, 25) → 25秒
さっきのDATE関数とTIME関数で求めたシリアル値に足したり引いたりすればn時間後やn分前を求めることができます。
=DATE(2015, 1, 1)+TIME(23, 10, 20)+TIME(7, 0, 0)
→ 2015/1/1 23:10:20 の 7時間後 2015/1/2 6:10
=DATE(2015, 1, 1)+TIME(23, 10, 20)-TIME(0, 30, 0)
→ 2015/1/1 23:10:20 の 30分前 2015/1/1 22:40
=DATE(2015, 1, 1)+TIME(23, 10, 20)-TIME(0, 0, 25)
→ 2015/1/1 23:10:20 の 25秒前 2015/1/1 23:09
簡単でしょ?