Power Query – fonction pour enlever les accents

Dernière mise à jour le 17/08/2025
Temps de lecture : 2 minutes

Retrouvez dans cet article une fonction personnalisée de Power Query pour enlever tous les accents de vos chaînes de caractères.

Power Query vs 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. C'est pourquoi, il est recommandé d'utiliser Power Query pour nettoyer vos chaînes de caractères de tous les accents.

Présentation du code

Le principe de la fonction Power Query est de créer une liste à deux dimensions.

  1. Un premier niveau pour lister les lettres sans accents à renvoyer.
  2. L'ensemble des lettres accentuées pour la même lettre.
(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))

Le résultat de la fonction va recombiner la chaîne initiale de la façon suivante :

  • Text.ToList qui va éclater le texte MyText en une suite de lettres uniques en mémoire
  • List.ReplaceMatchingItems va quant à elle effectuer le remplacement des lettres présentes dans le tableau de conversion
  • Text.Combine va reconstruire la chaîne de caractères initiale

Télécharger le code

Cliquez sur le bouton suivant pour rélécharger le code de la fonction personnalisée.

Mise en place

  1. Copiez le code fourni dans cet article
  2. Puis aller dans Données > Obtenir des données > A partir d'autres sources > Requête vide
  3. Collez le code dans la requête vide
  4. Donnez lui le nom fnEnleverAccents
Créer votre fonction personnalisée dans Power Query

Appeler la fonction

Construisez votre requête tout à fait normalement, puis pour appeler la fonction

  1. Ajouter une nouvelle colonne
  2. Puis Ajouter une fonction personnalisée
  3. Cliquez sur le menu déroulant de Requête de fonction et sélectionnez la requête fnEnleverAccents
  4. Finissez par indiquer la colonne contenant les valeurs à nettoyer
Appeler la fonction personnalisée pour enlever les accents

3 Comments

  1. Céline
    24/04/2024 @ 19:13

    Whaou ! C'est génial ! Mille mercis, ça peut vraiment aider comme créer des adresses mails d'une société avec prenom.nom@societe.fr et supprimer les accents !
    Merci Frédéric pour ces GRANDS TIPS
    Céline

    Reply

  2. 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 la façon dont les données de vos commentaires sont traitées.

Microsoft MVP 2024

Newsletter

1 fois par mois :
Astuces et quiz

    Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

    Power Query – fonction pour enlever les accents

    Reading time: 2 minutes
    Dernière mise à jour le 17/08/2025

    Retrouvez dans cet article une fonction personnalisée de Power Query pour enlever tous les accents de vos chaînes de caractères.

    Power Query vs 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. C'est pourquoi, il est recommandé d'utiliser Power Query pour nettoyer vos chaînes de caractères de tous les accents.

    Présentation du code

    Le principe de la fonction Power Query est de créer une liste à deux dimensions.

    1. Un premier niveau pour lister les lettres sans accents à renvoyer.
    2. L'ensemble des lettres accentuées pour la même lettre.
    (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))

    Le résultat de la fonction va recombiner la chaîne initiale de la façon suivante :

    • Text.ToList qui va éclater le texte MyText en une suite de lettres uniques en mémoire
    • List.ReplaceMatchingItems va quant à elle effectuer le remplacement des lettres présentes dans le tableau de conversion
    • Text.Combine va reconstruire la chaîne de caractères initiale

    Télécharger le code

    Cliquez sur le bouton suivant pour rélécharger le code de la fonction personnalisée.

    Mise en place

    1. Copiez le code fourni dans cet article
    2. Puis aller dans Données > Obtenir des données > A partir d'autres sources > Requête vide
    3. Collez le code dans la requête vide
    4. Donnez lui le nom fnEnleverAccents
    Créer votre fonction personnalisée dans Power Query

    Appeler la fonction

    Construisez votre requête tout à fait normalement, puis pour appeler la fonction

    1. Ajouter une nouvelle colonne
    2. Puis Ajouter une fonction personnalisée
    3. Cliquez sur le menu déroulant de Requête de fonction et sélectionnez la requête fnEnleverAccents
    4. Finissez par indiquer la colonne contenant les valeurs à nettoyer
    Appeler la fonction personnalisée pour enlever les accents

    Newsletter

    1 fois par mois :
    Astuces et quiz

      Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

      3 Comments

      1. Céline
        24/04/2024 @ 19:13

        Whaou ! C'est génial ! Mille mercis, ça peut vraiment aider comme créer des adresses mails d'une société avec prenom.nom@societe.fr et supprimer les accents !
        Merci Frédéric pour ces GRANDS TIPS
        Céline

        Reply

      2. 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 la façon dont les données de vos commentaires sont traitées.