XL 2010 Somme des cellules d'une ligne en fct du N° semaine d'une date

stevbrun

XLDnaute Nouveau
Bonjour,

J'ai un fichier avec 2 onglets Journalier et Hebdo:
- Dans Journalier:
Ligne 1 : des dates
Ligne 2 : des valeurs

- Dans Hebdo:
Ligne 1 : des numéros de semaine
Ligne 2 : "somme des valeurs de la ligne de 2 de Journalier en fonction du numéro de semaine de la date de la Ligne 1 de Journalier"

Je bloque sur une formule pour calculer la ligne 2 de l'onglet Hebdo que je pourrais facilement faire glisser pour toutes les semaines de l'année.

j'ai déjà la formule pour trouver le numéro de semaine d'une date (si date en A1):
=ENT((A1-SOMME(MOD(DATE(ANNEE(A1-MOD(12-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7)

Ci-joint le fichier pour aide/test

Merci d'avance.
 

Pièces jointes

  • Classeur1.xlsx
    14.3 KB · Affichages: 33

Dugenou

XLDnaute Barbatruc
Bonjour,
Avec une ligne 4 supplémentaire ou on calcule le N° de semaine avec la formule proposée :
en E2 : =SOMMEPROD((Journalier!$E$4:$NF$4=Hebdo!E1)*(Journalier!$E$2:$NF$2))
se recopie à droite

sans ligne supplémentaire et toujours en E2 :
=SOMMEPROD(((ENT((Journalier!$E$1:$NF$1-SOMME(MOD(DATE(ANNEE(Journalier!$E$1:$NF$1-MOD(12-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7))=Hebdo!E1)*(Journalier!$E$2:$NF$2))

Cordialement
 

CISCO

XLDnaute Barbatruc
Bonjour

NO.SEMAINE ne semble pas fonctionner en matriciel, donc on ne peut pas utiliser
Code:
SOMMEPROD(SI(NO.SEMAINE(Jour!$E$1:$NF$1)=Hebdo!E1;Jour!$E$2:$NF$2))
.

Donc, j'ai fait avec
Code:
=SOMMEPROD(SI(ENT((Jour!$E$1:$NF$1-Jour!$E1+11)/7)=Hebdo!E1;Jour!$E$2:$NF$2))
toujours en matriciel, donc à valider avec Ctrl+maj+entrer, valable seulement pour 2016.

Si tu veux utiliser ce type de calcul pour une autre année, essaye avec
Code:
SOMMEPROD(SI(ENT((Jour!$E$1:$NF$1-Jour!$E1+(MAX((JOURSEM(Jour!$E$1:$K$1)=1)*Jour!$E$1:$K$1)-Jour!E$1+9))/7)=Hebdo!E1;Jour!$E$2:$NF$2))
toujours en matriciel.

A vérifier, bien sûr.

@ plus

P.S : J'ai modifié les formules dans Jour!B1:NF1. Si tu veux utiliser cette feuille pour une autre année, il suffit de changer l'année dans Jour!B1.

ReP.S : Bonjour Dugenou

RereP.S : Ma dernière proposition, normalement faite pour n'importe quelle année, ne fonctionne pas correctement.
 

Pièces jointes

  • Classeur stevbrun.xlsx
    21.2 KB · Affichages: 34
Dernière édition:

stevbrun

XLDnaute Nouveau
Bonjour,
Avec une ligne 4 supplémentaire ou on calcule le N° de semaine avec la formule proposée :
en E2 : =SOMMEPROD((Journalier!$E$4:$NF$4=Hebdo!E1)*(Journalier!$E$2:$NF$2))
se recopie à droite

sans ligne supplémentaire et toujours en E2 :
=SOMMEPROD(((ENT((Journalier!$E$1:$NF$1-SOMME(MOD(DATE(ANNEE(Journalier!$E$1:$NF$1-MOD(12-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7))=Hebdo!E1)*(Journalier!$E$2:$NF$2))

Cordialement
Bonjour

NO.SEMAINE ne semble pas fonctionner en matriciel, donc on ne peut pas utiliser
Code:
SOMMEPROD(SI(NO.SEMAINE(Jour!$E$1:$NF$1)=Hebdo!E1;Jour!$E$2:$NF$2))
.

Donc, j'ai fait avec
Code:
=SOMMEPROD(SI(ENT((Jour!$E$1:$NF$1-Jour!$E1+11)/7)=Hebdo!E1;Jour!$E$2:$NF$2))
toujours en matriciel, donc à valider avec Ctrl+maj+entrer, valable seulement pour 2016.

Si tu veux utiliser ce type de calcul pour une autre année, essaye avec
Code:
SOMMEPROD(SI(ENT((Jour!$E$1:$NF$1-Jour!$E1+(MAX((JOURSEM(Jour!$E$1:$K$1)=1)*Jour!$E$1:$K$1)-Jour!E$1+9))/7)=Hebdo!E1;Jour!$E$2:$NF$2))
toujours en matriciel.

A vérifier, bien sûr.

@ plus

P.S : J'ai modifié les formules dans Jour!B1:NF1. Si tu veux utiliser cette feuille pour une autre année, il suffit de changer l'année dans Jour!B1.

ReP.S : Bonjour Dugenou

Dugenou, CISCO merci pour votre aide!
ça fontionne nickel
j'ai pris la formule suivante pour mon tableau

=SOMMEPROD(((ENT((Journalier!$E$1:$NF$1-SOMME(MOD(DATE(ANNEE(Journalier!$E$1:$NF$1-MOD(12-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7))=Hebdo!E1)*(Journalier!$E$2:$NF$2))
 

CISCO

XLDnaute Barbatruc
Bonsoir

On peut aussi faire avec
Code:
=SOMME(DECALER(Jour!$E2;;;;COLONNE(A:A)*7-JOURSEM(Jour!$E1)+2))-SOMME($D2:D2)

ou encore avec
Code:
=SOMME(DECALER(Jour!$E2;;(COLONNE(A:A)-1)*7-JOURSEM(Jour!$E1)+2;;7))

ou encore avec
Code:
SOMME(DECALER(Jour!$E2;;(E1-1)*7-JOURSEM(Jour!$E1)+2;;7))

ou encore ...

@ plus
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 199
Messages
2 086 160
Membres
103 147
dernier inscrit
tubaman