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

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

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

Retour