Problème et explication
Si vous n'avez rien compris au titre, regardez ce qui se passe entre ces deux formules :
=NB.SI.ENS(A1:A3;"x")
fonctionne normalement.
Mais, si vous sélectionnez A1:A3 puis appuyez sur F9 pour lancer le calcul, il devient impossible de valider :
=NB.SI.ENS({1;"x";1};"x")
En effet, A1:A3 est une plage, alors que {1;"x";1} est un tableau de données.
La fonction NB.SI.ENS n'accepte pas de tableaux de données comme premier argument.
Cas d’usage problématique
Solution 1
Par exemple :
=NB.SI.ENS(CHOISIRCOLS(A1:B3;2);"x")
ne va pas fonctionner, car CHOISIRCOLS retourne un tableau de données et non une plage.
Mais :
=NB.SI.ENS(INDEX(A1:B3;;2);"x")
va fonctionner, car INDEX retourne la 2? colonne en tant que plage.
Autre solution
On peut ainsi scinder la formule, ce qui va nous donner ceci :
