Sommeprod sur plusieurs onglets

J'ai des onglets nommé : JANVIER, FÉVRIER, MARS, AVRIL, MAI, JUIN, JUILLET,AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE ET DECEMBRE. Je calcul un total poar rapport à un nom de compagnie dans un onglets mais j'aimerais le calculer sur tout les onglets.

J'ai cette formule qui fonctionne pour un mois mais j'aimerais calculer sur les 12 mois s.v.p.

=SOMMEPROD(((JANVIER!A4:A36="Capsol")*(JANVIER!E4:E36="X")*(JANVIER!D4:D36))+((JANVIER!A4:A36="Capsol")*(JANVIER!F4:F36="X")*-(JANVIER!D4:D36)))

Merci de votre aide.

Bonsoir,

A essayer :

=SOMMEPROD(((JANVIER:DECEMBRE!A4:A36="Capsol")*(JANVIER:DECEMBRE!E4:E36="X")*(JANVIER:DECEMBRE!D4:D36))+((JANVIER:DECEMBRE!A4:A36="Capsol")*(JANVIER:DECEMBRE!F4:F36="X")*-(JANVIER:DECEMBRE!D4:D36)))

Amicalement

Désolé ca fonctionne pas j'ai cette erreur dans la cellule : #NOM?

Merci

Bonjour

Tu renommes tes onglets dans une syntaxe correspondant à Excel: Janvier, Février, Mars, Avri, Mai, Juin, Juillet, Août,....Décembre en faisant attention aux accents.

Suite de quoi, ta formule pourraît-être:

=SOMMEPROD((ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!E4");LIGNE($1:$33)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$33)-3;0))="Capsol")*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!F4");LIGNE($1:$33)-3;0))="X")*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$33)-3;0))))

Que nous adapterons si déjà tu obtiens un résultat avec celle-ci et si tu joins un fichier

Cordialement

Re,

Déso mais sans fichier j'avais pas vérifié. En fait SOMMEPROD n'aime pas le multi-feuilles.

Une solution est d'appliquer SOMMEPROD sur chaque feuille et ce dans la même cellule et ensuite de mettre ta formule récapitualtif comme somme globale --> exemple si en G1 --> sur la feuille recap SOMME(JANVIER:DECEMBRE!G1)

Amicalement

Amadéus a écrit :

Bonjour

Tu renommes tes onglets dans une syntaxe correspondant à Excel: Janvier, Février, Mars, Avri, Mai, Juin, Juillet, Août,....Décembre en faisant attention aux accents.

Suite de quoi, ta formule pourraît-être:

=SOMMEPROD((ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!E4");LIGNE($1:$33)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$33)-3;0))="Capsol")*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!F4");LIGNE($1:$33)-3;0))="X")*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$33)-3;0))))

Que nous adapterons si déjà tu obtiens un résultat avec celle-ci et si tu joins un fichier

Cordialement

OK je n'ai plus d'erreur mais le résultat est pas bon. Mon fichier a 840K donc je ne peux pas le joindre y a t il un autre moyen de joindre mon fichier ???

Bonjour

Oui, ce n'érait pas exactement ta formule (tu étais prévenu, c'était pour voir si un résultat s'affichait)

la bonne formule devrait (sinon on regardera ton fichier, mais la méthode est là)

=SOMMEPROD((ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!E4");LIGNE($1:$33)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$33)-3;0))="Capsol")*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$33)-3;0)))-(ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!F4");LIGNE($1:$33)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$33)-3;0))="Capsol")*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$33)-3;0))))

Cordialement

Un gros merci a toi ca fonctionne super bien.

Bonsoir

Je viens de regarder ton fichier

Ta cellule total

=SOMMEPROD(SOMME.SI(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D37");"<>"&"";INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D37")))

Cordialement

Merci beaucoup si tu vois d'autres améliorations ne te gêne pas.

Amadéus a écrit :

Bonsoir

Je viens de regarder ton fichier

Ta cellule total

=SOMMEPROD(SOMME.SI(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D37");"<>"&"";INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D37")))

Cordialement

Ca fonctionne bien Amadéus, mais si j'ajoute des lignes sur les mois Janvier exemple, ta formule calcul le résultat en !D37, ce qui n'est plus exact avec le rajout de ligne. J'espère que tu me comprends.

Comment peux-t-on faire le calcul si les cellules sont différentes.

Merci.

Bonsoir

Stop!!Si tu ajoutes une ou plusieurs lignes sur un ou plusieurs mois, les formules précédentes te renverront un résultat FAUX car il faudra alors les modifier.

Pour bien comprende:

Les fonctions SOMMEPROD exigent que les champs de recherche soient de longueurs identiques.

Si tu regardes les premières formules, elles comprennent toutes la partie LIGNE($1:$33)-3, ce qui du reste est faux puisqu'elles devraient contenir LIGNES($1:$36)-3 (veille à les modifier)

La seule solution est de prévoir large et de passer par exemple toutes tes feuilles à 50, 80 ou 100 lignes selon l'estimation de ton besoin.

Avec 100 Lignes, la formule serait en C22

=SOMMEPROD((ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!E4");LIGNE($1:$100)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$100)-3;0))=A22)*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$100)-3;0)))-(ESTNUM(CHERCHE("X";T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!F4");LIGNE($1:$100)-3;0)))))*(T(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!A4");LIGNE($1:$100)-3;0))=A22)*(N(DECALER(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D4");LIGNE($1:$100)-3;0))))

et le total en G23

=SOMMEPROD(SOMME.SI(INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D101");"<>"&"";INDIRECT(TEXTE(DATE(2011;{1.2.3.4.5.6.7.8.9.10.11.12};1);"mmmm")&"!D101")))

Cordialement

Ok un gros merci a toi, je vais modifier le tout. Alors si je comprends bien il n'y a pas moyen que ca s'incrémente tout seul ???

Merci

Rechercher des sujets similaires à "sommeprod onglets"