Formule Excel: compter les lignes avec au moins n valeurs correspondantes -

Table des matières

Formule générique

(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))

Sommaire

Pour compter les lignes qui contiennent des valeurs spécifiques, vous pouvez utiliser une formule matricielle basée sur les fonctions MMULT, TRANSPOSE, COLUMN et SUM. Dans l'exemple illustré, la formule en K6 est:

(=SUM(--(MMULT(--((data)=2)))

data est la plage nommée C5: I14.

Notez qu'il s'agit d'une formule matricielle et doit être entrée avec entrée de changement de contrôle.

Explication

En travaillant de l'intérieur vers l'extérieur, les critères logiques utilisés dans cette formule sont:

(data)<70

où data est la plage nommée C5: I14. Cela génère un résultat TRUE / FALSE pour chaque valeur dans les données, et le double négatif contraint les valeurs TRUE FALSE à 1 et 0 pour donner un tableau comme celui-ci:

(0,0,0,1,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,1,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0)

Comme les données d'origine, ce tableau est de 10 lignes par 7 colonnes (10 x 7) et entre dans la fonction MMULT en tant que array1 . L'argument suivant, array2 est créé avec:

TRANSPOSE(COLUMN(data)^0))

Ici, la fonction COLUMN est utilisée comme moyen de générer un tableau numérique de la bonne taille, car la multiplication de matrice nécessite que le nombre de colonnes dans array1 (7) soit égal au nombre de lignes dans array2 .

La fonction COLUMN renvoie le tableau à 7 colonnes (3,4,5,6,7,8,9). En élevant ce tableau à une puissance de zéro, on se retrouve avec un tableau 7 x 1 comme (1,1,1,1,1,1,1), qui TRANSPOSE change en un tableau 1 x 7 comme (1; 1 ; 1; 1; 1; 1; 1).

MMULT s'exécute ensuite et renvoie un résultat de tableau 10 x 1 (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), qui est traité avec l'expression logique> = 2, ce qui donne un tableau de TRUE FALSE valeurs:

(VRAI; FAUX; FAUX; VRAI; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX).

Nous contraignons à nouveau TRUE FALSE à 1 et 0 avec un double négatif pour obtenir un tableau final à l'intérieur de SUM:

=SUM((1;0;0;1;0;0;0;0;0;0))

Ce qui renvoie correctement 2, le nombre de noms avec au moins 2 scores inférieurs à 70.

Bons liens

Compter les lignes lorsque la condition est remplie dans au moins une colonne (Excelxor)

Articles intéressants...