Power Query

Power Query – fonction pour enlever les accents

Temps de lecture < 1 minute

Le code suivant va vous permette d'enlever les accents en utilisant Power Query.

Power Query ou VBA

Dans cet article vous avez une situation similaire mais écrite en VBA. Seulement, en VBA, il n'est pas possible d'écrire des caractères au-delà du charactère 255 dans la table des caractères ASCII.

Table ASCII

Seulement, il y a certains caractères, comme ż, ł ou ń qui sont au-delà de la position 255 dans la table ASCII. Donc, pour tous ces caractères particuliers, il est préférable de construire la fonction avec Power Query.

Présentation du code

Le principe de la fonction Power Query et de créer une liste double liste.

  • Une liste pour chaque association de lettre à trouver / lettre à convertir
  • L'ensemble de ses associations regroupé dans une autre liste
(MyText as text) =>
let
    ListAccents = 
		{
		{"à","a"},
		{"á","a"},
		{"â","a"},
		{"ã","a"},
		{"ä","a"},
		{"å","a"},
		{"è","e"},
		{"é","e"},
..........
		{"ś","s"},
		{"ż","z"},
		{"ź","z"},
		{"Ą","A"},
		{"Ć","C"},
		{"Ę","E"},
		{"Ł","L"},
		{"Ń","N"},
		{"Ś","S"},
		{"Ż","Z"},
		{"Ź","Z"},
		}
in
    Text.Combine(List.ReplaceMatchingItems(Text.ToList(MyText), ListAccents))

Enfin, tout ce tableau va être utilisé dans la fonction Text.ToList qui va éclater le texte MyText en une suite de lettre unique en mémoire. L'instruction List.ReplaceMatchingItems va quant à elle effectuer le remplacement des lettres présentes dans le tableau de conversion.

Télécharger le code

Vous pouvez télécharger le code complet ici ou bien encore le classeur Excel avec un exemple

Related posts

RECHERCHEV sur 2 colonnes

Frédéric LE GUEN

Trouver les doublons

Frédéric LE GUEN

Combiner toutes les lignes (Cross Join)

Frédéric LE GUEN

2 commentaires

Laurent 13/11/2020 at 21:38

Dans l'idée c'est très pratique mais impossible de faire fonctionner le code.

J'ai corriger la liste des lettres à accent (cf la version en VB pour les bonnes correspondances), enlevé la virgule en trop à la fin de la liste. Mais Excel continue à générer une erreur dont le message est incompréhensible et l'aide ne propose que de redémarrer l'appli.

Dommage !

Répondre
Frédéric LE GUEN 14/11/2020 at 09:33

Bonjour,
Oui, j'avais laissé une erreur dans le code (dsl). J'ai remis en ligne la nouvelle version avec un exemple depuis un classeur Excel.

Répondre

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.