Dénombré les doublons

Harold

XLDnaute Junior
Bonjour à tous,

Voilà, j'ai une formule qui me dit s'il y a des doublons sur une plage
(=SI(MAX(NB.SI(B2:B1000;B2:B1000))>1;"Il y a des doublons";"Il n'y a pas des doublons")-Formule matricielle), mais je n'arrive pas à la modifier ou en créé une pour me donner le nombre de doublons dans la plage donnée
pourriez vous m'aider SVP
Merci d'avance
 

Tibo

XLDnaute Barbatruc
Re : Dénombré les doublons

Bonjour,

Une formule matricielle demande à être validée par la combinaison de touches suivante :

CTRL (maintenu enfoncé) SHIFT (maintenu enfoncé) et ENTREE (et après on lache tout).

N'hésite pas à repasseravec plus de détails si problème persiste.

@+
 

Harold

XLDnaute Junior
Re : Dénombré les doublons

Merci, mais ce n'est pas exactement ce que je recherche.

Sur une colonne (A) on a des données par exemple
A1 = A
A2 = B
A3 = A
A4 = C
A5 = B

ce qui nous donne 2 doublons, c'est ce que je cherche à trouver le nombre de doublons sur une meme colonne et non sur 2. en tout cas les formule que j'ai vu sur ce lien ne fonctionne pas comme il faudrait

mais merci pour le tuyaux
 

Jocelyn

XLDnaute Barbatruc
Re : Dénombré les doublons

Bonjour le Forum,
Bonjour Harold, Tibo, MJ13,

sur une formule que j'ai honteusement copiée sur JeanMarie a base de fréquence()

Jocelyn
 

Pièces jointes

  • Harold.zip
    1.7 KB · Affichages: 55
  • Harold.zip
    1.7 KB · Affichages: 54
  • Harold.zip
    1.7 KB · Affichages: 56

Tibo

XLDnaute Barbatruc
Re : Dénombré les doublons

re,

Ma préférence va aux formules à base de FREQUENCE proposée par Jocelyn, mais je suis encore loin de maîtriser cette fonction.

Une autre proposition avec SOMMEPROD :

Code:
=SOMMEPROD(1/NB.SI(plage_cellules;plage_cellules))-
SOMMEPROD((1/NB.SI(plage_cellules;plage_cellules)=1)*1)

Peut-être moyen de la simplifié, mais pas trouvé

@+
 

JeanMarie

XLDnaute Barbatruc
Re : Dénombré les doublons

Bonsoir tout le monde

Merci Jocelyn.... :)

Il est possible de réduire les formules, si certaines conditions sont remplies.

Si la plage ne contient aucune cellule vide. La formule devient, et plus besoin de la valider avec les trois touches.
Code:
=SOMME((FREQUENCE(EQUIV($A$1:$A$11;$A$1:$A$11;0);LIGNE($A$1:$A$11))>1)*1)

Si la plage contient des cellules vides. Formule matricielle à valider par les touches Ctrl+Shift+Entrer
Code:
=SOMME((FREQUENCE(SI(ESTVIDE($A$1:$A$11);"";EQUIV($A$1:$A$11;$A$1:$A$11;0));LIGNE($A$1:$A$11))>1)*1)
A noter : que j'ai remplacé le NB.SI par ESTVIDE.

J'ai aussi changé la valeur du comparateur >0 par >1.

Bonne soirée à tous

@+Jean-Marie
 

Hervé

XLDnaute Barbatruc
Re : Dénombré les doublons

salut

Et en VBA, personne n'a la solution. Remarquez, moi je l'aurai fait en T.D!

en vba ca pourrait ressembler à ce type de fonction :

Code:
Public Function NBDB(plage As Range) As Long
Dim c As Range
Dim x As Long
Dim tablo()
ReDim tablo(0)
 
For Each c In plage
    If Application.CountIf(plage, c) > 1 Then
        If IsError(Application.Match(c, tablo, 0)) Then
            ReDim Preserve tablo(x)
            tablo(x) = c: x = x + 1
        End If
    End If
 
Next c
 
NBDB = UBound(tablo) + 1
 
End Function

en b1=nbdb(A1:A10) renvoi le nombre de doublons dans la plage

mais bon, je trouve les formules bien plus efficace pour faire ce type de job.

salut
 

MJ13

XLDnaute Barbatruc
Re : Dénombré les doublons

Bonjour Hervé, les autres


Hervé, merci beaucoup pour ta participation. c'est ce que j'aime avoir le plus de soluces possibles.

J'ai fait un petit fichier avec toutes les solutions, plus quelques autres de JB et BHBH notamment sur les doublons.

Merci à tous pour votre participation.
 

Pièces jointes

  • Doublons_XLD.zip
    17.2 KB · Affichages: 70
Dernière édition:

wilfried_42

XLDnaute Barbatruc
Re : Dénombré les doublons

bonjour à tous

avec une formule matricielle :
Code:
=NBVAL(A:A)-SOMME(1/NB.SI(A1:A26;A1:A26))
et une macro avec un objet dictionary
Code:
Sub essai()
    Set essai = CreateObject("Scripting.Dictionary")
    Dim i As Long, cel As Range
    i = 0
    For Each cel In Range("A1:A26")
        i = i + 1
        If Not essai.exists(cel.Value) Then
            essai.Add cel.Value, cel.Value
        End If
    Next
    MsgBox i - essai.Count & " Doublons"
End Sub

j'ai fait l'essai de ma formule avec le fichier de michel, et je n'ai pas le meme resultat, pas compris la meme chose, la macro donnant le meme nombre que la formule, c'est le nombre total de lignes qui font doublon que je donne et non pas le nombre de valeurs doublonnées
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Dénombré les doublons

Bonjour à tous

Merci Wilfried pour tes solutions. J'ai pas bien compris à quoi elle servait.


Bon c'est pas grave.
c'est le nombre total de lignes qui font doublon que je donne et non pas le nombre de valeurs doublonnées

AAH j'ai peut-être compris!

Bonne soirée.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 504
Messages
2 089 070
Membres
104 018
dernier inscrit
Mzghal