Transformer . en , supprime des décimales

Résolu/Fermé
Fflow27 Messages postés 2 Date d'inscription lundi 16 novembre 2020 Statut Membre Dernière intervention 16 novembre 2020 - 16 nov. 2020 à 11:36
Fflow27 Messages postés 2 Date d'inscription lundi 16 novembre 2020 Statut Membre Dernière intervention 16 novembre 2020 - 16 nov. 2020 à 13:39
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

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié le 16 nov. 2020 à 12:37
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

0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
16 nov. 2020 à 12:58
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);".";",")
0
Fflow27 Messages postés 2 Date d'inscription lundi 16 novembre 2020 Statut Membre Dernière intervention 16 novembre 2020 > eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024
16 nov. 2020 à 13:39
Merci pour ta réponse !
0