NB.SI avec index de critères

Résolu/Fermé
Yoakim - 25 févr. 2014 à 13:51
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 25 févr. 2014 à 18:12
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
25 févr. 2014 à 13:57
Utilises BDNB()
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
25 févr. 2014 à 15:07
Ce serait plutôt BDNBVAL ()
Un exemple dans l'onglet correspondant de ce fochier :
https://www.cjoint.com/?BGopozHJj9n
0
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié par Patrice33740 le 25/02/2014 à 14:23
« Cela devrait fonctionner » : il n'y a aucune raison pour que ça fonctionne !.
0
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
25 févr. 2014 à 14:57
« 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
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
Modifié par Vaucluse le 25/02/2014 à 14:59
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
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
25 févr. 2014 à 18:12
Alors on passe ça en résolu
Bonne route
crdlmnt
0