かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Googleスプレッドシート 時間を数値にして計算したい。

勤怠表から時給換算とか、01:30:00な経過時間フォーマットな表のデータを1.5とかに置き換えたい時

VALUE を使う

VALUE
Google スプレッドシートで認識される日付、時刻、番号の書式の文字列を数値に変換します。
VALUE("12:00:00")
出典: VALUE - ドキュメント エディタ ヘルプ

VALUEで時間単位に変換する場合は、

=VALUE( A1 ) * 24

と24をかけてやればOK。
分換算なら=VALUE( A1 ) * 24 * 60です。

経過時間 時間換算 分換算
1:00:00 1 60
1:30:00 1.5 90
1:45:00 1.75 105

TIMEVALUEだと24時間超えてる値だとうまくいかない

似た関数にTIMEVALUEというものがありました。
名前的にもこちらの方が時間系の変換に良さそうなのですが

TIMEVALUE
1 日 24 時間のうちの、時間が表す割合を返します。
出典: TIMEVALUE - ドキュメント エディタ ヘルプ

とあるように、24時間区切りなので、作業工数や勤務時間の合計とかで値が24時間を超えていると、意図しないデータ (時間が減る)になってしまうので注意が必要です。

TIMEVALUEでの時間換算式

=TIMEVALUE( A1 ) * 24

👇

経過時間 時間換算 (VALUE) 時間換算 (TIMEVALUE)
1:00:00 1 1
1:30:00 1.5 1.5
1:45:00 1.75 1.75
24:00:00 24 0
25:00:00 25 1
28:30:00 28.5 4.5

と、24時間以内ならTIMEVALUEでもうまくいってしまうので、注意が必要です。
スプレッドシートで経過時間から計算を行う場合はVALUEを使いましょう。
というお話でした。