Fonction SOMMEPROD avec condition

Bonjour à tous,

J’ai une question à propos de la fonction SOMMEPROD. J'ai recherché sur le forum mais aucune réponse ne me convient réellement. Voici la formule que j’ai : =SOMMEPROD((C4:C9)*(D4:D9)* ((F4:F9)-(E4:E9)) )

Serait-il possible d’ajouter une condition afin de faire en sorte que si la valeur en colonne F est inférieure à celle en colonne E (c'est-à-dire par exemple F4<E4 donc F4-E4<0) alors le calcul pour la ligne considérée (en l'occurrence la ligne 4 pour l'exemple) soit égal à 0 ?

J'espère avoir été clair dans mes explications. Je ne mets volontairement pas de fichier joint car le contexte de mon exemple n’est pas évident à saisir et risquerait de perturber plus qu’autre chose.

Merci par avance pour vos éléments de réponses.

Cordialement.

Romain Br.

Peux-tu rajouter une colonne ? ce serait plus simple.

Sinon, je pense que SOMMEPROD est limité, il faudra passer à {SOMME} matriciel.

Je fais un bout d'essai (un fichier aurait quand même été bien juste opour avoir quelques valeurs prêtes à l'emploi)

Bonsoir Romain Br.,

Je vous propose de tester la formule suivante :

=SOMMEPROD((C4:C9)*(D4:D9)*(F4>=E4)*((F4:F9)-(E4:E9)) )
=SOMME(SI(F4:F9<E4:E9;0;((C4:C9)*(D4:D9)* ((F4:F9)-(E4:E9)) )))

à valider en matriciel par Ctrl+Maj+Entrée


JFL : le test Fx<Ex doit être fait pour chaque ligne

Bonjour,

Tu l'as ecrite toi meme ta condition !

=SOMMEPROD((C4:C9)*(D4:D9)* ((F4:F9)-(E4:E9))>0 )

Steelson a écrit :

JFL : le test Fx<Ex doit être fait pour chaque ligne

Oups !

=SOMMEPROD((C4:C9)*(D4:D9)*(F4:F9>=E4:E9)*((F4:F9)-(E4:E9)) )

Bonsoir,

Tout d'abord merci d'avoir répondu.

@Steelson : je ne peux malheureusement pas rajouter de colonne car je réalise déjà ce SOMMEPROD sur plus de 100 colonnes et cela me ferait donc rajouter une colonne à chaque fois et donc une fichier trop volumineux. Pour la deuxième solution que tu me proposes, cela ne fonctionne pas car je crois bien que cela ne compare pas ligne à ligne (Fx>Ex comme tu le disais si justement)...

@JFL : la condition que tu rajoutes ne s'applique qu'à la ligne 4 or je voudrais que cela s'applique à la ligne considérée à chaque fois... pour la seconde solution que tu me proposes, j'ai bien essayé mais cela ne fonctionne pas, même remarque que pour Steelson, est-il possible de comparer ligne par ligne en renseignant des plages de cellules ?

@DjiDji59430 : j'ai aussi essayé de rajouter cette condition mais elle ne fonctionne pas non plus, je n'obtiens pas le bon résultat :/

Je commence à me dire que je ne vois aucune solution... en avez-vous d'autres ?

Merci par avance.

Romain Br.

Romain Br. a écrit :

Bonsoir,

@DjiDji59430 : j'ai aussi essayé de rajouter cette condition mais elle ne fonctionne pas non plus, je n'obtiens pas le bon résultat :/

Romain Br.

Tu peux nous faire un fichier test avec les valeurs que tu attends ?

Voilà un petit exemple que je viens de créer afin d'essayer d'expliciter mon besoin.

Il s'agit dans ce fichier de calculer les gains ramassés en fonction de la vente de pomme ou de poire dans différents pays. Il faut mettre les formules dans le 2eme tableau et dans le 3eme tableau ce sont les valeurs que je souhaiterais obtenir.

Est-ce que mon exemple illustre bien ce que je souhaite ?

Merci par avance,

Romain Br.

21classeur2.xlsx (10.99 Ko)

Je vous livre une solution dans le fichier joint.

La seule contrainte étant, puisqu'il s'agit d'un % cumulé, de considérer que les 100% se poursuivent sur les semaines suivantes.

20romain-bis.xlsx (12.17 Ko)

J'ai oublié de préciser que justement il ne faut pas toucher au premier tableau. L'une des contraintes est justement le fait que ne doit pas apparaitre la prolongation du "100%" une fois que l'on a atteint ce pourcentage. Voila pourquoi je souhaite faire une différence dans mon SOMMEPROD et que je veux intégrer une condition afin que le passage de 100% à une case vide ensuite n'ai aucune influence sur mon résultat. Vois-tu ce que je veux dire ?

Romain Br. a écrit :

@Steelson : Pour la deuxième solution que tu me proposes, cela ne fonctionne pas car je crois bien que cela ne compare pas ligne à ligne (Fx>Ex comme tu le disais si justement)...

je "crois bien" que oui, puisque j'ai essayé cette formule matricielle sur un bout de fichier et cela fonctionne parfaitement ! l'as-tu testée et intégrée à ton projet ?

Bonjour Steelson,

Peux-tu essayer de mettre en place ta formule dans l'exemple que j'ai mis en pièce-jointe (Classeur 2) pour voir si donne bien les résultats attendus ? Car je n'y parviens pas.

Romain Br.

Voici, en restant sur sommeprod ...

ce n'est pas exactement la même structure d'informations (la colonne C contient ici du texte)

22classeur2.xlsx (11.55 Ko)

Mea Culpa Steelson !

Cette formule fonctionne parfaitement, juste quelques soucis de syntaxe. Je tiens donc à grandement te remercier pour cette aide, tu viens de débloquer ma situation et je peux ainsi continuer à développer ce que je souhaite.

Merci également à ceux qui ont pris le temps de me répondre.

Bonne journée à tous.

Cordialement.

Romain Br.

Rechercher des sujets similaires à "fonction sommeprod condition"