Nombre de valeurs différentes

grosquick59

XLDnaute Junior
Bonjour,
je souhaite calculer le nombre de valeurs différentes dans une colonne et copier ce nombre dans une autre feuille.
Je prends un exemple :

j'ai ~ 400 lignes. Dans la colonne B j'ai plusieurs chiffres identiques comme "0907014a". Je souhaite connaître le nombre de valeurs différentes et copier ce nombre dans une autre feuille ou cellule (pour éviter de prendre en compte les doublons)

Voici mon fichier :

(Liste MDC)

par avance, merci
 

Gael

XLDnaute Barbatruc
Re : Nombre de valeurs différentes

Re,

Il faut mettre la plage en entier:

Code:
=Somme(1/NB.SI($B$6:$B$400;$B$6:$B$400))

Une fois validé avec Ctrl-MAj-Entrée, la formule se trouvera automatiquement entre accolades {}

@+

Gael
 
C

Compte Supprimé 979

Guest
Re : Nombre de valeurs différentes

Bonjour le fil,

Gael, si je peux me permettre, ça fonctionne aussi avec SOMMEPROD()
=SOMMEPROD(1/NB.SI($B$6:$B$400;$B$6:$B$400))

Et ça evite le : Ctrl-MAj-Entrée
Il y'a toujours un soucis plus tard avec ce genre de manip ;):p

A+
 

laetitia90

XLDnaute Barbatruc
Re : Nombre de valeurs différentes

bonsoir tous par macro!!

Code:
Sub nb_doublons()
Dim V As New Collection, c As Range
On Error Resume Next
Application.ScreenUpdating = False
For Each c In Range("B6", Cells(Rows.Count, "b").End(xlUp))
If c <> "" Then V.Add c.Value, CStr([c])
Next c
MsgBox V.Count
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Nombre de valeurs différentes

re, je viens de tester la formule de l'ami bruno elle marche trés bien ???

si tu peus te passer de macro a mon avis il faut le faire plus simple & surtout plus rapide que vba dans certains cas. a tu mis 419 a la place de400???

Code:
=SOMMEPROD(1/NB.SI($B$6:$B$419;$B$6:$B$419))
 

Gael

XLDnaute Barbatruc
Re : Nombre de valeurs différentes

Bonsoir Laetitia,

Le DIV#0 car il faut prendre uniquement la plage avec les cellules contenant des valeurs.

Le meilleur moyen est de nommer la plage avec une fonction DECALER pour qu'elle soit dynamique.

Insertion-nom-définir
Nom= Plage par exemple
Fait référence à :
Code:
=DECALER(B6;;;NBVAL($B:$B)-1;1)

Et la formule devient:

Code:
=SOMMEPROD(1/NB.SI(Plage;Plage))

en validant simplement avec entrée, merci bruno ;)

La macro marche très bien aussi mais une fonction serait plus appropriée pour que le recalcul se fasse automatiquement comme avec la formule.

@+

Gael
 
C

Compte Supprimé 979

Guest
Re : Nombre de valeurs différentes

Re,

Bonne idée Gael, petite fonction personnalisée ;) :D

Code:
Function NbDoublon(Plage As Range)
  Dim V As New Collection, c As Range
  Application.Volatile (True)
  Application.ScreenUpdating = False
  On Error Resume Next
  For Each c In Plage
    If c <> "" Then V.Add c.Value, CStr([c])
  Next c
  On Error GoTo 0
  NbDoublon = V.Count
End Function

Dans une cellule de la feuille
=NbDoublon(B6:B419)

A+

NB : au passage, jolie présentation de fichier mon cher Grosquick59 ;)
 

Discussions similaires

Réponses
7
Affichages
349

Statistiques des forums

Discussions
312 571
Messages
2 089 775
Membres
104 272
dernier inscrit
stef606