Nettoyer un fichier avec des intitulés proches

Bonjour à tous, et merci aux nombreuses personnes qui prennent la peine de venir en aide aux personnes qui les sollicitent.

Je vous explique mon questionnement :

je travaille personnellement sur SAS à partir de fichiers excel et je suis parfois confronté à des fichiers que je dois nettoyer. Plusieurs modalités sont offertes, et parfois des faux doublons me font perdre énormément de temps. Il peut s'agir d'un espace en trop, d'une virgule placée différemment, ou d'une accentuation présente ou absente.

Je me demandais si Excel proposait une formule permettant d'interpréter les valeurs proches comme uniques.

Par exemple, dans le fichier que je fournis en pièce jointe

12exemple-forum.xlsx (16.39 Ko)

je tombe sur deux intitulés différents : "Non , je m'y suis rendu" et "Non, je m'y suis rendu". Vous conviendrez que ces intitulés devraient être interprétés de la même façon mais sortent comme deux valeurs différentes à cause de l'espace avant la virgule(injustifié) dans le premier cas.

Trouver une solution automatisable me ferait gagner un temps précieux.

Merci d'avance pour votre bienveillance.

Bonjour,

une proposition via une fonction personnalisée (qui supprime ponctuation et remplace les caractères accentués), mais je doute que ce soit suffisant pour détecter les réponses semblables.

Bonjour monsieur H,

merci pour votre réponse, en effet je ne suis pas sure que cela suffise mais c'est une autre manière de répondre à ma question. C'est dailleurs de cette façon que j'ai commencé à aborder le problème (passer tout en majuscule, supprimer les caractère spéciaux...).

Cette fonction est personnalisée vous dite, c'est à dire que vous l'avez "programmée"? En utilisant du langage VBA?

Merci en tout cas chaleureusement pour votre aide.

re-bonjour,

Cette fonction est personnalisée vous dite, c'est à dire que vous l'avez "programmée"? En utilisant du langage VBA?

en effet.

A la lecture de ta réponse, je me rends compte que j'avais oublié de traiter la casse. voici le code corrigé ainsi que le fichier

Function mycleanup(ByVal phrase)
    p = " ,.';:()""-_!?/" & Chr(160) & Chr(10) & Chr(13) & Chr(8) 'signes de ponctuation
    ar = "éèêàâîïùûüôçë" 'caractères accentués
    ra = "eeeaaiiuuuoce" 'caractères de remplacement des caractères accentués
    phrase = LCase(phrase) 'mise de la phrase en minuscules
    For k = 1 To Len(p) 'remplacement de la ponctuation
        phrase = Replace(phrase, Mid(p, k, 1), "")
    Next k
    For k = 1 To Len(ar) ' remplacement des caractères accentués
        phrase = Replace(phrase, Mid(ar, k, 1), Mid(ra, k, 1))
    Next k
    mycleanup = phrase 'renvoi de la phrase en minuscules sans ponctuation et sans accent
End Function

Merci beaucoup H d'avoir pris le temps de me faire une réponse aussi détaillé.

Je ne connais pas du tout le langage VBA, mais à l'aide des commentaires que tu as glissé dans le code, je parviens à comprendre toute la démarche.

C'est vraiment très sympa de m'avoir fournis une réponse aussi détaillée. Je vais maintenant essayer de l'appliquer.

Tu peux considéré avoir fait ta BA de ta journée, que je te souhaite être excellente !

Rechercher des sujets similaires à "nettoyer fichier intitules proches"