Une cellule d'un document Google Sheets contient une valeur donnée par un SOMME de cellules au format "heures écoulées": "minutes écoulées". Tenter de faire des calculs dans un script personnalisé sur cette cellule provoquera des erreurs. Une investigation plus poussée en utilisant la fonction typeof () montrera ceci comme "objet". Comment puis-je convertir la valeur de la cellule en nombre? Vous avez tenté parseInt () ou parseFloat () sans succès .... Dans la feuille liée ici vous verrez que:
288:00
formaté en tant que durée,la cellule A2, ayant =daysHrsMins(A1)
, qui renvoie une valeur négative, -3.179.700.519.840.000,00
à partir de la fonction suivante:
function daysHrsMins(input) {
return input*1440;
}
Paramètres régionaux: Italie
Paramètres de fuseau horaire: (GMT +1) Paris
Comment convertir une valeur de cellule en nombre?
Sur Google Sheets, les durées ne sont qu'un format d'affichage des valeurs de date. Ainsi, lorsqu'une fonction personnalisée prend une durée, elle est traitée comme un objet de date.
Lorsque nous effectuons des opérations arithmétiques sur les dates/heures/durée, nous devons garder à l’esprit les points suivants:
Google Sheets
Script Google Apps/JavaScript
Google Sheets
[h]:mm:ss.00
).Script Google Apps/JavaScript
Lorsqu'une valeur de date est transférée de Google Sheets vers un script Google Apps ou inversement, elle est automatiquement convertie en fonction du fuseau horaire de la feuille de calcul.
Étant donné que la gestion de la durée et de la date dans Google Sheets et les scripts Google Apps est différente, la solution la plus simple consiste à effectuer la conversion de date/durée en nombre dans l'application Origin.
Sur Google Sheets, nous pourrions utiliser TO_PURE_NUMBER pour effectuer cette conversion:
=daysHrsMins(TO_PURE_NUMBER(A1))
Pour certains cas d'utilisation, il peut être pratique d'utiliser une bibliothèque JavaScript telle que moment.js
Questions et réponses sur ce site:
Questions et réponses relatives au débordement de pile