Fonctions de requête personnalisées LuckyTemplates

Fonctions de requête personnalisées LuckyTemplates

Pour le didacticiel d'aujourd'hui, nous allons créer une fonction de requête personnalisée LuckyTemplates qui traitera un format commun difficile à gérer de données empilées. Cette technique est facilement réutilisable sur plusieurs rapports et plusieurs tables. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.

Il s'agit de la suite du didacticiel que j'ai réalisé récemment, dans lequel nous traitions d'un format commun de données empilées difficile à gérer et utilisions Modulo, Pivot et certaines fonctions de nettoyage avec Power Query pour transformer ces données en un format organisé et fonctionnel.

Fonctions de requête personnalisées LuckyTemplates

Il est très probable que vous deviez répéter ce processus. Si ce type de format résulte d'un copier-coller, cela va probablement se reproduire. Donc, dans ce cas, vous voudrez probablement créer une fonction personnalisée qui sera réutilisable sur plusieurs rapports et plusieurs tables, indépendamment de la façon dont ils sont nommés et de ce qu'il y a d'autre dans ces tables.

Table des matières

Comment créer et déboguer des fonctions de requête personnalisées LuckyTemplates

Passons à Power Query à ce sujet. Si nous allons à notre table de données, dans l'éditeur avancé, nous avons le code M pour savoir comment nous avons fini par passer de ces données de pile au format souhaité.

Fonctions de requête personnalisées LuckyTemplates

Si nous voulons réutiliser cela, nous faisons simplement un clic droit sur Data et disons, Create Function .

Fonctions de requête personnalisées LuckyTemplates

Il dit qu'il ne fera référence à aucun paramètre, mais il est normal de créer une fonction sans paramètres. Nous allons répondre Oui, car nous allons ajouter les paramètres au fur et à mesure dans l'Editeur avancé. Nous appellerons cette fonction, Unstack - 3 Elements , simplement parce que nous avons les trois lignes au format brut. Si nous avions un format à deux lignes, nous en construirions probablement un autre composé de deux ou quatre éléments.

Fonctions de requête personnalisées LuckyTemplates

Alors maintenant, nous avons cet appel, nous n'avons pas de paramètres, et allons dans l'éditeur avancé et commençons à travailler sur celui-ci.

Fonctions de requête personnalisées LuckyTemplates

Premièrement, nous n'avons pas besoin de cette Source. Nous allons utiliser les paramètres de la fonction pour définir notre source.

Fonctions de requête personnalisées LuckyTemplates

Nous voulons définir le paramètre qui va entrer. Nous le faisons avec une parenthèse ouverte puis un nom de paramètre. Appelons cela, Stack , qui va être cette colonne de données qui est les données de pile non formatées provenant de la pâte des adresses e-mail.

Nous voulons que cela se présente sous la forme d'une liste et nous voulons que cela se traduise par une table, car lorsque nous la dévions de cette colonne unique vers plusieurs colonnes, elle passe d'une liste à une table. Et maintenant, nous devons convertir cette liste entrante en une table afin que nous puissions ajouter notre index, lancer notre module non pivoté et faire tout ce que nous devons faire pour le reformater.

Fonctions de requête personnalisées LuckyTemplates

Nous l'appellerons ConvertStack , et cela va utiliser une fonction appelée Table.FromList . Comme beaucoup de fonctions M, il fait exactement ce qu'il dit. Il suffit d'une liste. Dans ce cas, la liste sera notre liste Stack. Et puis, nous devons remplacer la Source ici par notre ConvertStack. Ça a l'air plutôt bien ! Nous n'avons aucune erreur de syntaxe, alors cliquons sur Terminé.

Maintenant, cela nous donne ce que nous voulions, c'est-à-dire la possibilité de choisir une colonne.

Fonctions de requête personnalisées LuckyTemplates

Ensuite, nous allons choisir TestData, qui correspond aux données mal formatées. Nous allons choisir la colonne Valeur, puis cliquer sur OK. Après cela, nous cliquons sur Appeler.

Fonctions de requête personnalisées LuckyTemplates

Cependant, nous obtenons cette erreur. Il est vraiment difficile de déterminer quelle est cette erreur. L'un des problèmes avec les fonctions personnalisées est qu'elles ne séparent pas les étapes appliquées, vous n'obtenez qu'une seule étape pour l'ensemble de la fonction personnalisée. Mais il y a un moyen de contourner cela dans le débogage que je vais vous montrer. Il sera beaucoup plus facile de comprendre ce qui se passe ici.

Fonctions de requête personnalisées LuckyTemplates

Au lieu de l'exécuter pour le moment en tant que fonction, nous allons l'exécuter en tant que requête. Nous allons simplement lancer manuellement cet appel Stack. Nous devons définir ce qu'est Stack parce que nous ne le dessinons pas à travers l'interaction de le choisir dans Invoke. Donc, nous avons Stack égal à TestData et la colonne Value de TestData.

Fonctions de requête personnalisées LuckyTemplates

Ce qu'il fait, c'est qu'il le décompose maintenant en étapes appliquées. Cela nous aidera à comprendre pourquoi cela ne fonctionne pas. Remarquez une chose intéressante lorsque nous intégrons Stack. Initialement, il extrait TestData[Value], mais lorsque nous le convertissons en table, au lieu de Value est l'en-tête de colonne, l'en-tête de colonne est maintenant Column1.

Fonctions de requête personnalisées LuckyTemplates

Rappelez-vous le message d'erreur, c'était qu'il ne pouvait pas trouver la colonne Valeur. La raison pour laquelle il n'a pas pu trouver la colonne Value est que la fonction Table.FromList la renomme en Column1.

Si nous descendons les étapes appliquées, vous pouvez voir que c'est dans l'étape personnalisée ajoutée que nous obtenons l'erreur. C'est là que la valeur de l'enregistrement n'a pas été trouvée.

Fonctions de requête personnalisées LuckyTemplates

Et donc, si nous allons dans l'éditeur avancé, nous trouvons ce champ personnalisé, et nous pouvons voir qu'il se trouve dans Text.Remove où nous supprimons les caractères inutiles dont nous n'avions pas besoin, mais il fait toujours référence à le champ Valeur. Nous allons changer cela en Colonne1. De même, dans le champ Colonnes supprimées, il fait référence à Valeur, nous allons donc également le remplacer par Colonne1.

Fonctions de requête personnalisées LuckyTemplates

Et lorsque nous arrivons à la fin des étapes appliquées, cela produit le résultat final parfait.

Fonctions de requête personnalisées LuckyTemplates

Maintenant que nous savons que cela fonctionne correctement, nous n'avons plus qu'une chose à faire. N'oubliez pas que pour le déboguer, nous avons transformé la fonction personnalisée en requête. Et donc, maintenant nous devons prendre cette requête et la transformer en une fonction.

Fonctions de requête personnalisées LuckyTemplates


Création d'une fonction de nettoyage de texte personnalisée dans Power Query
M Code dans Power Query Custom Columns | Requête de fonction LuckyTemplates
et opérateurs dans l'éditeur de requête

Conclusion

Dans ce didacticiel, nous avons créé cette fonction personnalisée, l'avons déboguée, testée et elle fonctionne très bien. Et donc maintenant, chaque fois que nous avons une pile à trois éléments, nous pouvons simplement sélectionner cette table, choisir cette colonne dans la table et exécuter cette fonction personnalisée. Ensuite, appliquez le Modulo, le dépivot et nettoyez.

Cela devrait vous donner de bons outils en termes de création de fonctions personnalisées. Rappelez-vous également cette astuce concernant le débogage en la transformant en une requête à partir d'une fonction, puis en la rebasculant après le débogage. C'est un outil vraiment précieux qui facilite grandement le débogage des fonctions personnalisées.

Tous mes vœux!


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir