Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

SOMMEPROD avec condition

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ranipet

XLDnaute Junior
Bonjour à tous,

Je crois qu'un fichier exemple est inutile ici mais si vous en voulez un, il s'agit du même que celui-ci (je tape ma formule en F3 de l'onglet Récap).

Bref, je voudrais faire un SOMMEPROD des colonnes D et E si une condition est respectée sur B.
L'onglet contenant les données s'appelle 'Mouvements', celui où je fais la somme 'Récap'.

J'ai donc essayé cette formule :
=SOMMEPROD((Mouvements!B:B=Récap!$B$3)*(Mouvements!D:D)*(Mouvements!E:E))

...qui ne marche pas. Alors que celle-ci fonctionne :
=SOMMEPROD((Mouvements!B3:B100=Récap!$B$3)*(Mouvements!D3:D100)*(Mouvements!E3:E100))


A votre avis, y a-t-il une solution pour qu'il me prenne toute la colonne ou dois-je intégrer la dernière ligne avec un INDIRECT et un NBVAL ?
 
Re : SOMMEPROD avec condition

Bonjour,

La fonction SOMMEPROD() ne peut fonctionner sur une colonne entière, c'est pourquoi ta première formule ne fonctionne pas alors que la seconde oui.

Si tu veux automatiser une solution consisterait à nommer tes zones en utilisant les fonctions DECALER() et NBVAL()
(par exemple comme ici )

Bien à toi,

mth
 
Re : SOMMEPROD avec condition

re 🙂

Tu risques de générer une formule monstrueuse, car il faudra utiliser DECALER() pour chaque condition de ton SOMMEPROD(), perso je nommerais les zones.

Bon après-midi,

mth
 
Re : SOMMEPROD avec condition

re 🙂

Disons que j'aime bien les formules monstrueuses (je me soigne) 😀
Je n'ai pas réussi à insérer du DECALER dans ma formule, peux-tu m'aider ?


Ranipet (j'ai deux comptes, un au boulot et un perso).
 
Re : SOMMEPROD avec condition

re 🙂

Version 1: tu nommes tes zones:
Zone Ref:
Code:
=DECALER(Mouvements!$B$3;;;NBVAL(Mouvements!$B:$B)-1;)

Zone Val
Code:
=DECALER(Mouvements!$E$3;;;NBVAL(Mouvements!$B:$B)-1;)

Zone Qt
Code:
=DECALER(Mouvements!$D$3;;;NBVAL(Mouvements!$B:$B)-1;)

Et ta formule devient:

Code:
=SOMMEPROD((Ref=Récap!$B3)*Qt*Val)

Version 2, tu ne nommes pas les zones, et ta formule pourrait-être: 🙂eek🙂

Code:
=SOMMEPROD((DECALER(Mouvements!$B$3;;;NBVAL(Mouvements!$B:$B)-1;)=Récap!$B$3)*(DECALER(Mouvements!$D$3;;;NBVAL(Mouvements!$B:$B)-1;))*(DECALER(Mouvements!$E$3;;;NBVAL(Mouvements!$B:$B)-1;)))

Bien à toi,

mth
 
Re : SOMMEPROD avec condition

re,

Merci ça marche à merveille !

J'ai à nouveau besoin d'aide cependant 😱
Je voudrais calculer la valeur unitaire de sortie de stock dans le premier onglet.
Or j'ai l'impression de ne pas pouvoir imbriquer LIGNE dans DECALER et SOMMEPROD. Je voudrais que la formule en I6 fonctionne mais avec une référence relative (et donc fasse un SOMMEPROD pour les lignes au-dessus).

=> Une solution 😕

Merci.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…