Addition vers le haut ET vers le bas (sans VBA)

Fermé
sjojo59 Messages postés 6 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 23 avril 2013 - 22 avril 2013 à 16:47
sjojo59 Messages postés 6 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 23 avril 2013 - 23 avril 2013 à 00:39
Bonjour,

voici l'exemple en image

https://www.developpez.net/forums/attachments/p116153/logiciels/microsoft-office/excel/somme-cellules-variables-vers-vers-bas-macro/excel-dl2.jpg/


Je voudrais donc calculer pour chaque trajet le nombre d'heure effectuées à partir de 22h jusque 6h. Puis entre chaque jour additionner ce qu'on a obtenu depuis 22h jusque 6h.

Dans l'expemple : en N3 on a 4:20 de travaillé dans le trajet de la ligne 3

En ligne 5 obtient en N 3:20 effectués jusque 6h

Dans la ligne 4 on est à cheval entre 2 jours donc on calcul vers le haut (depuis 22h) et vers le bas (jusque 6h) le travail de nuit. (le résultat est d'ailleurs 7:40 et non 6:20!)

Attention il peut y avoir 1 ou plusieurs lignes dans une journée!

j'avais trouvé cette formule (à mettre en N10)

=SOMME(INDIRECT("N"&EQUIV(B11-1;B$1:B11)):N9)+SOMME(INDIRECT("N"&EQUIV(B11+1;B:B)-2):N11)

mais ça additionne toute la journée du 3/04 et toute la journée du 4/04

Ce que je voudrais c'est additionner la journée du 3/04 QUE à partir de 22h jusque le 4/04 à 6h.

pour le calcul du trajet on a par exemple en N5 sachant que Y1="22:00" et AA1="6:00"

SI(OU(ET(M5<>"";M5<AA$1);ET(L5<>"";L5<AA$1);J5>=Y$1);T5;SI(ET(J5<>"";J5<AA$1);AA$1-J5;SI(ET(M5<>"";M5>Y$1);M5-Y$1;"")))

Cette formule me va donc inutile de s'attarder dessus!

J'espère avoir été assez clair. N'hésitez pas à me poser vos questions si besoin

Merci d'avance!

Jojo
A voir également:

1 réponse

sjojo59 Messages postés 6 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 23 avril 2013
23 avril 2013 à 00:39
Je pense que je suis pas loin de la solution. Ça donne à peu près ça en N8 par exemple:

=SI(A8<>"";SOMMEPROD(((INDIRECT("J"&EQUIV(B9-1;B$1:B9)):J7)>22/24)*INDIRECT("N"&EQUIV(B9-1;B$1:B9)):N7)+SOMMEPROD((INDIRECT("J"&EQUIV(B9+1;B:B)-2):J9)<6/24)*INDIRECT("N"&EQUIV(B9+1;B:B)-2):N9);...

"..." veut dire que je connais la suite qui servira aux calculs par trajet (dans l'exemple, ça servira pour N3,N5,N6,N7,N9) donc inutile d'aller plus loin.

Je ne maitrise pas très bien SOMMEPROD mais ça me parait une très bonne fonction pour ce que je désire. Les "bouts" de formule "INDIRECT(...&€EQUIV(...):..." sont déja utilisés dans d'autres formules de mon tableau d'origine et fonctionne bien le problème c'est que je n'arrive pas à imbriquer ça avec le SOMMEPROD.

Quelqu'un pourrait essayer de corriger ?

Merci
0