XL 2016 Détecter des doublons dans une colonne de 400.000 lignes

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 !

Markoko

XLDnaute Nouveau
Bonjour à tous,

je cherche une solution pour détecter les doublons dans une colonne de 400.000 lignes. Avec la formule ci : =SI(NB.SI($A$2:A10;A10)>1;"Doublon";" "). ça se plante

voici un exemple de résultat que j'aimerai avoir.

Merci pour votre précieuse aide
 

Pièces jointes

Bonjour Markoko, et bienvenu sur XLD,
Votre formule est correcte, mais appliquée à 400 000 lignes, sur mon PC ça rame énormément et XL me dit que mes ressources sont trop faibles.
Ce n'est pas la formule qui plante ... mais votre PC. 🙂
Peut être une piste en VBA en PJ avec :
VB:
Option Explicit: Option Base 1
Sub Doublons()
    Dim DL, i, N, Tablo
    Application.ScreenUpdating = False: N = 1
    DL = Range("A1000000").End(xlUp).Row
    ReDim Tablo(DL)
    [B:B].ClearContents
    For i = 2 To DL
        If Application.CountIf(Range("A2:A" & i), Cells(i, "A")) > 1 Then Tablo(i) = "Doublon"
        N = N + 1
        If N = 100 Then
            Application.StatusBar = "Progression : " & i
            N = 0
        End If
    Next i
    Range("B1").Resize(UBound(Tablo), 1).Value = Application.Transpose(Tablo)
    Application.StatusBar = ""
End Sub
N ne sert à rien si ce n'est à montrer la progression dans le statusbar.
Mais même là ça rame, mais ne plante pas.
PS : Pensez à accepter les macros.
 

Pièces jointes

Re,

une autre formule beaucoup plus légère qui donne le résultat en moins de 10s sur mon PC de 14 ans d'age.
En B2 :
VB:
=SI(EQUIV(A2;$A$1:$A$500000;0)=LIGNE();"";"Doublon")
eric
Merci Eriiic ça marche super bien et en moins de 7 secondes.

Re,

une autre formule beaucoup plus légère qui donne le résultat en moins de 10s sur mon PC de 14 ans d'age.
En B2 :
VB:
=SI(EQUIV(A2;$A$1:$A$500000;0)=LIGNE();"";"Doublon")
eric
 
bonjour
identifier les doublons
en voilà une belle histoire
oui mais de quelle façon
formule non matricielle (à étirer vers le bas)
pointer les doubles triples etc ...
=REPT("doublon";NB.SI($A$2:$A$100;A16)>1)

ou

pointer seulement les suivants
=REPT("doublon";NB.SI($A$1:$A2;A2)>1)

démo
1644665796004.png
 
bonjour
identifier les doublons
en voilà une belle histoire
oui mais de quelle façon
formule non matricielle (à étirer vers le bas)
pointer les doubles triples etc ...
=REPT("doublon";NB.SI($A$2:$A$100;A16)>1)

ou

pointer seulement les suivants
=REPT("doublon";NB.SI($A$1:$A2;A2)>1)

démo
Regarde la pièce jointe 1130628
Merci Patricktoulon. Ta proposition avec les valeurs en triple aurait été idéal pour moi mais ca tourne sans cesse avec mes 389388 lignes
 
Elle est conçue pour être efficiente à différencier la 1ère occurence des autres et rien de plus.
Seule la 1ère occurence n'est pas marquée, elle marque donc aussi les triplets etc.
S'il te faut les compter, tu dois repartir sur des solutions plus gourmandes sur les grandes plages ou par macro.
eric
 
Dernière édition:
re
à tout hasard
les vrai uniques

les doubles,triples,etc

et la DicoCountOrder

peut être q'une fonction perso en formule ira plus vite (à tester)
 
- 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

Discussions similaires

Réponses
2
Affichages
311
Réponses
1
Affichages
249
Réponses
10
Affichages
417
Retour