Power Query – fonction pour enlever les accents

Power Query – fonction pour enlever les accents
Dernière mise à jour le 05/02/2024
Temps de lecture : < 1 minute

Le code suivant va vous permettre 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 caractè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 est de créer une liste double liste.

  • Une liste pour chaque association de lettre à trouver / lettre à convertir.
  • L'ensemble de ces 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 lettres uniques 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

Vous trouverez des informations complémentaires sur le remplacement de données sur le site de Microsoft.

2 Comments

  1. Laurent
    13/11/2020 @ 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 !

    Reply

    • Frédéric LE GUEN
      14/11/2020 @ 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.

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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

Power Query – fonction pour enlever les accents

Reading time: < 1 minute
Dernière mise à jour le 05/02/2024

Le code suivant va vous permettre 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 caractè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 est de créer une liste double liste.

  • Une liste pour chaque association de lettre à trouver / lettre à convertir.
  • L'ensemble de ces 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 lettres uniques 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

Vous trouverez des informations complémentaires sur le remplacement de données sur le site de Microsoft.

2 Comments

  1. Laurent
    13/11/2020 @ 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 !

    Reply

    • Frédéric LE GUEN
      14/11/2020 @ 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.

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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