OVH Cloud OVH Cloud

Additionner des durées en minutes secondes

16 réponses
Avatar
Apitos
Bonjour Í  tous,

J'ai le tableau des durées suivant :

1,3
0,45
2,3
4,2
0,45
2,38
1,25
0,29
1,11
2,13

J’aimerais trouver la somme total des durées en minutes, secondes.

Les utilisateurs devront saisir simple :

1,3 pour 1 mn 30 s ou 0,45 pour 0 mn 45 s ....

Merci.

6 réponses

1 2
Avatar
MichD
Le 30/01/21 Í  07:51, MichD a écrit :
Quand tu fais ta somme, tu obtiens 16,69. Ceci représente pour Excel 16
Heures et 69 centièmes d'heure. Toi quand tu regardes le résultat tu
interprètes le résultat comme étant des minutes et secondes.
Le hic, si tu devais utiliser ce résultat pour effectuer d'autres
opérations mathématiques, tu n'obtiendras pas le résultat attendu. Excel
ne calcule pas avec ta perception du résultat, mais avec la valeur
retenue par le logiciel.
Pour transformer vraiment le résultat en minutes et secondes qui soit
conforme Í  Excel, tu pourrais utiliser cette formule et le résultat va
s'exprimer en décimale.
=TEMPSVAL("00:"&ENT(SOMME(A1:A12))&":"&
ARRONDI((SOMME(A1:A12)-ENT(SOMME(A1:A12)))*60;0)&"")
Et tu appliques un format de cellule MM:SS et tu obtiendras 16:41 avec
une notion de temps qu'Excel sous-tend.
MichD

Juste un commentaire :
J'ai écrit :
"Quand tu fais ta somme, tu obtiens 16,69. Ceci représente pour Excel 16
Heures et 69 centièmes d'heure."
Ceci représente les unités que tu avais en tête, mais pas la définition
d'Excel.
La réalité, quand tu écris des entiers dans une cellule, cela représente
des heures et la partie décimale du chiffre représente une fraction
d'une journée que tu peux exprimer en heures, minutes, secondes.
Par exemple, si tu appliques ce format de cellule jj hh:mm:ss Í  la somme
16,69 tu obtiens comme résultat : 16 16:33:36 soit 16 jours 16 heures 33
minutes et 36 secondes. Tu es très loin du résultat 16 min 41 secondes
que tu veux obtenir.
Ça semble un peu compliquer et ce l'est. Les notions de temps dans Excel
leurrent beaucoup d'usagers.
À toi de voir ce que tu veux faire...
MichD
Avatar
MichD
Le 30/01/21 Í  08:06, MichD a écrit :
Le 30/01/21 Í  07:51, MichD a écrit :
Quand tu fais ta somme, tu obtiens 16,69. Ceci représente pour Excel
16 Heures et 69 centièmes d'heure. Toi quand tu regardes le résultat
tu interprètes le résultat comme étant des minutes et secondes.
Le hic, si tu devais utiliser ce résultat pour effectuer d'autres
opérations mathématiques, tu n'obtiendras pas le résultat attendu.
Excel ne calcule pas avec ta perception du résultat, mais avec la
valeur retenue par le logiciel.
Pour transformer vraiment le résultat en minutes et secondes qui soit
conforme Í  Excel, tu pourrais utiliser cette formule et le résultat va
s'exprimer en décimale.
=TEMPSVAL("00:"&ENT(SOMME(A1:A12))&":"&
ARRONDI((SOMME(A1:A12)-ENT(SOMME(A1:A12)))*60;0)&"")
Et tu appliques un format de cellule MM:SS et tu obtiendras 16:41 avec
une notion de temps qu'Excel sous-tend.
MichD

Juste un commentaire :
J'ai écrit :
"Quand tu fais ta somme, tu obtiens 16,69. Ceci représente pour Excel 16
Heures et 69 centièmes d'heure."
Ceci représente les unités que tu avais en tête, mais pas la définition
d'Excel.
La réalité, quand tu écris des entiers dans une cellule, cela représente
des heures et la partie décimale du chiffre représente une fraction
d'une journée que tu peux exprimer en heures, minutes, secondes.
Par exemple, si tu appliques ce format de cellule jj hh:mm:ss Í  la somme
16,69 tu obtiens comme résultat : 16 16:33:36 soit 16 jours 16 heures 33
minutes et 36 secondes. Tu es très loin du résultat 16 min 41 secondes
que tu veux obtenir.
Ça semble un peu compliquer et ce l'est. Les notions de temps dans Excel
leurrent beaucoup d'usagers.
À toi de voir ce que tu veux faire...
MichD

Et pour terminer, la formule donnée est valide seulement si ton total ne
dépasse pas 1440. Ce chiffre représente 24 heures * 60 minutes. Lorsque
la somme est plus grande que 1440, cela signifie que le total représente
plus d'une journée selon ta perception, mais pas d'après Excel.
La fonction TempsVal() s'applique seulement pour une durée de moins
d'une journée (24 heures) soit un maximum 23Heures 59 minutes 59 secondes.
=TEMPSVAL("00:"&ENT(SOMME(A1:A12))&":"&
ARRONDI((SOMME(A1:A12)-ENT(SOMME(A1:A12)))*60;0)&"")
Si la somme avait été 11395,69 au lieu de 66,69 on pourrait utiliser la
formule suivante pour transformer ce résultat en jours heures minutes et
secondes :
=JOUR(A15)&" jrs " & HEURE(A15)&" hres "&MINUTE(A15)&" min
"&SECONDE(A15)&" sec"
Et si on veut traduire ce résultat en minutes et secondes :
=JOUR(SOMME(A2:A12))*1440+HEURE(SOMME(A2:A12))*60+MINUTE(SOMME(A2:A12))&"
min "&SECONDE(SOMME(A2:A12))&" sec"
Bon, je crois que c'est suffisant pour t'amuser!
MichD
Avatar
Apitos
Je voulais dire aux utilisateurs, pour faciliter la saisie, qu'ils pouvaient saisir 2.11, par exemple, au lieu de 2 minutes et 11 secondes, et faire comprendre Í  Excel, en même temps, qu'il y a une entrée de 00:02:11.
Je vais essayé les formules proposées.
Avatar
Michel__D
Bonsoir,
Le 29/01/2021 Í  11:53, Apitos a écrit :
Bonjour Í  tous,
J'ai le tableau des durées suivant :
1,3
0,45
2,3
4,2
0,45
2,38
1,25
0,29
1,11
2,13
J’aimerais trouver la somme total des durées en minutes, secondes.
Les utilisateurs devront saisir simple :
1,3 pour 1 mn 30 s ou 0,45 pour 0 mn 45 s ....
Merci.

Tu te simplifiera la vie en utilisant une colonne intermédiaire.
Avatar
MichD
Le 30/01/21 Í  09:41, Apitos a écrit :
Je voulais dire aux utilisateurs, pour faciliter la saisie, qu'ils pouvaient saisir 2.11, par exemple, au lieu de 2 minutes et 11 secondes, et faire comprendre Í  Excel, en même temps, qu'il y a une entrée de 00:02:11.
Je vais essayé les formules proposées.

Si ton total ne dépasse par 1399, tu peux utiliser cette fonction
personnalisée qui va transformer automatiquement le résultat en
Minutes et secondes selon Excel.
A ) La cellule qui doit accueillir le résultat doit avoir un format de
cellule : [M]:SS
Dans la cellule, vous insérez la formule : =Minut(A1:A10)
A1:A10 = plage Í  additionner.
Dans un module "STANDARD", tu copies cette fonction.
'--------------------------------------
Function Minut(rg As Range)
Dim S As Long, T As Double
T = Application.Sum(rg)
On Error Resume Next
S = Split(T, ",")(1)
If Len(Trim(S)) = 1 Then
S = ((S) / 10) * 60
Else
S = ((S) / 100) * 60
End If
Minut = TimeSerial(0, Split(T, ",")(0), S)
End Function
'--------------------------------------
MichD
Avatar
MichD
A ) La cellule qui doit accueillir le résultat doit avoir un format de
cellule : [M]:SS
Dans la cellule, vous insérez la formule : =Minut(A1:A10)
A1:A10 = plage Í  additionner.
Dans un module "STANDARD", tu copies cette fonction.
'--------------------------------------
Function Minut(rg As Range)
Dim S As Long, T As Double
T = Application.Sum(rg)
On Error Resume Next
S = Split(T, ",")(1)
If Len(Trim(S)) = 1 Then
    S = ((S) / 10) * 60
Else
    S = ((S) / 100) * 60
End If
Minut = TimeSerial(0, Split(T, ",")(0), S)
End Function
'--------------------------------------

Désolé, cette fonction bien si la somme totale de la plage est moindre
de 32767 qui est l'équivalent de 2^15 qui est en même temps la limite
supérieur d'une variable de type "Integer".
C'est probablement la limite supérieure imposée par la section "Minutes"
de la fonction TimeSerial()
x = timeSerial(Hour, Minute, Seconde)
MichD
1 2