Précisions formule "complexe"

Merci beaucoup à vous pour vos deux versions et la simplification.

Cependant, comme dans le fichier que je joins en exemple, les prestations sont désormais proratisées en fonction du régime horaire ...

Un 06:00 / 10:00, ce sera toujours 4 heures de prestation, peu importe le régime horaire. Ce sont seulement quelques codes spécifiques qui se proratisent (VA, VAS, etc.) .

Est-il possible de corriger cela ?

Merci ! ! !

Donc effectivement, après avoir un peu chipoté dans mon planning, la formule fonctionne bien pour les différents codes mais pas pour les durées de prestation, ce qui est plutôt problématique pour le coup

Bonjour !

Merci Steelson ! Et je dois avouer que vous aussi c'est du beau boulot !

Je ne connaissais pas vraiment les fonctions que vous avez utilisé, cela me permet de progresser, merci !

Vous avez plus de bouteille que moi, c'est pourquoi j'ai deux questions :

  • Est-il possible de mettre à jour automatiquement la formule si on rajoute par exemple un horaire de nuit ?

Avec par exemple :

Paramètres!$A$2;0)*INDEX(Paramètres!$B$2:$F$2;EQUIV(#REF!;Paramètres!$B$1:$F$1;0))*$B15;SIERREUR(RECHERCHEV(G14;_T1;2;0)*SI(RECHERCHEV(G14;_T1;3;0);$B15;1)

(J'ai mis $F à la place de $E)

  • Quand on a CM, le mieux serait d'avoir l'horaire qui était affiché. Par exemple, actuellement si on un 21h - 8h, la durée de prestation est de 11h, et si je met CM ensuite, j'ai 00:00 qui s'affiche à la place de 11:00. Savez-vous si c'est possible de réaliser ça ?

Olisbos,

Voilà la formule que tu demandes si je ne m'abuse, dis moi si ça te convient :

=SI(ET(G14="";H14="");"";SIERREUR(EQUIV("*"&G14&"*";Paramètres!$A$2;0)*INDEX(Paramètres!$B$2:$E$2;EQUIV(#REF!;Paramètres!$B$1:$E$1;0))*$B15;SIERREUR(RECHERCHEV(G14;_T1;2;0)*SI(RECHERCHEV(G14;_T1;3;0);$B15;1);SI(ET(G14="23:59"*1;H14="07:59"*1);"08:00"*$B15;SI(ET(G14="20:00"*1;H14="05:00"*1);"09:00"*$B15;SI(ET(G14="21:00"*1;H14="07:00"*1);"10:00"*$B15;SI(ET(G14="21:00"*1;H14="08:00"*1);"11:00"*$B15;SI((H14*24)-(G14*24)>6;((((H14*24)-(G14*24))-0,25)/24);(H14-G14))))))))

Bonjour,

D'abord, attention à ta formule, tu as un #REF!

=SI(ET(E12="";F12="");"";SIERREUR(EQUIV("*"&E12&"*";Paramètres!$A$2;0)*INDEX(Paramètres!$B$2:$E$2;EQUIV(#REF!;Paramètres!$B$1:$E$1;0))*$B13;SIERREUR(RECHERCHEV(E12;_T1;2;0)*SI(RECHERCHEV(E12;_T1;3;0);$B13;1);SI(ET(E12="23:59"*1;F12="07:59"*1);"08:00"*$B13;SI(ET(E12="20:00"*1;F12="05:00"*1);"09:00"*$B13;SI(ET(E12="21:00"*1;F12="07:00"*1);"10:00"*$B13;SI(ET(E12="21:00"*1;F12="08:00"*1);"11:00"*$B13;SI((F12*24)-(E12*24)>6;((((F12*24)-(E12*24))-0,25)/24)*$B13;(F12-E12)*$B13))))))))
  • Est-il possible de mettre à jour automatiquement la formule si on rajoute par exemple un horaire de nuit ?

Avec par exemple :

Paramètres!$A$2;0)*INDEX(Paramètres!$B$2:$F$2;EQUIV(#REF!;Paramètres!$B$1:$F$1;0))*$B15;SIERREUR(RECHERCHEV(G14;_T1;2;0)*SI(RECHERCHEV(G14;_T1;3;0);$B15;1)

(J'ai mis $F à la place de $E)

ok en effet

mais il faut remplacer #REF! dans ta formule ...

exemple pour C13

=SI(ET(C12="";D12="");"";SIERREUR(EQUIV("*"&C12&"*";Paramètres!$A$2;0)*INDEX(Paramètres!$B$2:$F$2;EQUIV(D12;Paramètres!$B$1:$F$1;0))*$B13;SIERREUR(RECHERCHEV(C12;_T1;2;0)*SI(RECHERCHEV(C12;_T1;3;0);$B13;1);SI(ET(C12="23:59"*1;D12="07:59"*1);"08:00"*$B13;SI(ET(C12="20:00"*1;D12="05:00"*1);"09:00"*$B13;SI(ET(C12="21:00"*1;D12="07:00"*1);"10:00"*$B13;SI(ET(C12="21:00"*1;D12="08:00"*1);"11:00"*$B13;SI((D12*24)-(C12*24)>6;((((D12*24)-(C12*24))-0,25)/24)*$B13;(D12-C12)*$B13))))))))
  • Quand on a CM, le mieux serait d'avoir l'horaire qui était affiché. Par exemple, actuellement si on un 21h - 8h, la durée de prestation est de 11h, et si je met CM ensuite, j'ai 00:00 qui s'affiche à la place de 11:00. Savez-vous si c'est possible de réaliser ça ?

Dans ce cas, mets à jour la plage _T1 de l'onglet paramètres

Hello vous deux,

Comme vous le verrez dans l'horaire que je vous ai joint, la formule de Baboutz fonctionne plutôt bien mais la pondération des horaires de nuit ne fonctionne pas encore :

  • Pondération des codes : ok
  • Calcul des horaires avec heure de début et heure de fin (peu importe le régime horaire) : ok
  • Les nuits (21:00/08:00, 23:59/07:59,...) : pas ok car cela pondère la durée de la prestation. Si on est en ½ temps est qu'on fait un 21:00 / 08:00, cela indique 05:30 alors que ça devrait être 11:00.

Concernant la proposition de Steelson, j'avoue avoir un peu décroché ...

Concernant la proposition de Steelson, j'avoue avoir un peu décroché ...

C'est surtout que moi je n'ai pas encore accroché les wagons sur les heures, je me suis appuyé sur la compréhension de Baboutz et sa formulation !

Salut Olisbos !

Je pense que la formule de Steelson est bonne et plus efficace. Je l'ai corrigée pour parvenir à tes fins.

Voici le fichier, c'est bien ce que tu attendais ?

J'ai également mit la possibilité de changer la formule si il y a un rajout d'un horaire de nuit, tout est expliqué dans ta feuille paramètre !

Bonjour Baboutz

Je pense que la formule de Steelson est bonne et plus efficace.

Pas sûr ... mais mon propos était de tenter de mettre en paramètres externes à la formule les valeurs ... j'avoue que le sujet était complexe et tu as sans doute mieux compris que moi cette problématique d'horaires.

Je tiens à vous remercier tous les deux pour l'aide apportée.

J'ai pu un peu encore bidouillé la formule pour obtenir exactement ce que je souhaitais. Ça fonctionne très bien.

Mon modèle d'horaires est en l'état actuel des choses beaucoup plus facile d'utilisation qu'avant, et ce grâce à vos précieux conseils !

Je repasserai peut-être d'ici quelques mois pour un peaufine

Encore merci ! ! !

Avec plaisir, tu pourras me notifier que je vois où ça en ait

Et n'oublie pas pour ce post :

D'acc !

Rechercher des sujets similaires à "precisions formule complexe"