XL 2016 Conversion temps (jours heures minutes secondes)

enaw

XLDnaute Nouveau
Bonjour,

J’ai rencontré un problème de conversion sur ma base de données clients pour une étude à l’école.

Les données initiales téléchargés sur la durée sont mal configurées donc, je dois les convertir soit en format utilisables pour effectuer mes analyses.

Mon problème est au niveau des lignes en bleu ciel qui ne reconnaissent pas la formule que j’utilise.

Pouvez vous m’aider à le résoudre svp.

Enaw.

ci-joint le classeur Données clients.
 

Pièces jointes

  • Données Clients.xlsx
    11.1 KB · Affichages: 24

Dranreb

XLDnaute Barbatruc
Bonjour.
En D2, à propager sur 44 lignes :
Code:
=SI(STXT(B2;2;7)=" jours ";GAUCHE(B2;1)+SUBSTITUE(SUBSTITUE(STXT(B2;9;8);"h";":");"m";":");SUBSTITUE(SUBSTITUE(B2;"h";":");"m";":"))*86400
Non, attendez ce n'ai pas bon; je n'avais pas vu que l'heure n'était pas toujours indiquée …
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Mais là ça devient un peu compliqué alors je décompose :
En F2, à propager sur 44 lignes :
Code:
=STXT($B2;(STXT($B2;2;7)=" jours ")*8+1;8)
En E2, à propager sur 44 lignes :
Code:
=SI(STXT($B2;2;7)=" jours ";GAUCHE($B2;2)+0;0)
En D2, à propager sur 44 lignes :
Code:
=(SUBSTITUE(SUBSTITUE(SI(ESTERREUR(CHERCHE("h";$F2));"0:";"")&$F2;"h";":");"m";":")+E2)*86400
 

enaw

XLDnaute Nouveau
Mais là ça devient un peu compliqué alors je décompose :
En F2, à propager sur 44 lignes :
Code:
=STXT($B2;(STXT($B2;2;7)=" jours ")*8+1;8)
En E2, à propager sur 44 lignes :
Code:
=SI(STXT($B2;2;7)=" jours ";GAUCHE($B2;2)+0;0)
En D2, à propager sur 44 lignes :
Code:
=(SUBSTITUE(SUBSTITUE(SI(ESTERREUR(CHERCHE("h";$F2));"0:";"")&$F2;"h";":");"m";":")+E2)*86400
SUPER? ça résolve tout les soucis.
Merci
[LEFT][COLOR=rgb(37, 119, 177)]Dranreb[/COLOR][/LEFT]
XLDnaute Barbatruc.
Et ma formule ne prends pas tout en compte alors.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Les données initiales téléchargés sur la durée sont mal configurées donc, je dois les convertir soit en format utilisables pour effectuer mes analyses.
il faut donc "normaliser " ces données ...
J hh:mm:ss
en E2 :
Code:
=SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SI(ESTERR(TROUVE("h";B2));
SUBSTITUE(B2;" ";" 00h";2);B2);"h";":");"m";":");"jours";""))
le résultat est un texte qu'il convient ensuite à transformer en durée au sens Excel
en F2 :
Code:
=SI(ESTERR(TROUVE(" ";E2));1*E2;GAUCHE(E2;TROUVE(" ";E2))+1*STXT(E2;TROUVE(" ";E2)+1;8))
puis en durées en secondes

1032529
 

Pièces jointes

  • Données Clients.xlsx
    21.4 KB · Affichages: 9

enaw

XLDnaute Nouveau
Hi [LEFT][B][SIZE=4][FONT=Segoe UI][COLOR=rgb(37, 119, 177)]Dranreb[/COLOR][/FONT][/SIZE][/B][/LEFT]
,​
je crois qu'il y'a toujours une erreur de conversion. Et c'est surtout sur les secondes ( ma formule aux cellules ( C7 et C9 ) et pour la tienne aux cellules (D2 ; D3 et D4)). (Feuil2)
je m'en suis penché toute la journée mais je ne vois où se situe le hic.​
[U][LEFT][B][SIZE=4][FONT=Segoe UI][COLOR=rgb(50, 151, 219)]Modeste geedee[/COLOR][/FONT][/SIZE][/B][/LEFT][/U]: c'est pareil avec ton cheminement (Feuil3).

Merci d'avance.​
 

Pièces jointes

  • Données Clients.xlsx
    23.9 KB · Affichages: 6

Dranreb

XLDnaute Barbatruc
Bonjour.
Il y a quelque chose d'ambigu dans "01h30". Soit les unités de temps autres que la secondes doivent être précisées, soit elles ne doivent pas l'être !
Une fonction perso supposant qu'elles doivent l'être :
VB:
Option Explicit
Function TempsS(ByVal S As String) As Double
   Dim P As Long, N As Long
   For P = 1 To Len(S)
      Select Case UCase$(Mid$(S, P, 1))
         Case "0" To "9": N = 10 * N + Mid$(S, P, 1)
         Case "J": TempsS = TempsS + N * 86400: N = 0
         Case "H": TempsS = TempsS + N * 3600: N = 0
         Case "M": TempsS = TempsS + N * 60: N = 0: End Select: Next P
   TempsS = TempsS + N
   End Function
En 'Feuil1'!D2, à propager sur 29 lignes :
Code:
=TempsS($B2)
Pour vérifier, En 'Feuil1'!E2, à propager sur 29 lignes :
Code:
=$D2/86400
Avec format de nombre personnalisé [h]:mm:ss
 

Dranreb

XLDnaute Barbatruc
Oui t'a raison les unités de secondes ne sont pas précisées dans mon cas.
Oui ça j'avais vu ! C'est l'unité des minutes qui suggérait dans certains cas n'avoir pas été précisée quand il n'y avait pas de secondes derrière. Mais ce n'est pas le cas: puisqu'il n'y a pas de "m" en fin ce sont bien des secondes, n'est-ce pas ? Sinon il faut bien définir la règle dans tous les cas.
 

Statistiques des forums

Discussions
312 069
Messages
2 085 037
Membres
102 762
dernier inscrit
Ucef