SOMMEPROD avec condition

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 ?
 

mth

XLDnaute Barbatruc
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
 

mth

XLDnaute Barbatruc
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
 

Ranipet

XLDnaute Junior
Re : SOMMEPROD avec condition

re,

Merci ça marche à merveille !

J'ai à nouveau besoin d'aide cependant :eek:
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 :confused:

Merci.
 

Pièces jointes

  • Exemple SOMMEPROD DECALER LIGNE.zip
    9.9 KB · Affichages: 148

Discussions similaires

Réponses
12
Affichages
252
Réponses
11
Affichages
565

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87