SOMMEPROD avec conditions

Résolu
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Je cherche à faire le produit des colonnes "valeurs" et "coeff", à la condition que la colonne "critère" soit égal à TEXT1

J'ai donc écrit la formule suivante, qui fonctionne :
=SOMMEPROD((B4:B7="TEXT1")*(C4:C7)*(D4:D7))




Dans le cas présent, j'obtiens la valeur : 333,607476




Mais dans mon véritable Excel, je travaille sur une plus grande plage que les lignes 4 à 7
Et parfois, les valeurs de certaines cases des colonnes C et D sont vides

Dans ce cas, la formule me retournait une erreur #VALEUR

Pour contourner ça, j'ai enrichi ma formule avec des conditions sur les colonnes C et D : ne prendre en compte que les valeurs positives
Ce qui donne :
=SOMMEPROD((B4:B7="TEXT1")*(C4:C7>0)*(D4:D7>0))




Cette fois-ci, plus d'erreur, mais j'obtiens la valeur : 2 !


Je ne comprends pas où est l'erreur qui explique ce changement de valeurs, puisque pour moi il s'agit de la même formule qu'auparavant





Quelle formule utiliser pour retrouver ma valeur : 333,607476


Merci beaucoup :)



Configuration: Windows / Chrome 89.0.4389.114
A voir également:

5 réponses

yclik Messages postés 3860 Date d'inscription   Statut Membre Dernière intervention   1 560
 
Bonsoir
a priori une piste à confirmer par d'autres experts
=SOMMEPROD((B4:B7="TEXT1")*(C4:C7>0,1)*(D4:D7>0))

si on décompose
si B4=TEXT1 => vrai =1
si C4>0 => vrai =1
si D4>0 =>vrai =1
ce qui donne 1*1*1 donc 1 pour la ligne 4
si B5=TEXT1 => 1
si C5>0 => 1
si D5>0 => 1
ce qui donne 1*1*1 donc 1 pour la ligne 5

somme ligne 4 et 5 donne 2
1
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
OK c'est l'explication qu'il me manquait, Dji Dji m'a indiqué à raison qu'il fallait rajouter ces éléments: *(C4:C7)*(D4:D7) à la suite
0
DjiDji59430 Messages postés 4244 Date d'inscription   Statut Membre Dernière intervention   698 > Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention  
 
=SOMMEPROD(sierreur((B4:B7="Text1")*(C4:C7>0)*(D4:D7>0)*(C4:C7)*(D4:D7);0))


Crdlmt
0
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4 > DjiDji59430 Messages postés 4244 Date d'inscription   Statut Membre Dernière intervention  
 
Ah c'est super, avec les SIERREUR ça fonctionne !
Merci beaucoup ! :D
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 269
 
Bonjour,

je soutiens vaucluse, si tes cellules étaient réellement vides tu n'aurais pas de #VALEUR!

Je suis arrivé à :
=SOMMEPROD((B4:B7="text1")*SIERREUR((C4:C7*D4:D7);0)) 

à valider en matriciel avec Shift+Ctrl+Entrée
Comme celle de djidji si excel <> 365
eric
1
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Ah c'est super, cette fois-ci ça fonctionne !
Merci beaucoup ! :D
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 434
 
Bonjour
essayez:
=SOMMEPROD((B4:B7="Text1")*(C4:C7*D4:D7))
crdlmnt
0
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour Vaucluse,
Merci pour ta proposition, cependant elle ne convient pas


Je suis obligé de mettre >0 pour que la formule ne me retourne pas une erreur sur les valeurs vides

Il faut imaginer que mon Excel ne va pas des lignes 4 à 7, mais disons 4 à 50, et il y a certaines cellules vides, comme par exemple C23, D47, etc etc

Et si j'adapte ta formule avec les critères, cela me donne : =SOMMEPROD((B4:B7="Text1")*(C4:C7>0*D4:D7>0))

Le calcul me retourne 2, au lieu de la valeur attendue : 333,607476


Je n'arrive pas à comprendre en quoi l'ajout des critères > 0 change le résultat de la formule
Après tout, je n'ai aucune valeur négative dans mes cellules.


En espérant avoir apporté les précisions :)
0
ALS35 Messages postés 1033 Date d'inscription   Statut Membre Dernière intervention   144 > Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous et salutations Vaucluse,

L'instruction C4:C7>0 ne te retourne pas la liste des valeurs C4:C7 mais une liste de valeurs Vrai ou Faux (converties en 1 ou 0 pour les calculs). Mais ce qui est étonnant c'est qu'une valeur vide est prise égale à 0 pour les calculs, alors ce n'est peut-être pas une vraie valeur vide mais un espace ?

Précise ou donne un exemple de ton fichier.

Cordialement
0
DjiDji59430 Messages postés 4244 Date d'inscription   Statut Membre Dernière intervention   698
 
Bonjour à tous,

T'as rien adapté du tout, ta formule te renvoie le nombre de "texte1" dans la plage b4:b7 .
Il manque le cacul du depart, a savoir *(C4:C7*D4:D7)

=SOMMEPROD((B4:B7="Text1")*(C4:C7>0)*(D4:D7>0)*(C4:C7)*(D4:D7))


Crdlmt
0
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Ah très bien, je comprends que je n'avais fait qu'écrire des conditions VRAI et FAUX et qu'il manquait donc le calcul

Mais du coup avec ta formule je retombe sur le problème VALEUR mmmh :/


Sachant que les cellules sont vides, peut-être ne devrais-je pas marquer ">0" mais "différent de vide" ?
Si oui, existe-il une syntaxe pour ce faire?
0
yclik Messages postés 3860 Date d'inscription   Statut Membre Dernière intervention   1 560 > Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
a tester comme indiqué par DjiDji59430 plus haut
=SOMMEPROD((B4:B7="TEXT1")*(C4:C7<>"") *(C4:C7)*(D4:D7))    
0
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4 > yclik Messages postés 3860 Date d'inscription   Statut Membre Dernière intervention  
 
ça marche aussi :) merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 434
 
Bonjour (et salut DjiDji)
avez vous dans C ou D des formules qui renvoient "" si elles ne trouvent rien? Si oui, remplacer ""par 0
crdlmnt
0
Pascal29992 Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour Vaucluse, en fait il n'y a aucune formule dans les cellules vides
Ce sont des cellules vides justement

Peut être qu'au lieu d'écrire la condition ">0", je devrais plutôt ignorer les cellules vides tout simplement ?
Existe-il une syntaxe pour écrire "différent de vide" dans la fonction SOMMEPROD?

Merci beaucoup
0