(Gスプレッドシート)24時間以上の時間を表示する

 Googleスプレッドシートで、「25:34:12」といったように24時間以上の時間を表示する方法についてです。

  • 適用する範囲を選択した状態でメニューから「表示形式」→「数字」→「経過時間」と選択すると、24時間以上の時間が表示できます。
  • カスタム数値形式で「[h]:mm:ss」と設定する方法もあります。
  • ただしHOUR関数で24以上の数値を取得することはできませんので注意が必要です。

手順

f:id:accs2014:20200612003749p:plain:right:w450

 いくつかの時間の値が並んでいます。これらをSUM関数で合計したところ……

f:id:accs2014:20200612003753p:plain:right:w450

 明らかに合計より短い時間が表示されてしまいました。
 これは24時間が1日に繰り上がってしまってしまい、残った4時間余りの時間が表示されているためです。

 

 そこで24時間以上の時間をそのまま表示するには、対象とする範囲(ここではC6セル)を選択した状態でメニューから「表示形式」→「数字」→「経過時間」と選択します。

f:id:accs2014:20200612003758p:plain:w700



f:id:accs2014:20200612003803p:plain:right:w450

 これで24時間以上の時間として表示されます。

 

f:id:accs2014:20200612003806p:plain:right:w450

 また、メニューから「表示形式」→「数字」→「表示形式の詳細設定」→「カスタム数値形式」と進んで、ダイアログ上で「[h]:mm:ss」という形式を設定する方法もあります。時間を常に2桁表示したいときは「[hh]:mm:ss」とします。


f:id:accs2014:20200612003810p:plain:right:w550

 ところで、さらにE6セルに「=HOUR(C6)」と入力してみると、結果は「4」となり「28」にはなりません。一見不自然ですが、表示形式とともにHOUR関数の結果が変わるのも困るので、これは仕方がありません。
 ここで「28」という結果を得るには、次のような式を入力するのが1つの方法です。

=VALUE(TEXT(C6,"[h]"))

 TEXT関数により、つまり表示形式の考え方に沿って「28」という文字列を生成し、それをそのまま数値に変換するというわけです。
 なおExcel風に「=24*DAY(C6)+HOUR(C6)」とやると正しい値になりませんので注意が必要です(シリアル値と日付の対応付けが異なるため)。