日時と時間
x月x日xx時xx分から
o月o日oo時oo分までの時間の「量」を計算したい時について
下の画像のように
セルA3を
=A1-A2
という数式にして間の時間を出そうとすると
こんな風になります。
「4時間」という時間を出したいのに
0日なんてよくわからない日時になってしまっています。
上の画像ではA列の表示形式は「日時」です。
B列にA列の値を表示形式「標準」にしたものを入れるとこうなります。
確かにB2-B3 = B4になっています。
既定では、Windows 版 Excel では、
1900 年日付システムを使っていて
1900/1/1
は表示形式「標準」では、1になります。
1900/1/2は、2
1900/1/3は、3
1900/1/4は、4
以上のように
1日という時間の「量」は1です。
よって
1日 = 1
24時間 = 1
1時間 = 1/24
60分 = 1/24
1分 = 1/24/60
1秒 = 1/24/60/60
で表されます。
二番目の画像のセルB4の単位は「日」で
0.166666667日ということになります。
0.166666667日は
0.166666667 * 24 時間
0.166666667 * 24 * 60 分間
0.166666667 * 24 * 60 * 60 秒間
なので
x月x日xx時xx分から
o月o日oo時oo分までの時間の「量」を計算したい時は
時間単位で表したいなら
2つの日時の差に「* 24」をします。
分単位だった「* 24 * 60」、
秒単位だったら「* 24 * 60 * 60」をします。
下の画像は
C列にそれぞれの単位に計算したものを追加。
続いて、
切りがよくない数字のとき
例えば次のような場合
切りがよい数字は
「分」だけ「秒」だけで表しても分かりやすいです。
しかし、上のような数字の場合
切捨てや四捨五入をしないなら、
x日xx時間xx分xx秒のように表した方が
分かりやすいです。
例えば
セルA2からセルA3までの期間を出したいときは
次の数式を使います。(A2>A3)
=DATEDIF(A3,A2,"D") & "日" & HOUR(A2-A3) & "時間" & MINUTE(A2-A3) & "分" & SECOND(A2-A3) & "秒"
次の画像のセルC4にこの数式が入力してあります。
DATEDIF(開始日,終了日,単位)は、
開始日から終了日までの時間を返します。
日単位なら、単位のところは"D"。
なぜ、日数だけDAY関数ではないかというと
DAY関数は1 ~ 31までしか返さないからです。
例えば
(2010/3/3)から(2010/1/1)を引いたものを
DAY関数に入れると1になります。
この期間の日数は、31 + 27 + 3 = 61日です。
どうも、日付・時刻の関数を使っていると、
日時を表す「時間」と
時の長さを表す「時間」が
「時間」という同一の言葉を介して
頭の中でその区別が曖昧になるように感じます。
(私だけでしょうか…)
各ワークシート関数はExcelのヘルプのそれぞれの頁、
日付については「日付と時刻の処理について」の頁を参照。
| 固定リンク
この記事へのコメントは終了しました。

コメント