Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment transformer "jj-hh-mm-ss" en un nombre de secondes?

14 réponses
Avatar
C. Huvelle
Salut,
j'ai une celulle qui contient "1-12-55-24" pour 1 jour, 12 heures, 55
minutes et 24 secondes et je voudrais calculer le nombre total de secondes.
Comment faire simple?
Merci
Christian

10 réponses

1 2
Avatar
AV
Comment faire simple?
Ben en saisissant chacune des valeurs dans des cellules différentes, ça

simplifierait pas mal !
A défaut (ça sera pas vraiment simple !) et pour répondre à ta question
Matricielle (validation par Ctrl+Maj+Entrée)
=(GAUCHE(A1;TROUVE("-";A1)-1)*86400)+(STXT(A1;PETITE.VALEUR(SI(STXT(A1;LIGNE(IND
IRECT("1:"&NBCAR(A1)));1)="-";LIGNE(INDIRECT("1:"&NBCAR(A1)));"");1)+1;PETITE.VA
LEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="-";LIGNE(INDIRECT("1:"&NBCAR
(A1)));"");2)-1-PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="-";
LIGNE(INDIRECT("1:"&NBCAR(A1)));"");1))*3600)+(STXT(A1;PETITE.VALEUR(SI(STXT(A1;
LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="-";LIGNE(INDIRECT("1:"&NBCAR(A1)));"");2)+1;
PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="-";LIGNE(INDIRECT("
1:"&NBCAR(A1)));"");3)-1-PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1))
);1)="-";LIGNE(INDIRECT("1:"&NBCAR(A1)));"");2))*60)+(STXT(A1;PETITE.VALEUR(SI(S
TXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)="-";LIGNE(INDIRECT("1:"&NBCAR(A1)));""
);3)+1;9^9)*1)

Plus courte et non matricielle (d'après une trouvaille de Daniel M)
=(GAUCHE(A1;TROUVE("-";A1)-1)*86400)+(STXT(A1;TROUVE("±";SUBSTITUE(A1;"-";"±";1)
)+1;TROUVE("±";SUBSTITUE(A1;"-";"±";2))-1-TROUVE("±";SUBSTITUE(A1;"-";"±";1)))*3
600)+(STXT(A1;TROUVE("±";SUBSTITUE(A1;"-";"±";2))+1;TROUVE("±";SUBSTITUE(A1;"-";
"±";3))-1-TROUVE("±";SUBSTITUE(A1;"-";"±";2)))*60)+STXT(A1;C11+1;9^9)

AV

Avatar
Starwing
Hummm!!

..... Bla bla bla ...STXT(A1;C11+1;9^9)


AV, il me semble que la cellule C11 doit jouer un rôle primordiale dans la
formule?

Starwing
Avatar
Daniel.M
Hello Christian,

De très loin, la meilleure solution consiste à mettre ces données sous forme
numérique (une vraie heure). Les calculs subséquents en seront grandement
facilités.

Ceci étant dit et pour le défi:

Avec la fonction Eval() disponible dans le morefunc.xll de Laurent Longre:

=SOMMEPROD(EVAL("{"&SUBSTITUE(A1;"-";";")&"}");{86400;3600;60;1})


Sinon, la MATRICIELLE (Ctrl-Maj-Entrée) suivante:

=SOMME(STXT(A1;PETITE.VALEUR(SI(STXT("-"&A1;LIGNE(INDIRECT("1:15"));1)="-";
LIGNE(INDIRECT("1:15")));{1;2;3;4});(PRODUITMAT(PETITE.VALEUR(SI(STXT("-"&
A1&"-";LIGNE(INDIRECT("1:15"));1)="-";LIGNE(INDIRECT("1:15")));{2;3;4;5}-
{0.1});{1;-1})-1))*{86400;3600;60;1})

Le {0.1} correspond à une matrice horizontale de 2 constantes: il se peut que
vous deviez la changer pour {01} ou {0,1} dépendant de vos paramètres régionaux
(je ne peux pas savoir).

Salutations,

Daniel M.

"C. Huvelle" wrote in message
news:clj5gv$nme$
Salut,
j'ai une celulle qui contient "1-12-55-24" pour 1 jour, 12 heures, 55
minutes et 24 secondes et je voudrais calculer le nombre total de secondes.
Comment faire simple?
Merci
Christian




Avatar
Daniel.M
Bonjour,

Une belle réponse sur le NG anglais (je la partage pour les gens ici):

=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(STXT(A1;TROUVE("-";A1)+1;20);"-";":"))*2
4*60*60

Salutations,

Daniel M.

"C. Huvelle" wrote in message
news:clj5gv$nme$
Salut,
j'ai une celulle qui contient "1-12-55-24" pour 1 jour, 12 heures, 55
minutes et 24 secondes et je voudrais calculer le nombre total de secondes.
Comment faire simple?
Merci
Christian




Avatar
GD
Bonsour ®,
oui AV encore en retard ;-)))
je découvre la réponse de Daniel !!!

sous réserve que la partie horaire soit toujours de la forme hh-mm-ss
je vous le fait quand même avec 17 caractères en moins :
=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(DROITE(A1;8);"-";":"))/"0:0:1"

;o)))
@+

dans news:eaXGM$,
Daniel.M typed:
Bonjour,

Une belle réponse sur le NG anglais (je la partage pour les gens ici):


=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(STXT(A1;TROUVE("-";A1)+1;20);"-";":"

))*2
4*60*60

Salutations,

Daniel M.

"C. Huvelle" wrote in message
news:clj5gv$nme$
Salut,
j'ai une celulle qui contient "1-12-55-24" pour 1 jour, 12 heures, 55
minutes et 24 secondes et je voudrais calculer le nombre total de
secondes. Comment faire simple?
Merci
Christian




Avatar
michdenis
Bonjour Daniel,

" je la partage pour les gens ici "

Merci pour ta générosité.

Un petit brin d'ingéniosité pour une grande formule !!!

;-)))


Salutations!




"Daniel.M" a écrit dans le message de news:eaXGM$
Bonjour,

Une belle réponse sur le NG anglais (je la partage pour les gens ici):

=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(STXT(A1;TROUVE("-";A1)+1;20);"-";":"))*2
4*60*60

Salutations,

Daniel M.

"C. Huvelle" wrote in message
news:clj5gv$nme$
Salut,
j'ai une celulle qui contient "1-12-55-24" pour 1 jour, 12 heures, 55
minutes et 24 secondes et je voudrais calculer le nombre total de secondes.
Comment faire simple?
Merci
Christian




Avatar
Daniel.M
Bonsoir GD,

=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(STXT(A1;TROUVE("-";A1)+1;20)
;"-";":"))*24*60*60


=(GAUCHE(A1;TROUVE("-";A1)-1)+SUBSTITUE(DROITE(A1;8);"-";":"))/"0:0:1"


Malheureusement, ta formule considère qu'il y a toujours 8 caractères pour
représenter les hms.
Ce n'est pas toujours le cas (d'où l'utilisation de TROUVE() dans la formule
originale). Du reste, si on 'fixe' un nombre constant de caractères pour les 4
termes de la chaîne, on pourrait trouver beaucoup plus court...

Bien essayé quand même ;-)

Salutations,

Daniel M.


Avatar
GD
Bonsour ® Daniel,
Bien essayé quand même ;-)
;o)))

oui, oui...Daniel...c'est bien comme cela que je l'entendais !!!!
au moins Christian aura un choix étendu
;o)))
@+

Avatar
Daniel.M
au moins Christian aura un choix étendu
;o)))
@+



En effet, s'il nous revient!

Pour des chaînes de caractères à longueur fixe y compris les jours
("j-hh-mm-ss"), il y a aussi:

=SOMMEPROD(--STXT(A1;{1;3;6;9};{1;2;2;2});{86400;3600;60;1})

Salutations,

Daniel M.

Avatar
AV
..... Bla bla bla ...STXT(A1;C11+1;9^9)
AV, il me semble que la cellule C11 doit jouer un rôle primordiale dans la


Un oubli de retranscription :
Dans la formule, C11 est à remplacer par, TROUVE("±";SUBSTITUE(A2;"-";"±";3))

AV

1 2