Formule Excel: compter si la ligne répond aux critères internes -

Table des matières

Formule générique

=SUMPRODUCT(--(logical_expression))

Sommaire

Pour compter les lignes d'une table qui répondent à des critères calculés internes, sans utiliser de colonne d'assistance, vous pouvez utiliser la fonction SOMMEPROD.

Le contexte

Imaginez que vous ayez un tableau des chiffres de vente de plusieurs produits. Vous avez une colonne pour les ventes du mois dernier et une colonne pour les ventes du mois en cours. Vous souhaitez compter les produits (lignes) pour lesquels les ventes actuelles sont inférieures aux ventes du mois dernier. Vous ne pouvez pas utiliser COUNTIF pour cela, car COUNTIFs est une fonction basée sur une plage. Une option consiste à ajouter une colonne d'aide qui soustrait les ventes du mois dernier des ventes de ce mois, puis utilisez COUNTIF pour compter les résultats inférieurs à zéro. Mais que faire si vous ne voulez pas (ou ne pouvez pas) ajouter de colonne d'assistance? Dans ce cas, vous pouvez utiliser SUMPRODUCT.

Dans l'exemple illustré, la formule de la cellule G6 est:

=SUMPRODUCT(--(C5:C10>D5:D10))

Explication

SUMPRODUCT est conçu pour fonctionner avec des tableaux. Il multiplie les éléments correspondants en deux ou plusieurs tableaux et additionne les produits résultants. Par conséquent, vous pouvez utiliser SUMPRODUCT pour traiter les tableaux qui résultent de critères appliqués à une plage de cellules. Le résultat de ces opérations sera des tableaux, que SUMPRODUCT peut gérer nativement, sans nécessiter la syntaxe Control Shift Enter.

Dans ce cas, nous comparons simplement les valeurs de la colonne C aux valeurs de la colonne D à l'aide d'une expression logique:

C5:C10>D5:D10

Puisque nous avons affaire à des plages (tableaux), le résultat est un tableau de valeurs TRUE FALSE comme ceci:

(FALSE; TRUE; FALSE; TRUE; FALSE; FALSE)

Pour les contraindre à des uns et des zéros, nous utilisons un opérateur double négatif (également appelé double unaire):

--(C5:C10>D5:D10)

Qui produit et tableau comme ceci:

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

qui est ensuite traité par SUMPRODUCT. Puisqu'il n'y a qu'un seul tableau, SUMPRODUCT additionne simplement les éléments du tableau et renvoie un total.

Articles intéressants...