Re : Petite formule à trouver
Bonjour à tous, bonjour Victor21
Une autre méthode en pièce jointe, sans colonne intermédiaire, mais avec une formule matricielle à valider avec Ctrl+maj tempo+entrer.
Je pense que c'est bon, mais il faut mieux vérifier.
Pour comprendre, Cf. les formules en colonne W. On ne doit pas avoir de journée du type travail le matin, repos l'après midi pour que cela fonctionne.
Dans Excel, l'unité de travail du temps est le jour, donc 1 heure = 1/24 par exemple, 24 h = 1.
On ne fait pas le calcul sur la ligne du lundi (car le lundi matin, on ne peut pas avoir déja plus de 35 h de travail !. Le mardi matin, si on commence après 11h, si). Le dimanche est aussi un cas particulier.
Exemple : en W13 (samedi donc pour commencer dans un cas "simple"), on doit calculer
B13+(1-E12)
(B13 pour connaitre la durée du repos avant la reprise du travail sur la ligne 13, le matin, et 1-E12 pour calculer la durée du travail entre l'arrêt du travail et minuit sur la ligne 12)
mais si E12 est vide (donc E12=0), on doit faire avec
B13+1-E12+1-E11 ce qui est fait avec (il y a un 1 en plus car la ligne vide compte pour 24 h)
B13+1-E12+(JOURSEM(A12)>2)*(E12="")*(1-E11)
En W14, le dimanche, cela donne
B14+1-E13+(JOURSEM(A13)>2)*(E13="")*(1-E12)
mais il faut traiter le dimanche différemment s'il est de repos, (B14 est vide, donc ce jour compterait pour 0 avec la formule ci-dessus, or il doit compter pour 1), ce qui est fait avec
SI((B14="")*(JOURSEM(A14)=1);1;0)+B14+1-E13+(JOURSEM(A13)>2)*(E13="")*(1-E12))
et lorsque ce n'est pas le dimanche, et que la ligne est vide, ce n'est pas la peine de faire le calcul, ce qui est fait avec
SI((B14="")*(JOURSEM(A14)>1);"";SI((B14="")*(JOURSEM(A14)=1);1;0)+B14+1-E13+(JOURSEM(A13)>2)*(E13="")*(1-E12))
En W15, on pourrait faire avec MAX(W8:W14) mais comme je cherche à trouver une formule indépendante, pour pouvoir l'utiliser toute seule, j'ai mis une formule matricielle utilisant la même forme que la dernière formule ci-dessus, mais utilisant des plages, par exemple B9:B14 au lieu de B14.
En C15, j'ai mis la même formule qu'en W15, transformée en test de la forme SI(formule en W15 <35/24;"Repos hebdo !";"") avec quelques $ en plus pour pouvoir copier facilement cette formule en J15, R15 et en dessous en lignes 25, 35 et 45.
@ plus