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

Compter le nombre de valeur différentes

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

Z

zourite

Guest
Bonsoir !

J'ai une liste de nombres, et j'aimerai trouver le nombre de valeurs différentes, exeptées les valeurs vides et les valeurs = 0

Y aurait-il une formule capable de faire cela?

merci d'avance
 

Pièces jointes

Re : Compter le nombre de valeur différentes

Bonjour à tous
Une fonction personnalisée :
VB:
Function valdif&(r As Range)
Dim oCell As Range, oColl As Scripting.Dictionary
  Application.Volatile
  Set oColl = CreateObject("Scripting.Dictionary")
  For Each oCell In r.Cells
    If IsNumeric(oCell) Then If oCell.Value <> 0 And Not oColl.Exists(CStr(oCell.Value)) Then oColl.Add CStr(oCell.Value), oCell.Value
  Next
  valdif = oColl.Count
End Function
ROGER2327
#4993


Jeudi 5 Pédale 138 (Saint Ouducul, trouvère, SQ)
9 Ventôse An CCXIX
2011-W08-7T03:29:38Z
 
Re : Compter le nombre de valeur différentes

Bonjour,

Un essai avec une formule matricielle :

Code:
=SOMME(SI(B1:B10<>0;(1/NB.SI(B1:B10;B1:B10))))

Formule matricielle à valider par CTRL + MAJ + ENTREE

@+
 
Re : Compter le nombre de valeur différentes

Bonjour david84, BOISGONTIER, Tibo, ROGER2327,hoerwind, kjin !

Merci à tous vos réponses, je suis en phase de test, je garderai la plus rapide des méthodes !!
A priori le code de Roger semble le plus rapide.

Je vous tiendrai au courant quand j'aurai fait mon choix final 🙂

encore merci et bonne journée !!
 
Dernière modification par un modérateur:
Re : Compter le nombre de valeur différentes

Bonsoir à tous
Une petite modification pour ne pas tenir compte d'éventuels zéros devant les nombres :
VB:
Function valdif2&(r As Range)
Dim oCell As Range, oColl As Scripting.Dictionary
  Application.Volatile
  Set oColl = CreateObject("Scripting.Dictionary")
  For Each oCell In r.Cells
    If IsNumeric(oCell) Then If oCell.Value <> 0 And Not oColl.Exists(CStr(0 + oCell.Value)) Then oColl.Add CStr(0 + oCell.Value), oCell.Value
  Next
  valdif2 = oColl.Count
End Function
Comparaison des différentes solutions dans le classeur joint.​
ROGER2327
#4994


Jeudi 5 Pédale 138 (Saint Ouducul, trouvère, SQ)
9 Ventôse An CCXIX
2011-W08-7T17:38:03Z
 

Pièces jointes

Re : Compter le nombre de valeur différentes

Re ,

Quel travail :O je te remercie, je vais maintenant inévitablement choisir ta deuxième solution qui, répond à tous les cas possibles !
Mille fois merci !
 
Re : Compter le nombre de valeur différentes

ah,

J'utilise une fonction max :

=MAX(SI((L101:L65536>0)*($K$101:$K$65536="Immobilisation");L101:L65536))

J'aimerai à la place du max utiliser le valdif2, mais ca ne marche pas =/
Aurais tu une idée?
 
Re : Compter le nombre de valeur différentes

Re
suite au fichier de comparaison de Roger 🙄 :
Code:
=SOMME(N(FREQUENCE(SI(SI(ESTERREUR(SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));0;SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));EQUIV(SUBSTITUE(C2:C21;".";",")*1;SUBSTITUE(C2:C21;".";",")*1;0));LIGNE(INDIRECT("1:"&LIGNES(C2:C21))))>0))
Validation matricielle.
A+

Edit : légèrement plus court :
Code:
=SOMME(N(FREQUENCE(SI(SI(ESTERREUR(SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));0;SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));EQUIV(SUBSTITUE(C2:C21;".";",")*1;SUBSTITUE(C2:C21;".";",")*1;0));LIGNE(C1:C21))>0))

ou bien avec NB :
Code:
=NB(1/(FREQUENCE(SI(SI(ESTERREUR(SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));0;SI(C2:C21<>0;SUBSTITUE(C2:C21;".";",")*1));EQUIV(SUBSTITUE(C2:C21;".";",")*1;SUBSTITUE(C2:C21;".";",")*1;0));LIGNE(C1:C21))))
 
Dernière édition:
Re : Compter le nombre de valeur différentes

Salut David84,

De ce que j'ai pu tester, ca marche bien ! Je vais multiplier mes tests et vous tenir au courent !!

Merci !!

A plus tard !!
 
Re : Compter le nombre de valeur différentes

Hey !

Etant toujours entrain d'adapter ces solutions à mon cas, j'ai deux question:


@: ROGER2327 : Est-ce que la fonction =valdif2() fonctionne en matricielle? car je n'arrive pas à la faire marcher... j'ai joint un petit fichier ou j'ai mis mon essaie en bleu mais qui me donne une #VALEUR
Code:
=valdif(SI((B3:B22="Bien")*1;L3:L22))

@: David : Est-ce normal qu'à la fin de tes deux dernières formules il y ai :
LIGNE(C1:C21))))

alors que la plage utilisée pour tout le reste de tes formules est (C2:C21)


merci pour vos conseils !
 
- 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

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