Bonjour,
Il n'y a pas de problème particulier à dénombrer le nombre de valeurs différentes sur une plage ! Tu as vu que tu pouvais utiliser pour cela les fonctions natives d'Excel SOMMEPROD et NB.SI pour construire la formule. Sachant que cette formule comportant NB.SI au dénominateur ne supportera pas des cellules vides dans la plage, sous peine de renvoyer #DIV/0!
Mais lorsque tu veux opérer ce dénombrement, assorti d'un critère excluant préalablement certaines valeurs, les choses se corsent ! Parce que tu ne dénombre plus sur la plage mais seulement sur une partie de celle-ci... Dans un tel cas on s'essaie à contruire une matricielle qui prendra en compte une matrice de cellules de la plage répondant à un ou des critères, et excluant les autres. Si beaucoup de fonctions natives acceptent ce traitement, ce n'est pas le cas de NB.SI qui réclame que la matrice soit une plage de cellules !
Tu n'es cependant pas dépourvu de moyen dans un tel cas ! Tu extrais dans une colonne annexe les valeurs répondant aux conditions, valeur "" pour les valeurs n'y répondant pas. Ceci fait, tu peux faire le dénombrement des valeurs distinctes dans cette colonne, en ôtant 1 du résultat pour les valeurs "" (hors conditions).
Le passage par des calculs intermédiaires n'a rien d'une anomalie ! Il peut même être préférable à l'utilisation d'une matricielle complexe ramant à chaque recalcul, en effectuant plus rapidement les calculs à partir de fonctions plus simples...
Mais dès lors que tu souhaites pouvoir obtenir un résultat avec une seule formule (ou même l'obtenir avec une formule plus simple d'utilisation que si elle est construite avec les fonctions natives), tu disposes de VBA qui te permet de créer des fonctions personnalisées utilisables en feuille de calcul dans les mêmes conditions que les fonctions natives ! Il convient évidemment de se mettre en mesure de programmer une telle fonction répondant à un besoin particulier...
Il y a environ 450 fonctions (il s'en ajoute quelques unes à chaque nouvelle version), qui généralement permettent des calculs génériques que chacun peut se trouver en position de devoir utiliser, quelques unes concernent des calculs plus spécialisés, mais il serait malvenu de reprocher à Microsoft de ne pas avoir une fonction pour chaque calcul particulier imaginé par un utilisateur ! Il y a bien des carences que l'on peut imputer à Microsoft, anciennes et qui aurait pu être comblées depuis longtemps... mais je ne vois pas que ce soit le cas dans le domaine qui nous occupe ! Les outils existent pour parvenir au résultat recherché !
Cordialement.