Détecter la ressemblance entre des mots dans une colonne

Bonjour,

je vous explique mon problème

j'ai un fichier excel qui contient des noms que j'ai eu d'une base de donnée scientifique jusqu’à maintenant tout va bien. des fois le nom d'une personne est mal écrit, cad je trouve beaucoup de version écrite de la même personne. exemple:

IBRAGIMOV, I.

IBRAGIMOV, I

IBRAHIM, H.

IBRAHIM, HASSAN

IBRAHIM, S.

IBRAHIM, SLIM

ICHIHARA, K

ICHIHARA, KAZUHIRO

ce que je fait actuellement pour "Clean" les nom est de copier toute lesecriture d'un même nom en face du plus complet. et après je lance une macro qui me remplace tout les nom dans le fichier d'origine.

est il possible d'automatisé ce que je fait actuellement par une formule ou macro ? ( j'ai plus de 100000 nom a clean ) :'(

Merci d'avance

bonjour,

une proposition via une macro,.suppose les noms en colonne A

Sub aargh()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A1:A" & dl).Sort key1:=Range("A1"), order1:=xlDescending, Header:=xlNo
    i = 1
    pl = 1
    a = Split(Cells(pl, 1), ", ")
    While i <= dl
        b = Split(Cells(i, 1), ", ")
        If a(0) = b(0) And Left(a(1), 1) = Left(b(1), 1) Then
            Cells(i, 1) = Cells(pl, 1)
        Else
            pl = i
            a = Split(Cells(pl, 1), ", ")
        End If
        i = i + 1
    Wend
    Range("A1:A" & dl).Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlNo
End Sub

Merci beaucoup pour votre réponse. quand j'ai utilisé la macro pour la testé sur quelques ligne ça a marché mais pour une colonne de 100000 ligne elle me sort une erreur " erreur d’exécution 9, l'indice n'appartient pas à la sélection"

Merci encore une foi

Bonjour,

il s'agit probablement d'une ligne qui contient un nom sans prénom qui pose problème.

voici une proposition qui corrige ce cas.

Sub aargh()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A1:A" & dl).Sort key1:=Range("A1"), order1:=xlDescending, Header:=xlNo
    i = 1
    pl = 1
    a = Split(Cells(pl, 1) & ", ", ", ")
    While i <= dl
        b = Split(Cells(i, 1) & ", ", ", ")
        If a(0) = b(0) And Left(a(1), 1) = Left(b(1), 1) Then
            Cells(i, 1) = Cells(pl, 1)
        Else
            pl = i
            a = Split(Cells(pl, 1)  & ", ", ", ")
        End If
        i = i + 1
    Wend
    Range("A1:A" & dl).Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlNo
End Sub
 

Merci 100K fois ça marche !!!!! il reste a clean quand même un peut mais ça va me faire gagner énormément de temps.

Merci Merci Merci !!

Rechercher des sujets similaires à "detecter ressemblance entre mots colonne"