Featured image of post Power Query au-delà des assistants.

Power Query au-delà des assistants.

Allez au-delà des assistants dans Power Query et découvrez quelques usages avancés.

Contexte

Vous utilisez Power Query pour intégrer vos données, mais vous voulez aller plus loin avec ?
Je vous propose dans cet article quelques techniques avancées pour booster votre productivité avec Power Query.

Au-delà des assistants

La première étape du parcours sera d’aller au-delà des assistants. En effet, bien que ces derniers soient très utiles, ils ont des limites.

Afficher la barre de formule

Pour cela vous devrez prendre l’habitude de lire le code M générer par l’assistant à chaque étape, car cela vous permettra :

  • De vérifier que le code est bien générique et adapté à la situation.
  • D’optimiser le code écrit par l’assistant.

Pour réussir à faire cela, il suffit d’activer la barre de formule dans l’éditeur Power Query.

Activation de la barre de formule Power Query

  1. Dans l’éditeur Power Query, allez dans le menu Affichage.
  2. Cochez Barre de formule.
  3. Vous pourrez voir et modifier le code de l’étape en cours de sélection dans la barre de formule.

Utiliser la documentation

Maintenant que vous avez accès rapidement au code M généré par les assistants, prenez l’habitude de jeter un coup d’œil sur la documentation des fonctions.
Vous retrouverez la documentation complète sur le site de Microsoft en français ou en anglais. Au vu de la qualité de certaines traductions, personnellement je privilégie la documentation en anglais.

Le nom des fonctions du langage M est toujours en 2 parties : Le nom de la famille de la fonction suivi du nom de la fonction, les 2 étant séparés par un point.

Structure de l’aide

  1. Allez dans Fonctions.
  2. Vous retrouverez la documentation de chaque fonction dans sa famille.

Quand vous êtes dans l’aide, profitez-en pour regarder le nom des autres fonctions de la même famille que celle qui vous intéresse, parfois on y trouve de l’inspiration ou on découvre de nouvelles choses.

Insérer du code Power Query manuellement

Pour insérer une étape dans votre traitement dans laquelle vous pouvez écrire le code M librement, il vous suffit

Ajout de code M manuellement

  1. Dans l’éditeur Power Query, allez dans le menu Ajouter une colonne.
  2. Choisissez Colonne personnalisée.
  3. Entrez un nom pour votre nouvelle colonne.
  4. Tapez votre code M.
  5. Vous pouvez ajouter une des colonnes déjà existantes en double cliquant dessus.
  6. Vérifiez que le code M est syntaxiquement correct.
  7. Appuyez sur OK pour terminer.

🎁 Une petite astuce : quand vous avez une erreur de syntaxe en M, dans 99 % des cas c’est dû a une des 2 causes suivantes :

  • Une erreur de casse. Le code M est sensible à la casse, cela veut dire que le même texte écrit avec une minuscule au lieu d’une majuscule est un terme différent. Exemple “Coucou” et différent de “coucou” pour le langage M.
  • Une erreur entre les parenthèses “()”, accolades “{}” ou crochet “[]”. Elles sont soit mal positionnées, soit manquantes (souvent celle qui est fermante).

Si le problème ne vient pas d’un de ces 2 cas : bon courage.

Exemples d’utilisation des fonctions non disponible dans les assistants

Parmi les multiples fonctions M voici 2 exemples qui vous permettront de mieux comprendre l’intérêt de la démarche décrite ci-dessus.

Text.PadStart & Text.PadEnd

Les fonctions M Text.PadStart et Text.PadEnd ne sont pas disponibles au travers des assistants, mais sont d’une efficacité redoutable pour mettre en forme proprement nos données.
En effet elles permettent de créer des chaines de caractères de taille fixe en remplissant les caractères absents avec une valeur de votre choix.

Par exemple, pour votre dimension calendrier, vous souhaitez afficher les mois en texte sur 2 caractères, vous pouvez le faire simplement avec Text.PadStart.

Exemple Text.PadStart

  1. La formule permet de transformer en une étape le contenu de la colonne Column1 en texte avec la fonction Text.From puis de formater le résultat sur 2 caractères avec un zéro si on a qu’un caractère avec la fonction Text.PadStart.
  2. Valeur d’origine de la colonne Column1
  3. Valeur du résultat de la fonction.

Vous pouvez tester cela directement en copiant le code M ci-dessous dans une requête vide à l’aide de l’éditeur avancé.

1
2
3
4
5
6
let
    Source = {1..12},
    #"Converti en table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Personnalisée ajoutée" = Table.AddColumn(#"Converti en table", "Mois", each Text.PadStart(Text.From([Column1]),2,"0"))
in
    #"Personnalisée ajoutée"

Text.Format

Les fonctions M Text.Format vous permettent de créer des concaténations de chaines de caractères en gérant la culture à utiliser pour faire l’affichage.

Exemple Text.Format

Vous pouvez tester cela directement en copiant le code M ci-dessous dans une requête vide à l’aide de l’éditeur avancé.

1
2
3
4
5
6
let
    Source = List.DateTimes(DateTime.LocalNow(),10,#duration(1,0,0,0)),
    #"Converti en table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Personnalisée ajoutée" = Table.AddColumn(#"Converti en table", "Message avec date US", each Text.Format("Message du #{0}", {[Column1]}, "en-US"))
in
    #"Personnalisée ajoutée"

Saisir sans le point

Une astuce qui va vous simplifier la saisie, quand vous saisissez un nom de fonction M dans l’éditeur, ne saisissez pas le point afin que l’aide à la saisie fonctionne de manière optimale.

Merci de votre attention.

comments powered by Disqus
Généré avec Hugo
Thème Stack conçu par Jimmy