Comment dénombrer les cellules répondant à un critère ?
La plupart des utilisateurs d’excel connaissent la fonction NB.SI qui permet de compter le nombre de cellules qui répondent à un critère que l’on défini dans le deuxième argument.
Ainsi, si l’on souhaite compter le nombre de fois qu’une référence se trouvant en cellule A2 apparaît dans une plage de cellule (A2:A11), nous entrerons la formule suivante.
=NB.SI(A2:A11;A2)
Comment peut-on dénombrer des valeurs distinctes dans une plage de cellules (colonne, ligne) ?
Dans l’exemple, nous comptons le nombre de valeurs uniques dans la plage de A2 à A101.
=SOMMEPROD(1/NB.SI(A2:A101;A2:A101))
Attention ! La plage référencée ne peut contenir de cellules vides sinon, la formule renvoie une erreur.
Dans ce cas là, privilégiez plutôt cette formule
=SOMMEPROD(1/(NB.SI(A2:A101;A2:A101)+(A2:A101=0)))-NB.VIDE(A2:A101)
Comment compter le nombre de cellules remplies ?
Pour rappel : Pour compter le nombre de cellules remplies, on utilise la fonction NBVAL
Soit pour cette même plage
=NBVAL(A2:A101)
C’est TOP « dénombrer des valeurs distinctes dans une plage de cellules (colonne, ligne) »
Ca répond parfaitement à ce que je cherchais, mais je ne comprends pas le fonctionnement du calcul « =SOMMEPROD » avec 1 seul argument !
De plus, je voulais étendre cette fonction en supprimant également d’autres lignes (non nulles) mais liées à un autre critère de famille issues dans une autre colonne
….
c’est pour cela que je cherche à comprendre la fonction
Bonjour Jean-François,
Merci pour votre commentaire.
La fonction SOMMEPROD offre d’énormes possibilités.
Si vous avez Office 365, il existe maintenant une fonction native nommée UNIQUE qui vous renvoie la liste des valeurs distinctes de la plage référencée et donc pour obtenir le même résultat que celui que je propose dans mon article, il suffit d’écrire =NBVAL(UNIQUE(A2:A101)) ou =NBVAL(UNIQUE(t_Data[Ville])) pour la colonne « Ville » d’un tableau nommé « t_Data »
Philippe
Merci pour les réponses. wow! Excel n’est pas aussi facile que cela!!