valeurs uniques

ppraud

XLDnaute Nouveau
Bonjour,

je cherche une formule qui formule qui me permet de trouver le nombre de valeurs unique dans une colonn.
Par exemple,je cherche le nombre de valeurs uniques entre les cases A1 a A32 mais absente dans les cases a A33 à A69.

si une valeur est presente en A4 mais absente dans les cases A33 a A69,je veux que cette valeurs comptabilisé.
 

excfl

XLDnaute Barbatruc
Re : valeurs uniques

Bonjour ppraud,

je cherche une formule qui formule qui me permet de trouver le nombre de valeurs unique dans une colonn.

Formule qui permet de calculer le nombre de valeur(s) unique(s) de A1 à A100 :

=SOMME(SI(A1:A100<>"";1/NB.SI(A1:A100;A1:A100)))

A valider avec CTRL MAJ ENTREE

excfl

EDIT Bonjour R@chid, job75
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : valeurs uniques

Bonjour ppraud, excfl,

Par formule cela ne paraît pas évident, il faut sans doute une colonne auxiliaire.

En VBA c'est assez facile :

Code:
Option Compare Text 'si l'on veut que la casse soit ignorée

Sub CompteValeursUniques()
Dim t, tc, ub&, i&, e, j&, n&
t = [A1:A50] 'à adapter
tc = [A51:A100] 'à adapter
ub = UBound(t)
For i = 1 To ub
  If t(i, 1) <> "" Then
    For Each e In tc
      If t(i, 1) = e Then t(i, 1) = Empty: GoTo 1
    Next
    For j = i + 1 To ub
      If t(j, 1) = t(i, 1) Then t(j, 1) = Empty
    Next
    n = n + 1
  End If
1 Next
MsgBox "Nombre de valeurs uniques " & n, , "Résultat"
End Sub
On peut aussi créer une fonction VBA sur le même principe.

Edit : salut R@chid, je vais vite regarder ta solution.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : valeurs uniques

Re,

Si l'on veut restituer les valeurs uniques à partir de B2 :

Code:
Option Compare Text 'si l'on veut que la casse soit ignorée

Sub CompteValeursUniques()
Dim t, tc, ub&, i&, e, j&, n&
t = [A1:A50] 'à adapter
tc = [A51:A100] 'à adapter
ub = UBound(t)
For i = 1 To ub
  If t(i, 1) <> "" Then
    For Each e In tc
      If t(i, 1) = e Then t(i, 1) = Empty: GoTo 1
    Next
    For j = i + 1 To ub
      If t(j, 1) = t(i, 1) Then t(j, 1) = Empty
    Next
    n = n + 1
  End If
1 Next
[B2].Resize(ub) = t 'restitution
[B:B].Sort [B1], Header:=xlYes 'tri
MsgBox "Nombre de valeurs uniques " & n, , "Résultat"
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji