Microsoft 365 Nombre de caractères différents et suppression Doublons ?

mcfv

XLDnaute Junior
Supporter XLD
Bonjour à toute la Team.

j'ai un fichier Excel avec des références doublons mais avec la particularité de contenir des quantités différentes
exemple :
ABS BENJOIN
ABS BENJOIN 10 ML

J'aimerais savoir si il est possible de supprimer le doublon lorsque la référence diverge.

j'ai essayé la formule' 'gauche'' mais les références sont bien trop différentes en nombre de caractère.
j'ai également essayé avec ''données convertir'' mais là aussi la différence du nombre de caractère ne match pas avec les séparateurs.
j'ai essayé power query , mais je n'y arrive pas non plus.

avez-vous une solution, à moins que cela ne puisse pas se faire. :)

je vous remercie pour votre aide
je vous joint mon fichier

bonne journée.
 

Pièces jointes

  • Doublons.xlsx
    12.8 KB · Affichages: 8
Solution
Bonsoir à tous

Pas mal de pistes merci
Moi qui pensais que finalement ce n'était pas possible.
Vous en quelques clics c'est parfait bravo
Je vais refaire des tests pour bien m'en imprégner
@JHA 'si tu as les étapes POWER QUERY je prends
Bonne soirées à vous trois.

chris

XLDnaute Barbatruc
Bonjour

Tu peux tester ceci :
Mettre sous forme de tableau, ajouter une colonne avec la formule
VB:
=SI(ESTERREUR(GAUCHE(TEXTE.APRES(SUBSTITUE(SUBSTITUE([@[Désignation 1]];" g";"");" mL";"");" ";-1);1)*1);"";"*")
Vérifies si pas d'autre type d'unité de contenance
puis tu filtres les * et tu supprimes ces lignes

Sinon on peut aussi voir avec PowerQuery...
 

job75

XLDnaute Barbatruc
Bonjour mcfv, JHA, chris,

Voyez le fichier joint et la macro du bouton :
VB:
Sub Suppression_doublons()
Dim d As Object, i&, x$, j%
Set d = CreateObject("Scripting.Dictionary")
Columns(1).Sort Columns(1), xlAscending, Header:=xlYes 'tri
d.CompareMode = vbTextCompare 'la casse es ignoré
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    x = Application.Trim(Cells(i, 1))
    For j = 1 To Len(x)
        If IsNumeric(Mid(x, j, 1)) Then x = Trim(Left(x, j - 1)): Exit For
    Next j
    d(x) = ""
Next i
'---restitution---
With [B2] '1ère cellule de destination
    i = d.Count
    If i Then .Resize(i) = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
    .Offset(i).Resize(Rows.Count - i - .Row + 1).ClearContents 'RAZ en dessous
End With
End Sub
A+
 

Pièces jointes

  • Doublons(1).xlsm
    22.5 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
313 328
Messages
2 097 220
Membres
106 880
dernier inscrit
Michel2024