web-dev-qa-db-ja.com

スクリプトを使用してGoogleスプレッドシートで時間を10進浮動小数点に変換する方法

時間を変換したいHH:MM into H.xx

この形式で取得しているように:Sat Dec 30 00:00:00 GMT+05:21 1899

しかし、この値は04:29セル内。 4.5時間を時間単位のレートに乗算します。

6
TheOnlyAnil

Googleスプレッドシート

Googleスプレッドシートで、セルに日付/時刻の値(「D9」など)がある場合は、=HOUR(D9)+(MINUTE(D9)/60)を使用します。

値が_04:29_形式で保存されている場合は、=INDEX(SPLIT(D9, ":"), 1) + (INDEX(SPLIT(D9, ":"), 2)/60)を使用します。


Google Sheets APIとGoogle Apps Script

Google Sheets APIまたはGoogle Apps Scriptを使用する場合は、javascriptを使用できます。

getMinutes() メソッドを使用して60で除算し、それを時間に追加する必要があります( getHours() を使用)。

_var date = new Date();
var minutes = date.getMinutes();
var output = date.getHours() + (minutes/60);
_

これは秒を無視していることに注意してください。

セルの値が_04:29_のような文字列として保存されている場合、 split itにする必要があります。

_var time = "04:29";
var hour = Number(time.split(":")[0]);
var minutes = Number(time.split(":")[1]);
var output = hour + (minutes/60);
_
12
Diego

デュレーションに24を掛けるだけです。

例:

Time In     | Time out   | Duration | Decimal
11:45:00 AM | 3:40:00 PM | 3:55:00  | 3.92

また、これをGoogleスプレッドシートで機能させるには、小数を含むセルの形式を自動から数値に変更する必要があります。

3
AlphAcurA

時間値を計算後に変換するために別のセルが必要であったため、上記の方法を試してみましたが、成功は限られていました。しかし、私はこれを修正してみましたが、驚いたことに動作します。私のソリューションを共有し、それが役立つことを願っています。

開始時刻と終了時刻があります。開始時間は_D6_で、終了時間は_E6_であるとします。

上記の式では、_F6_を実行するセル(_E6-D6_としましょう)、次に__G6_と変換する別のセル(_F6_と言います)が必要です小数に。

私はこれを使用してショートカットします:

=INDEX(SPLIT(E6-D6, ":"), 1) + (INDEX(SPLIT(E6-D6, ":"), 2)/60)

変換する_F6_セルを必要とせずに_G6_に直接。

お役に立てれば!

0
Stu