Microsoft 365 Doublons : mise en surbrillance erronée ?

Cpc464

XLDnaute Nouveau
Bonjour,

Ma question est simple : peut-on se fier aux mise en forme conditionnelle pour s'assurer qu'il n'y ait aucun doublon.

Je m'explique
Dans un tableau contenant plus de 160000 lignes, une colonne "numero de serie" est présente.
Un collègue m'indique que la mise en forme conditionnelle/Règle de mise en surbrillance des cellules/Valeurs en doublon lui ressort un nombre conséquent de doublons.
Ce que j'ai constaté également. Mais quand je fais une "recherche F" ou tout simplement une copie de la colonne dans un notepad, les doublons ne ressortent pas.

Aussi vu qu'il s'agit d'un numero de série comportant 18 chiffres (format texte), je me demande si Excel n'envoie pas une fausse information et qu'il constate uniquement des doublons "approximatifs" ?
doubl-modele.png

Est ce que ce sujet vous parle svp ?

Merci
 

job75

XLDnaute Barbatruc
Bonjour Cpc464,

D'après votre image vos numéros de série ont 22 chiffres et non 18.

J'ai testé sur les 2 cellules A1 et A2 au format Texte et contenant les nombres :
01234567890123456789
01234567890123450000

Eh bien la MFC considère qu'il s'agit de doublons.

Le nombre de chiffre doit être le même mais seuls les 16 premiers chiffres sont comparés, 15 si on ne tient pas compte du zéro non significatif du début.

A+
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Cpc, Job, JHA,
Une autre façon de contourner le problème est de remplacer ces "nombres" en véritables chaine, alors la recherche de doublons sera correcte, avec :
VB:
Sub AjouteA()
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row  ' Changer la colonne à traiter ( 3 emplacements )
T = Range("A1:A" & DL)
For i = 1 To UBound(T)
    T(i, 1) = "N=" & T(i, 1) ' "N=" peut être remplacé par n'importe quelle chaine
Next i
[A1].Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
et le retour à l'original :
Code:
Sub Revient()
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row  ' Changer la colonne à traiter ( 3 emplacements )
T = Range("A1:A" & DL)
For i = 1 To UBound(T)
    T(i, 1) = "'" & Mid(T(i, 1), 3)
Next i
[A1].Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub
 

Cpc464

XLDnaute Nouveau
Bonjour à tous,

As-tu essayé "Power Query" pour obtenir les doublons de 160 000 données. Il y a des tas de tutos sur le net

JHA
Bonjour,
Oui, j'avais également utilisé PQ mais comme mon collègue insistait sur le fait qu'Excel ne pouvait pas se tromper..
Dommage également que le filtre de données se limite à 1000 résultats.
Enfin c'est deja pas mal :)

Merci pour votre aide.
Je clos!
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Il existe une solution, au lieu de mettre en MFC :
VB:
'=NB.SI($A:$A;$A1)>1
On met :
Code:
'=ET($F2<>"";NB.SI($F:$F;GAUCHE($F2;15)&"*")>1;NB.SI($F:$F;"*" & DROITE($F2;15))>1)
Ainsi la recherche s'effectue uniquement sur 15 caractères et ça marche.
 

Pièces jointes

  • MFC.xlsx
    8 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 089
Membres
112 658
dernier inscrit
doro 76