Excel arrondir heures selon 2 variables

Résolu
lola -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je me tourne vers vous car je n'arrive pas à trouver la bonne formule, en esperant que quelqu'un puisse m'aider.
Pour mon travail en creche, j'utilise excel pour calculer le nombre d'heure réalisé par les enfants pour editer les factures.
on autorise 1/4h de dépassement avant de facturer l'heure supplementaire (mon probleme ^^)

ex : paul arrive à 8h35 et repart a 16h05
excel calcul =(ARRONDI.SUP((C5-B5)*96;0))/96 (arrondis au 1/4 heure) soit 7h30 heure réalisé
donc avec la formule =(ARRONDI.SUP((D5)*24;0))/24 excel facture 8h


jacque arrive 8h30 et repart à 16h40
excel calcul =(ARRONDI.SUP((C6-B6)*96;0))/96 (arrondis au 1/4 heure) soit 8h15
je dois donc lui facturer que 8h (si j'applique formule ci dessus il facture 9h)

Comment faire??? Quelqu'un auait il la formule magique svp
A voir également:

7 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
essayez celle ci dans tous vos cas de figure je n'en ai testé que 2:
=SI(MOD((D5-C5)*96;4)<=1;ARRONDI.INF((D5-C5)*24;0);ARRONDI.SUP((D5-C5)*24;0))
bonne chance
crdlmnt
ps (formule corrigée à 18:01)
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
2
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour tout le monde,

autre proposition :
=(ENT((B1-A1)*24)+(MOD((B1-A1)*24;1)>0.25)*1)/24

eric
1
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

C'est dû aux erreurs d'arrondi d'excel.
Soustrait 1s (ou moins) aux temps et c'est bon.
Par exemple :
=(ENT((B1-A1)*24)+(MOD((B1-A1-"00:00:01")*24;1)>0.25))/24

eric
1
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Salut Eric
c'est effectivement une autre option.
bon WE
bien amicalement
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Ah, je ne t'avais pas vu vaucluse...
salut ;-)
0
lola
 
merci je testerai ca lundi au boulot je vous tiens au courant merci à tous pour vos propositions
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lola
 
re bonjour,

je viens de testé les solution de eric et vaucluse (pépé je ne peux pas ouvrir le doc sur l'ordi ou je suis)

Au premier abord les formules paraissaient fonctionner mais a force d'essayer des horaires différents ya desfois ou ca ne marche pas pour les 2 formules :

pour les minutes commencant a 25 et se terminant a 40 ex : 9h25-16h40 : il calcule 8h alors que réellement ya 7h15 donc resultat 7h

pour les minutes commencant 55 et se terminant 10 ex : 11h55-18h10 : il calcule 7h alors que reellement ya 6h15 donc resultat 6h

toutes mes autres simul de planing marchent ya que la ou ca beuge bizarre???
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour

Exact. Le problème (que je connaissais mais que j'ai oublié!!) vient du code MOD.

Le calcul renvoie parfois une valeur avec des décimales infimes que l'affichage ne ressort pas, mais qui fait qu'excel considère différemment le <=1 de la condition selon ces décimales.

Pour régler le problème:

=SI(ARRONDI(MOD((D5-C5)*96;4);5)<=1;ARRONDI.INF((D5-C5)*24;0);ARRONDI.SUP((D5-C5)*24;0))

qui élimine les décimales après cinq chiffres derrière la virgule.

et pour la formule d'Eric;, même combat:
=(ENT((B1-A1)*24)+ARRONDI((MOD((B1-A1)*24;1)>0.25)/24;5)

Ca devrait aller mieux
crdlmnt

ps
pour confirmation:dans le cas 11:55 à 18:10, le code MOD sans arrondi renvoie:
1,00000000000001 donc >1
0
lola
 
merci j'ai enfin ma solution :
=SI(ARRONDI(MOD((C6-B6)*96;4);5)<=1;ARRONDI.INF((C6-B6)*24;0);ARRONDI.SUP((C6-B6)*24;0))
merci vaucluse

pour ta solution eric =(ENT((C6-B6)*24)+(MOD((C6-B6-"00:00:01")*24;1)>0,25))/24 il se produit une erreur au heure ronde ex : 10h00-12h00 il calcule 3h ^^ merci pour de ta aide

et pour la formule =(ENT((B1-A1)*24)+ARRONDI((MOD((B1-A1)*24;1)>0.25)*1)/24;5) il me dit qu'il ya une erreur a *1


grand merci pour votre coup de pouce j'aurai pas réussi sans votre aide

j'espere que ce topic pourra aider d'autre personne
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
impeccable lola..
curieux ce *1 qu'Eric avait placé dans sa première proposition (message 2) qu'il n'a pas reporté dans le message 7!
sans le *1 la formule doit fonctionner aussi
bonne route
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Salut vaucluse,

le * 1 en fait je l'avais mis par sécurité pour forcer la conversion, mais comme il y avait d'autres opérations en fait il n'était pas nécessaire.
Et oui, j'ai rajouté une belle erreur en voulant corriger les qcq valeurs erronées ;-)
eric
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonsoir Eric
je regardes encore cette formule avec le *1 sans comprendre pourquoi cela gène, et je m'aperçois que tu n'as pas encore pris l'habitude de remplacer les points que tu utilises pour des décimales par des virgules, utilisées par la majorité des demandeurs
le problème doit être là, en fait,dans le 0.25
bon dimanche
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Le *1 ne gène pas, juste qu'il n'est pas pas nécessaire dans ce cas car il y a d'autres opérations numériques qui convertiront la chaine
Sinon désolé, mais moi je préfère les points et c'est pour ça que j'ai changé le paramétrage par défaut d'excel...
Donc ça restera comme ça :-)
eric
0
pépé35530 Messages postés 2943 Date d'inscription   Statut Membre Dernière intervention   1 389
 
Bonjour,

Un piste :

http://www.cijoint.fr/cjlink.php?file=cj201109/cijfubem1x.xlsx

A+

pépé
-1