| Cumuler les conditions nb.si
Une contribution de Thomas Poizat
www.poizat.net
Parfois, vous aurez besoin de cumuler plusieurs conditions. Par exemple, pour obtenir le nombre de ventes réalisées par Marc pour la région Nord (cf. exercice joint, onglet cumuler nb.si). En fait, il n'est pas possible de cumuler plus d'une fois ces fonctions. L'une des solutions consiste à recourir à la formule communiquée à l'une de mes internautes sur un forum concurrent, à savoir : =SI(F18="Nord";NB.SI(C4:C12;"Marc");"""") En clair : si la cellule F18 contient le mot "Nord", alors on compte le nombre de cellules de la zone C4 à C12 contenant le mot "Marc", sinon, rien.
La solution la simple consiste à recourir à la fonction SommeProd dont la syntaxe est la suivante :
=SOMMEPROD((region="Nord") * (vendeur="Marc"))
Voici quelques autres exemples d'utilisation de la formule SommeProd :
| Exemple (1) Nombre de cellules ou le CA est supérieur à 9 |
| Méthode |
Résultat |
Formule |
| Classique |
2 |
=NB.SI(ca;">9") |
| Sommeprod |
2 |
=SOMMEPROD((ca>9)*1) |
| |
| Exemple (2) Somme CA région Nord |
| Méthode |
Résultat |
Formule |
| Classique |
33 |
=SOMME.SI(region;"Nord";ca) |
| Sommeprod |
33 |
=SOMMEPROD((region="Nord")*ca) |
| |
| Exemples (3), plus complexes … |
| Consigne |
Résultat |
Formule |
| CA Marc - Région Nord (nbre de ventes) |
2 |
=SOMMEPROD((region="Nord")*(vendeur="Marc")) |
| CA Marc - Région Nord (montant du ca) |
17 |
=SOMMEPROD((region="Nord")*(vendeur="Marc")*ca) |
| CA Michel - Région Sud (nbre de ventes) |
2 |
=SOMMEPROD((region="Sud")*(vendeur="Michel")) |
| CA Marc - Région Nord - CA >8 (montant du ca) |
10 |
=SOMMEPROD((region="Nord")*(vendeur="Marc")*(ca>8)*ca) |
Une autre alternative consiste à recourir aux formules matricielles* :
{=somme((région="Nord")*(client="Marc"))} qui présente une très forte similitude avec la formule SommeProd.
Je vous rappelle que les accolades ne doivent pas être saisies au clavier mais obtenues en validant la formule à l'aide de la combinaison Ctrl Maj Entrée. Cette formule peut être éditée comme n'importe quelle autre formule mais il faudra toujours veiller à valider les changements à l'aide de Ctrl Maj Entrée.
Dans les formules ci-dessus et pour plus de clarté, j'ai utilisé des noms (région, client) pour faire référence à des cellules, mais vous pouvez fort bien utiliser des références du style : {=SOMME((B4:B12="Nord")*(C4:C12="Marc"))}.
Flexible, on peut, avec ces deux formules, rajouter autant de critères que l'on souhaite en intercalant à chaque fois les arguments *(zonedecellules="critère").
Les deux formules ci-dessus renvoient le nombre d'éléments répondant à vos critères. Si vous souhaitez additionner les valeurs contenues dans ces mêmes cellules, rajoutez l'argument *ca, sans autre indication.
* Les formules matricielles sont
des formules qui font références non plus à
des cellules mais à des plages entières de cellules
(en général un tableau). Ces formules sont encadrées
par des accolades {} obtenues à l'aide de la combinaison
de touches Ctrl Maj Entrée.
Haut
|