Transformer . en , supprime des décimales [Résolu]

Signaler
Messages postés
2
Date d'inscription
lundi 16 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
-
Messages postés
2
Date d'inscription
lundi 16 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
-
Bonjour,
Je travaille sur une base de données assez large et j'ai des calculs à faire sur des temps sous ce format : MM:ss.ddddddddd


Afin de faire ces calculs, je dois transformer mes . en , (nos documents ont la virgule comme séparateur de décimales, j'aimerais garder ça pour ce doc)
Le problème que j'ai c'est que quand je fais Ctrl + F pour remplacer, excel m'arrondit à une décimale. Encore plus surprenant, si je clique sur la cellule en question, dans la barre de formule, c'est arrondi à la seconde près. Le format de la cellule est indiqué comme "personnalisé".


Si j'essaye de forcer le format de cellule pour qu'il reste "standard" ou "nombre", j'obtiens un résultat encore plus surprenant et qui n'a aucun sens pour moi


si quelqu'un a une idée de ce qui se passe, perso je suis complètement perdu.
Merci d'avance


PS : le fichier fait 1200 lignes, donc tout remplacer à la main n'est pas vraiment une option

Configuration: Windows / Firefox 82.0

1 réponse

Messages postés
23637
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 novembre 2020
6 466
Bonjour,

tu dépasses les capacités d'excel à afficher les fractions de secondes, limitées à 3 décimales.
Excel stocke les temps en jour, fraction de jour. Ex : 0.5 = 12:00:00
2:20.584 égal donc tes 0.00162713 que tu lis.

Le soucis si tu passes par un affichage au format h:mm.000 c'est que tu vas perdre de la précision y compris en interne (il faut différencier ce qui est affiché de la valeur réelle stockée).

Tu pourrais, par calcul, convertir tes chaines en secondes décimales, plus facile à lire et à évaluer, et tu pourras travailler avec. En supposant que tu n'aies que des minutes et pas de temps en heures :
=GAUCHE(A2;CHERCHE(":";A2)-1)*60+SUBSTITUE(STXT(A2;CHERCHE(":";A2)+1;20);",";".")

qui te donnera 140.584484
eric

PS : si tu dois ensuite afficher tes résultats au format h:mm.ddddddddd ça ne pourra être fait qu'en construisant une chaine. Toute utilisation d'un format heure te fera perdre la précision

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Messages postés
23637
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 novembre 2020
6 466
PS2 : inverse , et . dans ma formule. Mon séparateur étant le . j'ai dû faire l'inverse :
=GAUCHE(A2;CHERCHE(":";A2)-1)*60+SUBSTITUE(STXT(A2;CHERCHE(":";A2)+1;20);".";",")
Messages postés
2
Date d'inscription
lundi 16 novembre 2020
Statut
Membre
Dernière intervention
16 novembre 2020
>
Messages postés
23637
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
16 novembre 2020

Merci pour ta réponse !