XL 2016 Sommeprod multi-critères avec ";" ou "*"

jaurelie

XLDnaute Nouveau
Bonjour,

J'utilise la fonction sommeprod pour calculer des ventes en fonction de plusieurs critères.
En me rendant sur un forum, j'ai vu que je n'utilise pas correctement la formule.
Pourtant la "bonne manière" ne fonctionne pas dans mes tableaux et j'aimerais comprendre pourquoi?

(1) Je l'utilise sous cette forme SOMMEPROD ( (critère1) * (critère2) ; (plage à sommer) )
(2) Et la bonne manière serait SOMMEPROD ( (critère1) * (critère2) * (plage à sommer) )

Dans le fichier ci-joint, je cherche à savoir toute la production d'un segment (plusieurs produits) sur une date
Donc critère 1 = le segment, critère 2 = la date, plage à sommer = les ventes

La version 2 cela me met "#VALEUR"


Pourriez-vous m'expliquer d'où vient l'erreur?

Merci beaucoup
 

Pièces jointes

  • Exemple.xlsx
    12.2 KB · Affichages: 46

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir jaurelie,

Pour la deuxième formule, le sommeprod fait la somme du produit de trois termes:
(Production!$B$1:$B$13=Résultat!B$2) qui donne : {FAUX;VRAI;VRAI;VRAI;VRAI;VRAI;VRAI;FAUX;FAUX;FAUX;FAUX;FAUX;FAUX}
avec
(Production!$E$1:$E$13=Résultat!$A10)
{FAUX;VRAI;VRAI;FAUX;FAUX;FAUX;FAUX;VRAI;VRAI;FAUX;FAUX;FAUX;FAUX}
avec
(Production!$F$1:$F$13) qui donne :
{"Vente";6;4;7;5;8;6;6;8;5;7;4;6}

Quand on fait le produit du premier élément, cela donne: Faux * Faux * "Ventes". On aboutit à une erreur puisqu'on ne sait pas faire le produit avec du texte. Faux*Faux donne 0. 0 multiplié par un texte ("Ventes") entraine une erreur. Si dans le SommeProd, on commence les plages à la ligne 2 (on omet la ligne d'en-têtes) , alors la formule fonctionne correctement.
Code:
=SOMMEPROD((Production!$B$2:$B$13=Résultat!B$2)*(Production!$E$2:$E$13=Résultat!$A10)*(Production!$F$2:$F$13))


Mais alors pourquoi la première formule donne-t-elle le bon résultat ?

Je pense que SommeProd agit autrement et fait plutôt une formule équivalente à :
si( (Production!$B$1:$B$13=Résultat!B$2) * (Production!$E$1:$E$13=Résultat!$A3)=1 alors on somme (Production!$F$1:$F$13)
Donc le premier terme étant Faux, SommeProd ne retient pas la valeur Production!$E$1 et n'essaye donc pas de l'ajouter à la somme finale.
Mais c'est peut-être une toute autre explication.
 

Discussions similaires

Statistiques des forums

Discussions
312 178
Messages
2 085 980
Membres
103 079
dernier inscrit
sle