web-dev-qa-db-fra.com

Comment convertir le temps en flottant décimal dans Google Sheets à l'aide de Script?

Je veux convertir l'heure HH:MM en H.xx

Comme je l'obtiens dans ce format: Sat Dec 30 00:00:00 GMT+05:21 1899

Mais cette valeur est 04:29 dans la cellule. Je veux que ce soit 4.5 heures pour le multiplier au taux horaire.

6
TheOnlyAnil

Google Sheets

Dans Google Sheets, si vous avez une valeur de date/heure dans une cellule (par exemple, "D9"), utilisez =HOUR(D9)+(MINUTE(D9)/60).

Si la valeur est stockée au format 04:29, Utilisez alors =INDEX(SPLIT(D9, ":"), 1) + (INDEX(SPLIT(D9, ":"), 2)/60).


API Google Sheets et script Google Apps

Si vous souhaitez utiliser l'API Google Sheets ou le script Google Apps, vous pouvez utiliser javascript.

Vous devez utiliser la méthode getMinutes () et diviser par 60, puis ajouter cela à l'heure (en utilisant getHours () ).

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

Sachez que cela ignore les secondes.

Si la valeur dans la cellule est stockée sous forme de chaîne comme 04:29, Alors vous devrez split la.

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

Multipliez simplement votre durée par 24.

Exemple:

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

Vous devez également modifier le format de la cellule contenant la décimale d'Automatique à Numéro pour que cela fonctionne dans Google Sheets.

3
AlphAcurA

J'ai essayé les méthodes ci-dessus avec un succès limité, car j'avais besoin d'une autre cellule pour convertir la valeur de temps en après le calcul. Cependant, j'ai essayé une modification de cela, et à ma grande surprise, cela fonctionne. Je partagerai ma solution et j'espère qu'elle vous aidera.

J'ai une heure de début et une heure de fin. Disons que mon heure de début est en D6 Et mon heure de fin est en E6.

Avec les formules ci-dessus, je devrais avoir une cellule (disons F6) Qui fait E6-D6, Puis une autre cellule (disons G6) Pour convertir F6 de temps en décimales.

J'ai raccourci cela en utilisant:

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

directement dans F6 sans avoir besoin d'une cellule G6 pour convertir.

J'espère que cela t'aides!

0
Stu