Fonction SOMMEPROD

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

J'utilise Excel, j'ai un classeur dont une des feuilles et alimentée à partir des données saisie dans un formulaire.
Afin de faire un décompte suivant deux critères j'utilise la formule suivante :
=SOMMEPROD((A:A="X")*(F:F="Y"))

Mais ça ne marche !?! Je ne comprends vraiment pas pourquoi vu que dans un autre fichier ce type de formule fonctionne bien.

Auriez-vous une idée sur ce qui cloche ?

Merci d'avance

Laure
A voir également:

6 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

SOMMEPROD ne fonctionne pas avec des colonnes entières, utilise une plage réduite, par exemple :
=SOMMEPROD((A1:A65535="X")*(B1:B65535="Y"))

Cordialement
Patrice
0
Utilisateur anonyme
 
Merci
Mais j'avais déjà essayé cela. ça ne marche toujours pas.
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re Bonjour

Quel système d'exploitation et quelle version d'Excel utilises-tu ?
0
m@rina Messages postés 23751 Date d'inscription   Statut Contributeur Dernière intervention   11 459
 
Bonjour,

Quand tu dis "ça ne marche pas", ça veut dire quoi ?
Que le résultat obtenu n'est pas bon ou bien que ça génère une erreur ?

m@rina
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Si cela ne fonctionne pas, c'est qu'il y a un problème avec les valeurs (ou les formats) car la formule est correcte. Merci donc de répondre à m@rina.
J'ajouterais que la formule SOMMEPROD est gourmande... Il faut dans l'absolu éviter de la gaver et d'en gaver votre classeur.
Des formules comme : =SOMMEPROD((A1:A65535="X")*(B1:B65535="Y")) ne font qu'alourdir, inutilement votre classeur.
Pour utiliser SOMMEPROD avec des plages variable, je vous recommande d'utiliser la combinaison SOMMEPROD et DECALER. Dans l'exemple que vous donnez ça donnerait :
=SOMMEPROD((DECALER(A1;;;NBVAL(A:A))="x")*(DECALER(B1;;;NBVAL(B:B))="y"))

NB : lorsque votre plage s'étends sur 50000 lignes, le résultat est le même : fichier plus lourd. Dans ce cas, préférer une macro plus légère et moins indigeste pour l'appétit de votre classeur.
Bonne soirée et bon appétit...
0
Utilisateur anonyme
 
Bonjour à tous,

Merci de m'aider.

"ça ne marche pas" ie rien de se passe, la cellule contenant la formule continue de m'afficher 0.
J'utilise Excel 2003. Système d'exploitation ... heuu je regarderai lundi.
J'ai vérifié et revérifié les formats des cellules. Dans la 1er matrice j'ai des nombres, et dans la 2nd j'ai du texte.

Laure
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Dans la 1er matrice j'ai des nombres, et dans la 2nd j'ai du texte.
Alors mettez ici votre formule exactement telle que vous l'avez dans le classeur, ou joignez nous un classeur exemple....
0

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

Posez votre question
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,
Si la première matrice est constituée de nombres, il est normale que A1:A65535="X" (entre guillemets) donne 0 !. Il faudrait mettre A1:A65535=Nbre (où Nbre est le nombre cherché).

0
Utilisateur anonyme
 
Bonjour,

Heuuu.... Voici une des formules exacte de mon fichier
=SOMMEPROD(('Audit IT & IP'!$A$3:$A$5000="33")*('Audit IT & IP'!$F$3:$F$5000="KO"))
Laure
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Salut le forum

Enleve les guillemets autour de 33

Mytå
0
Utilisateur anonyme
 
ça marche !!

Merci Merci
0