SOMME.SI.ENS + fonction OU
Bonjour,
Cela fait de longues heures que j'essaie de simplifier une formule, en vain..
J'ai cette formule ci:
=SOMME.SI.ENS(CA;TYPE;1;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA6)+SOMME.SI.ENS(CA;TYPE;1;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA7)
Cette SOMME.SI.ENS se répète une vingtaine de fois.
La condition "entre les deux dates" est toujours la même.
Le code Type reste également le même
Mon problème est sur mon code produit. Je voudrais la somme du CA entre ces dates, pour le type 1, pour les produits AA6 , AA7 etc sans avoir à répéter la formule.
Je n'arrive pas à faire fonctionner le OU, ni les {}. Le résultat ressort à 0, ou prend en compte uniquement le premier critère.
Mes codes produits sont des références.
J'espère avoir été assez claire et j'espère que vous pourrez m'aider
MERCI !
Alexis
Bonjour Alexis,
La fonction SOMME.SI.ENS ne gère pas directement les conditions OR (OU).
Vous pouvez faire une petite astuce en utilisant une combinaison de SOMMEPRODUCT (SOMMEPROD) et -- (double négation) qui transforme les valeurs TRUE/FALSE en 1/0 respectivement. Une version de la formule qui devrait faire le travail. Elle additionne les CA si la date est dans l'intervalle spécifié, si le type est 1 et si le code produit est l'un des codes que vous voulez :
=SOMMEPROD((TYPE=1)*(DATE>=$A$3)*(DATE<=$B$3)*((CODE PRODUIT="AA6")+(CODE PRODUIT="AA7")+(CODE PRODUIT="AA8"))*CA)Remplacez "AA8" par les codes produits supplémentaires que vous voulez inclure dans votre somme. J'espère que cela vous aidera !
Hello,
@Abderrahmane BENALI, avec un petit subterfuge on peut gérer les OU
Et après tu fais une somme de somme.si.ens du style :
=SOMME(SOMME.SI.ENS(CA;TYPE;1;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA6:AAx))Un exemple dans le fichier ci-dessous
@+
Bonjour BAROUTE78
Merci pour votre réponse ^^, cependant, j'ai remarqué qu'il y avait une petite confusion dans la syntaxe que vous avez fournie. La plage de cellules contenant les codes produits (AA6, AA7, ..., AAx) devrait être utilisée comme le dernier argument de la fonction SOMME.SI.ENS, et non pas être incluse dans le critère lui-même il me semble.
La formule devrait donc ressembler à cela si je ne me trompe pas :
=SOMME(SOMME.SI.ENS(CA;TYPE;1;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;$Z$1:$Z$n))où $Z$1:$Z$n représente la plage de cellules contenant les codes produits. Il suffit de remplacer "Z1:Zn" par la plage de cellules réelle dans la feuille de calcul.
Edit : Yes oui c'est l'iéde, avoir une plage où t'as tous les critères, ça peut être en colonne AA également
Nan j'avoue j'ai lu un peu vite mais c'était bien l'idée en effet (Mauvaise foi quand tu nous tiens
@+
Bonjour et merci pour vos retours! :D
Abderrahmane BENALI, la formule me parait bonne, mais j'ai ce message d'erreur:
"Le paramètre 2 de la fonction MULTIPLY attend des valeurs du type nombre. Mais CA est du type texte et ne peut pas être forcé pour être nombre."
J'ai tenté de convertir en format nombre, mais pas de changement.
J'ai oublié de préciser que je suis actuellement sur Google Sheet.
Pour la méthode BAROUTE, je n'ai pas de message d'erreur, mais les résultats sont faux. En effet, cela ne prend pas en compte tous les CA.
=SOMME(SOMME.SI.ENS(CA;TYPE;2;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA6))
=SOMME(SOMME.SI.ENS(CA;TYPE;2;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA6:AA10))
La seconde formule me donne un résultat inférieur à la première, sachant que je n'ai pas de CA négatif.
De plus, est ce possible d'avoir une plage non continue? AA6:AA10 puis AA12:AA15 , en rajoutant un critère peut être?
Encore merci!
Bonjour Alexis,
Excusez moi pour la réponse tardive, concernant ma solution, le problème semble être que le champ CA est de type texte. Vous pouvez essayer de convertir ce champ en nombre en utilisant la fonction VALEUR(), comme suit :
=SOMMEPROD((TYPE=1)*(DATE>=$A$3)*(DATE<=$B$3)*((CODE PRODUIT="AA6")+(CODE PRODUIT="AA7")+(CODE PRODUIT="AA8"))*VALEUR(CA))En ce qui concerne votre question sur l'utilisation d'une plage non continue dans la formule, cela n'est malheureusement pas possible directement. Mais, vous pouvez le faire en ajoutant plusieurs formules SOMME.SI.ENS, une pour chaque plage, et les sommer, comme suit
=SOMME(SOMME.SI.ENS(CA;TYPE;2;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA6:AA10)) + SOMME(SOMME.SI.ENS(CA;TYPE;2;DATE;">="&$A$3;DATE;"<="&$B$3;CODE PRODUIT;AA12:AA15))J'espère que cela vous aidera !
Bonjour,
Merci du retour, j'ai encore un soucis avec la première méthode, il faut que j'essaie de trouver pourquoi.
Je n'ai pas eu le temps de tester la deuxième
Mais un gros merci pour l'aide, c'est enrichissant
Alexis