Googleスプレッドシートで、マイナスの時間(時刻)から時・分・秒の値を取得する方法についてです。
値はいずれもマイナスの値として取得するものとします。
値はいずれもマイナスの値として取得するものとします。
- 「=SIGN(時間)*HOUR(ABS(時間))」といった式によりマイナスの時間(時刻)からマイナスの時・分・秒を取得できます。
- ゼロやプラスの時間(時刻)からも正しく時・分・秒を取得できます。
手順
Googleスプレッドシートではマイナスの時間(時刻)を入力することができます(詳しくはこちらの記事でも触れています)。
しかし画像のように、この値からHOUR/MINUTE/SECOND関数で時・分・秒を取得しようとすると…
すべてエラーになります。
これらの関数はマイナスの時間(つまりマイナスのシリアル値)を扱うことができないのです。
そこで次のような式に変えてみます。
C3~E3セル
=SIGN(B3)*HOUR(ABS(B3)) =SIGN(B3)*MINUTE(ABS(B3)) =SIGN(B3)*SECOND(ABS(B3))
「ABS(B3)」とすることでB3セルの値(時間)を一旦プラスのシリアル値に変えて、そこから時・分・秒を取得し、最後に符号を加えるというわけです。
実行した様子です。確かに時・分・秒の値を取得できています。
そのまま式を下方にコピーした結果です。
「0:00:00」やプラスの時間(時刻)からも、正しく時・分・秒を取得できているのが分かります。