うさみ日記

東京都日野市からまいりました宇佐見直人です。ITとかマーケとかの話や、勉強した話なんかをするよ。

エクセルで「08:30-11:30」みたいな時刻から「1.5時間」みたいな値を割り出す方法。

例えばエクセルの一つの列に「08:30-11:30」というようなテキストが入っていて、
その時間の感覚が何時間か自動で表示されるようにしたい。
という要望があったとする。
そんな場合、一個一個手計算するのはとても面倒だし、
関数はなんかよーわからん、という人のための、
一発で表示してくれる方法です。




どうするかというと

1.開始と終了を分ける

right(A1,5)とleft(A1,5)をそれぞれB1とC1のセルに入れて、
終了時刻と開始時刻を分ける。
B1には「11:30」、
C1には「08:30」が入る。
(08:30みたいに入っていない場合はmidとかfindとか使っていい感じに。)

2.終了時刻から開始時刻を引く

D1のセルに「=C1-B1」という式を入れると
「0.125」という数値が出てくる

3.「24」をかけてみる

この「0.125」のままだと何時間かわからないので、
E1のセルに「=D1*24」という式を入れると
「3」という数字が出てくる。
これで「0.125は3時間」ということがわかる。

ご説明

どういう理屈かというと、エクセルの「日付時刻」の裏側には数字があって、
1.0が1日(24時間)
0.5が半日(12時間)
0.25が4分の1日(6時間)
0.125が8分の1日(3時間)
というような関係になっている。


「1」が「1日=24時間」なので、
0.ホニャララに24時間をかけると、時間になるわけです。
ちなみに1時間は0.04166666666…。
です。
24を半分ずつに割っていくので、「1時間」は綺麗な数字にはならないんですね。
ちなみにこの0.04166666…みたいなやつを
「シリアル値」といいます。


※正しくは「1900年1月1日」が「1」なのだけど、
今回は時刻の話なのでここでは割愛。
日付は整数、時刻は少数ね。


で、「逆に、1時間半のシリアル値が知りたい!」
という時はどうするかと言うと、
かけ算の逆なので割り算を使います。
「=1.5/24」をすると、0.0625という数値が出てきます。
この「0.0625」が、1時間半のシリアル値ですね。
1.5時間は3時間の半分なので、
0.125の半分の0.0625が1.5時間というのはわかりやすいです。