いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)時間を時間数(数値)に変換する

 Googleスプレッドシートで、「9:30:00」のような時間を「9.5」のような(何時間という)数値に変換する方法についてです。

  • 「=VALUE(時間)*24」という式により、時間(時刻)を時間単位の数値に変換することができます。

手順

 B列にいくつかの時間が入力されています。
 これに対しC3セルに次のような式を入力し、下方にコピーしています。
 24時間を超える時間や、マイナスの時間も含め、時間数に正しく変換されていることがわかります。

 C3セル

=VALUE(B3)*24

 値をVALUE関数でシリアル値に変換し、24をかけています。
 時間を時間数に変換することは、24時間を24という数値に変換することに相当します。よって時間のシリアル値(24時間=1)を24倍してしまえばよいというわけです。

 ちなみに画像は省略しますが、「=VALUE(B3*24)」のように「*24」を関数内に含めてしまうと(「1:00:00」が「0」になってしまうなど)うまくいきません。

備考

 Excelですと単に「=時間*24」という式を入力しておいて(戻り値は時間形式になる)、書式を変更することで数値に変換するというやり方が有名です。
 Googleスプレッドシートで同じようにしようとすると、まず「=時間*24」という式を入力した結果まではExcelと同じです(画像参照)。

 しかし、そこから「数値であり、かつ小数の桁数が可変」であるような表示形式の設定ができません。「書式なしテキスト」を適用すれば小数の桁数は可変ですが全体が文字列になってしまいますし、数値にこだわると小数の桁数が固定されます(画像は「数値」を選択した結果。小数点以下2桁までに固定される)。ここがちょっとした問題点です。