Excel: créer une liste de cellules uniques en ignorant les accents

0

J'ai une liste de mots grecs dans Excel. Certaines des cellules sont des doublons exacts, d'autres sont exactement du même mot, mais accentuées différemment (en pratique, certains mots sont accentués et certains sont totalement non accentués). Je veux créer une liste de mots uniques, sans tenir compte de l'accentuation.

Est-ce possible?

Socrate
la source
1
S'il vous plaît fournir des exemples de données avec vos résultats attendus
Kevin Anthony Oppegaard Rose
Il n'y a pas de lien entre le code d'un caractère accentué et son équivalent non accentué. Vous aurez besoin de deux tables de travail, l’un des caractères non accentués et de toutes les formes accentuées possibles. L'autre sera la version sans accent de chaque mot, à partir de laquelle vous pourrez ensuite supprimer les doublons.
AFH
Je peux vous montrer une méthode pour convertir des caractères accentués en caractères non accentués, puis pour extraire une liste de caractères / mots uniques. ça va fonctionner pour vous? Veuillez confirmer .
Rajesh S
@ Socrates, bientôt je le posterai.
Rajesh S

Réponses:

1

Je voudrais montrer la méthode qui vous aidera à convertir les caractères / mots accentués en non-accentués ( comme vous l'avez demandé par le biais de commentaires ), puis à extraire la liste des caractères / mots uniques.

entrez la description de l'image ici

Insérez ce code VBA en tant que module avec la feuille de calcul requise. Ceci convertira les mots / caractères accentués en valeurs non accentuées.

Function ChangeAccent(thestring As String)
Dim A As String * 1
Dim B As String * 1
Dim i As Integer
Const AccChars= "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars= "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
For i = 1 To Len(AccChars)
A = Mid(AccChars, i, 1)
B = Mid(RegChars, i, 1)
thestring = Replace(thestring, A, B)
Next
ChangeAccent = thestring
End Function

Comment utiliser la fonction:

Je suppose que vous avez une liste de mots accentués dans la colonne A.

Écrivez donc cette formule dans la cellule B2, terminez avec Entrée et remplissez-la:

=ChangeAccent(A2)

Dans la cellule C2, écrivez cette formule matricielle, terminez par Ctrl + Maj + Entrée, puis remplissez-la.

{=IFERROR(INDEX($B$2:$B$11, MATCH(0, COUNTIF($C$1:C1, $B$2:$B$11), 0)),"")}

Vous obtenez une liste unique de mots non accentués, comme je l'ai montré par le biais d'une capture d'écran.

Rajesh S
la source
Merci pour l'aide. Malheureusement, mes mots sont en alphabet grec, mais je suppose que si je substituais l'alphabet anglais de votre code à l'alphabet grec, dans les deux cas, cela fonctionnerait.
Socrates
Mieux vaut essayer ce code et éditer votre question et nous montrer ces mots grecs, m'aidera à le modifier si nécessaire.
Rajesh S
Vous éditez cela avec les alphabets grecs, Const AccChars = "ŠŽšžŸÀÁÄÄÄÇÈÉËËÏÎÏÑÓÕ alors le code fonctionnera.
Rajesh S