Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 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,
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…