Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
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.
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é.
Si nous voulons réutiliser cela, nous faisons simplement un clic droit sur Data et disons, Create Function .
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.
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.
Premièrement, nous n'avons pas besoin de cette Source. Nous allons utiliser les paramètres de la fonction pour définir notre source.
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.
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.
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.
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.
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.
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.
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.
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.
Et lorsque nous arrivons à la fin des étapes appliquées, cela produit le résultat final parfait.
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.
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!
Qu'est-ce que le self en Python ? Exemples concrets
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.
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.
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.
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.
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.
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.
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.
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.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir