Comptage à Condition Multiple

  • Initiateur de la discussion Initiateur de la discussion M.Charlotte
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

M.Charlotte

Guest
Chers tous,
Je voudrais compter en A2 le nombre de cellules qui correspondent aux conditions suivantes:
- colonne B = Nature
Et
- colonne C >=0
Je ne vois pas comment y arriver en utilisant NB.SI. Pourriez-vous m'indiquer comment faire?
Bien à vous,
M.Charlotte
 
Je ne veuw malheureusement pas additioner les valeurs, mais les compter. Le formule Somme les additionne. Si je remplace Somme par NB, les résultats obtenus sont complètement abérrants.
Merci de votre aide.
M.Charlotte
 
C'est presque pareil :

Function ComptageCouleur(PlageEntree As Range, CouleurPlage As Range) As Double
Dim Cell As Range, ColorIndex As Integer
ColorIndex = CouleurPlage.Cells(1, 1).Interior.ColorIndex
TempSum = 0
On Error Resume Next
For Each Cell In PlageEntree.Cells
If Cell.Interior.ColorIndex = ColorIndex Then TempSum = TempSum + 1
Next Cell
On Error GoTo 0
Set Cell = Nothing
ComptageCouleur = TempSum
End Function

C@thy
 
Salut,

Voici une variante de la formule matricielle

=SOMME((Critère_1="nature")*(Critère_2>0))

(valider avec CRTL+Shift+Entrée)
Critère_1 et Critère_2 étant des noms affectés aux colonnes B et C.



Bye et @ +



- €ric -​
 
Bonjour,

1 - J'use pour ma part d'une méthode très pragmatique :

11 - Créer colonne D (Cacher la colonne ensuite) contenant un 1 sur toutes les lignes (D2 à D10 dans mon exemple)

12 - Comptabliser les 1 des lignes à retenir en procédant par différence :
=SOMME.SI(B2:B10;"Nature";D2😀10)-SOMME.SI(C2:C6;"<=0";D2😀10)

2 - Il reste aussi la méthode des Bases de données avec définition d'une zone de critères si le tableau s'y prête

Cordialement
 
Jean-Luc,
Je pense que tu te compliques la vie. Une formule matricielle resoud ce comptage sans besoin de rajouter une colonne supplementaire.
Je souligne qu'il s'agit bien d'une comptage, et non d'une somme.

Pour Cathy : mon xl est effectivement en Anglais 😱( Je pensais bien qu'il fallait traduire les formules, mais pas les ";" 😱))

Au fait, une tres bonne @ si vous devez retrouver les noms francais ou anglais des fonctions xl :

http://www.info-3000.com/vbvba/traductionfonction.php

Je l'utilise tres souvent.
Bonne soiree.
Babou.

PS : je peux demander de l'aide ici sur un fil que je viens d'ouvrir ? Bon OK, je sors...
 
Re: Explication d'un comptage avec une formule matricielle

Bonsoir, Charlotte

Une fonction matricielle, avec somme, ne compte pas la valeur de la cellule, mais la valeur du test.

Dans les cellules
A1 = 7; A2 = 4; A3 = 7
B1 = 10;B2 = 20;B3 = 15
C1 = 5; C2 = 8; C3 = 2

La formule matricielle = SOMME((A1:A3=7)*(B1:B3=10)) va compter
le nombre de valeurs qui correspond aux deux critères sur chaque cellule de la plage définie.
(A1=7) * (B1=10) -> donne 1 * 1 = 1
(A2=7) * (B2=10) -> donne 0 * 0 = 0
(A3=7) * (B3=10) -> donne 1 * 0 = 0
Résultat de la somme des conditions est 1, donc c'est bien un comptage.

Si la formule matricielle = SOMME((A1:A3=7)*(B1:B3=10)*C1:C3)
(A1=7) * (B1=10) * C1 -> donne 1 * 1 * 5 = 5
(A2=7) * (B2=10) * C2 -> donne 0 * 0 * 8 = 0
(A3=7) * (B3=10) * C3 -> donne 1 * 0 * 2 = 0
Résultat de la somme est 5 , donc c'est bien une somme.

La formule matricielle créer un tableau en mémoire du nombre de l'éléments de la plage. Puis met le résultat de la (fonction) dans le tableau et donne le résultat de la première fonction.
Pour schématiser =SOMME({1;0;0}), =SOMME({5;0;0})

Les formules matricielles sont très puissantes. Elles remplacent une colonne de cellules en D1 qui aurait cette formule SI(ET(A1=7;B1=10);C1;0) et une addition des cellules de D1😀3.

Il y a deux semaines, je ne connaissais rien aux formules matricielles. Mais en regardant, tous les exemples qui foisonnent sur le forum.
Une fonction que j'ai trouvé :
=GRANDE.VALEUR((ESTVIDE(Feuil1!B1:B4)=FAUX)*(LIGNE(Feuil1!B1:B4));B1)
donne la dernière cellule utilisée d'une plage B1:B4, en tenant compte de cellules pouvant être vides.
Pour schématiser =GRANDE.VALEUR({1;2;3;0};1) donc résultat 3

J'espère avoir donné, une petite explication sur l'utilisation des fonctions matricielles.

Bonne soirée.

@+Jean-Marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
40
Affichages
2 K
Réponses
3
Affichages
271
Retour