Compter dans une plage le nombre de fois qu'un chiffre apparait avec une condition

  • Initiateur de la discussion Initiateur de la discussion syl0038
  • 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 !

syl0038

XLDnaute Junior
Bonjour à tous,
Je n'arrive pas à réaliser et à trouver une formule qui m'aiderait à :
Compter dans une plage le nombre de fois qu'un chiffre apparait avec une condition.

Voivi mes données :
AV 100
AV 100
AV 200
PSS 150
PSS 150
PSS 150
BSS 300
BSS 400
BSS 500
BSS 600

J'aimerais avoir comme réponse AV = 2 PSS =1 BSS = 4.

J'ai essayé avec cette formule =SUMPRODUCT(1/COUNTIF(B1:B10,B1:B10)) mais je n'arrive pas à mettre comme condition AV PSS et BSS.

Merci de m'aider,
En vous remerciant!

Syl
 

Pièces jointes

Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonjour,


Occurences uniques avec condition


=NB(1/FREQUENCE(SI(critere=E12;EQUIV(ch;ch;0));LIGNE(INDIRECT("1:"&LIGNES(ch)))))
Valider avec maj+ctrl+entrée

ch =$B$1:$B$10
critere =$A$1:$A$10

Si cellules vides:

=NB(1/FREQUENCE(SI((critere=E12)*(ch<>"");EQUIV(ch;ch;0));LIGNE(INDIRECT("1:"&LIGNES(ch)))))


JB
 

Pièces jointes

Dernière édition:
Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonjour,
à rentrer en E13, valider en matriciel (Ctrl, Maj et entrée) et à tirer vers la droite :
Code:
=NB(SI($A1:$A10=E12;SI(EQUIV($B1:$B10;$B1:$B10;0)=LIGNE(INDIRECT("1:"&LIGNES($B1:$B10)));LIGNE($B1:$B10))))
A+
 
Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonjour @ tous,
une autre plus courte, pour le fun 😱,
Sélectionner la plage E13:G13,
Copier/Coller cette formule dans la barre des formules,
Code:
=TRANSPOSE(FREQUENCE(SI(FREQUENCE(B1:B10;B1:B10);EQUIV(A1:A10;E12:G12;0));{1;2}))
@ valider par Ctrl+Maj+Entree
@ micalement
 
Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonsoir @ tous,
J'ai essayé avec cette formule =SUMPRODUCT(1/COUNTIF(B1:B10,B1:B10)) mais je n'arrive pas à mettre comme condition AV PSS et BSS.
Ok, du fait que tes données sont triées sur la colonne A,
en E13,
Code:
=SOMMEPROD(1/NB.SI(DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12));DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12))))
@ valider par Simple Entree
@ tirer vers la droite
@ micalement
 
Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonjour,
l
Bonsoir @ tous,
J'ai essayé avec cette formule =SUMPRODUCT(1/COUNTIF(B1:B10,B1:B10)) mais je n'arrive pas à mettre comme condition AV PSS et BSS.
Ok, du fait que tes données sont triées sur la colonne A,
en E13,
Code :
=SOMMEPROD(1/NB.SI(DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12));DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12))))
@ valider par Simple Entree
@ tirer vers la droite
@ micalement
Le problème avec l'utilisation de SOMMEPROD(1/NB.SI( est que ce n'est pas fiable dans ce type de cas...

Par exemple, remplace tous les PPS par des AV et tu verras que
Code:
=SOMMEPROD(1/NB.SI(DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12));DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12))))
ramène #NA.

Concernant ton essai
Code:
=SUMPRODUCT(1/COUNTIF(B1:B10,B1:B10))
, on peut éventuellement tester
Code:
=SOMMEPROD(1/NB.SI($B$1:$B$10;$B$1:$B$10)*($A$1:$A$10=E12))
mais là encore problème (cela peut donner des nombres avec virgule).

On peut éventuellement tester
Code:
=ARRONDI.SUP(SOMMEPROD(1/NB.SI($B$1:$B$10;$B$1:$B$10)*($A$1:$A$10=E12));0)
qui fonctionne sur quelques tests vite faits, mais à vérifier plus avant.
A+
 
Re : Compter dans une plage le nombre de fois qu'un chiffre apparait avec une conditi

Bonjour @ tous,
Salut David,
Le problème avec l'utilisation de SOMMEPROD(1/NB.SI( est que ce n'est pas fiable dans ce type de cas...

Par exemple, remplace tous les PPS par des AV et tu verras que Code :
=SOMMEPROD(1/NB.SI(DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12));DECALER($B1;EQUIV(E12;$A1:$A10;0)-1;;NB.SI($A1:$A10;E12))))


ramène #NA.
Oui c'est sur car y aura pas de PSS en colonne A, on peut le gérer avec =SIERREUR(Formule;0) et comme ça on est sur de sa fiabilité...
Amicalement
 
- 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

Discussions similaires

Retour