SOMMEPROD avec conditions [Résolu]

Signaler
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021
-
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021
-
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

5 réponses

Messages postés
2391
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
7 avril 2021
1 065
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
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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
Messages postés
3146
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
6 avril 2021
435 >
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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


Crdlmt
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021
>
Messages postés
3146
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
6 avril 2021

Ah c'est super, avec les SIERREUR ça fonctionne !
Merci beaucoup ! :D
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
6 717
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
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

Ah c'est super, cette fois-ci ça fonctionne !
Merci beaucoup ! :D
Messages postés
25947
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
5 864
Bonjour
essayez:
=SOMMEPROD((B4:B7="Text1")*(C4:C7*D4:D7))
crdlmnt
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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 :)
Messages postés
648
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
6 avril 2021
46 >
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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
Messages postés
3146
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
6 avril 2021
435
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
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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?
Messages postés
2391
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
7 avril 2021
1 065 >
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

Bonjour
a tester comme indiqué par DjiDji59430 plus haut
=SOMMEPROD((B4:B7="TEXT1")*(C4:C7<>"") *(C4:C7)*(D4:D7))    
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021
>
Messages postés
2391
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
7 avril 2021

ça marche aussi :) merci beaucoup
Messages postés
25947
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
5 864
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
Messages postés
69
Date d'inscription
lundi 6 novembre 2017
Statut
Membre
Dernière intervention
7 avril 2021

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