Une fonction PowerQuery pour convertir toutes les colonnes au format Texte

(Last Updated On: )

Lorsqu’on importe des données via une requête PowerQuery, par défaut le moteur d’importation génère automatiquement une étape de conversion des formats de tous les champs de données, basée sur les 1000 premières lignes, afin de détecter les champs de dates, de texte, de nombre, etc.

Parfois, on a besoin de conserver tous les champs en format texte, pour effectuer des concaténations, des recherches de sous-chaînes de caractères, etc.

Bref, voici ma fonction fnTypeText pour convertir en une étape toutes les colonnes de données :

(Table) =>
let
Source = Record.ToTable(Table{0}),
Type1 = Table.TransformColumnTypes(Source,{{"Value", type text}}),
Type2 = Table.ReplaceValue(Type1,null, "A",Replacer.ReplaceValue,{"Value"}),
Type3 = Table.AddColumn(Type2, "Type", each Value.Type(try Text.From([Value]) otherwise "A" as any)),
Type4 = Table.TransformColumnTypes(Table, List.Zip({Table.ColumnNames(Table), Type3[Type]}))
in
Type4
  1. Pour l’utiliser, ouvrez PowerQuery, puis commencez par créer une requête vide.
  2. Puis allez dans l’éditeur avancé de PowerQuery.
  3. Copier-coller le code ci-dessus.
  4. Renommer la requête en fnTypeText. Notez que la requête est reconnue en tant que  fonction avec une icône “fx” devant son nom

Pour l’utiliser, créez une nouvelle étape dans PowerQuery comme ceci :

Puis appelez la fonction comme ceci :

= fnTypeText(Etape_precedente)

Voilà, tous les champs sont convertis en texte maintenant.

L’avantage de cette fonction est que les champs ne sont pas explicitement appelés par PowerQuery dans cette étape, comme c’est le cas par exemple ici :

Donc si demain de nouveaux champs apparaissent dans vos données, cette étape de conversion en texte via la fonction s’appliquera aussi aux nouveaux champs !

Enfin, si vous souhaitez progresser rapidement sur PowerQuery, je vous propose un programme en ligne spécialement conçu pour découvrir et maîtriser les Power Tools de Microsoft.

Cliquez ici pour en savoir plus

Et vous, avez-vous des fonctions personnalisées dans PowerQuery ou souhaitez-vous en créer? 👉Répondez en commentaire.

Abonnez-vous à ma newsletter pour ne rien manquer des dernières astuces et actualités sur Excel et les Power Tools ! 👏👏

Souscrivez à ma newsletter :

3 commentaires

  1. Martel Yves dit

    Bonjour Lionel
    je commence à programmer en VBA j’aimerais savoir si il y a des bon livre pour apprendre comment faire une bonne structure de programme , truc et astuce
    merci et bon week-end

  2. Eric CHEVRON dit

    Bonjour, et surtout merci pour cette fonction que j’essayais péniblement de construire !
    Développeur VBA depuis une éternité, j’ai du mal à intégrer la logique du M, et je pense que j’y aurais passé quelques heures avant d’arriver à ce résultat (à vrai dire, il va falloir que j’étudie ce code parce-que je n’en ai pas encore saisi toutes les finesses).

    Bref, merci encore pour ce partage

Laisser un commentaire

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