Microsoft 365 Doublons : mise en surbrillance erronée ?

  • Initiateur de la discussion Initiateur de la discussion Cpc464
  • Date de début Date de début

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 !

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
 
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+
 
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
 
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!
 
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

- 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
3
Affichages
545
Réponses
2
Affichages
462
Retour