NB.SI avec index de critères

Résolu
Yoakim -  
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Afin d'éviter de démultiplier mon NB.SI pour le nb de différents critères associés du type NB.SI(plage, critère1) + NB.SI(plage, critère2) + etc... ; j'aimerai renseigner mes critères dans un index par exemple de A1 à A15 et pouvoir formuler du type NB.SI(plage, A1:A15).

Mais forcemment cela ne fonctionne pas....

Merci d'avance pour votre aide !

4 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Utilises BDNB()
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Ce serait plutôt BDNBVAL ()
Un exemple dans l'onglet correspondant de ce fochier :
https://www.cjoint.com/?BGopozHJj9n
0
WeaponEDGE
 
Bonjour,

Je suis pas sur d'avoir compris ta demande mais je me lance.
Si j'ai bien compris tu veux sommer des montant s'ils repondent à l'un des 15 critères enuméré dans la cellule A1 à la cellule A15.

Je te propose cette formule :

=NB.SI(Plage,OU(A1;A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12;A13;A14;A15))
Cela devrait fonctionner.
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
« Cela devrait fonctionner » : il n'y a aucune raison pour que ça fonctionne !.
0
WeaponEDGE
 
En effet ça ne fonctionne pas
Mais, dans la théorie ça aurait pu fonctionner. Avec la fonction OU celà permettait de déterminer plusieurs critères.

Mais là pour le coup c'est mort.

Pour ma part, depuis que je connais le VBA je n'utilise plus de formule.
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
« dans la théorie ça aurait pu fonctionner. » Non car le résultat d'un OU() est un Booléen y compris en VBA !!!
0
WeaponEDGE
 
Si on prend comme liste de critère A1 à A4
Comme plage B1 à B10
Réultat du comptage en C1

En VBA ça donnerais

Comptage = 0
FOR i = 1 to 10
IF cells(i,2)=cells(1,1) OR cells(i,2)=cells(2,1) OR cells(i,2)=cells(3,1) OR cells(i,2)=cells(4,1) THEN
Comptage = Comptage +1
END IF
NEXT i
Cells(1,3) = Comptage

Certes dans l'analyse le resultat de chaque critère renverra un VRAI ou FAUX mais au final le comptage se fera.

C'est pour ça que je dit que "dans la théorie ça aurait pu fonctionner"
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 440
 
Bonjour
à tester dans votre cas, chez moi ça semble convenir:
pour une plage de référence A1:A15 et une liste de B1:B100

=SOMMEPROD((NB.SI(B1:B100;A1:A15))*1)

Voir exemple ici de ligne 2 à 16 pour données et 2 à 101 pour liste
https://www.cjoint.com/c/DBzo5ynt9HX
crdlmnt

Errare humanum est, perseverare diabolicum
0
Yoakim
 
Yes ! C'est la solution la plus simple et plus efficace pour mon problème ! Merci tous pour votre reactivité :) :)
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 440
 
Alors on passe ça en résolu
Bonne route
crdlmnt
0