Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Dans ce didacticiel, nous examinerons une question intéressante qui a été soulevée sur le sur la façon de fusionner dynamiquement un nombre variable de colonnes dans une table Power Query. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Ce scénario traite des exportations de données brutes qui entraînent le débordement des données dans un nombre inconnu de colonnes adjacentes. Lorsque vous regardez l'exemple, vous pouvez voir que la description a débordé dans la colonne 4 et que la description 2 a été répartie sur deux colonnes adjacentes. Mais ce ne sera pas toujours le cas. Au prochain cycle, ce nombre de colonnes pourrait changer.
Avant de passer à la solution, examinons le code M généré par Power Query lorsque vous fusionnez des colonnes.
Table des matières
Code M de la table Power Query
Il existe plusieurs façons de fusionner des colonnes. La première consiste à sélectionner à la fois la colonne de description et à appuyer sur la touche Maj ou la touche de contrôle, puis de sélectionner également la colonne 4. Ensuite, cliquez avec le bouton droit et choisissez Fusionner les colonnes .
Ou, dans l' onglet Transformer , sélectionnez Fusionner les colonnes . Et cette boîte de dialogue apparaîtra, qui vous permet de sélectionner le séparateur.
Dans la boîte de dialogue, choisissez Tab, et vous pouvez entrer un nouveau nom de colonne. Dans ce cas, je l'ai nommé Description.
Dans la barre de formule, nous voyons le code M que cette étape de transformation a créé.
Si la barre de formule n'est pas visible sur votre écran, accédez à l'onglet Affichage et activez-le.
Ainsi, la fonction que Power Query utilise pour fusionner les colonnes est Table.CombinedColumns . Le premier paramètre qu'il prend est une table. Cette table est renvoyée par l'étape précédente de notre code, donc dans les étapes appliquées, vous verrez que cela s'appelle Source .
Ensuite, il a codé en dur les noms de colonne dans une liste. Ici, vous voyez les initialiseurs de liste et, entre les valeurs dans le texte, la description du nom de la colonne et la colonne du nom de la colonne 4. Ensuite, il appelle une autre fonction M pour combiner les valeurs de texte dans ces colonnes.
Et enfin, il passe le nouveau nom de colonne sous forme de texte afin que nous puissions l'ajuster.
Donc, si nous voulons que cette fonction fusionne dynamiquement un nombre variable de colonnes, nous devrons modifier cette deuxième valeur de paramètre qui contient maintenant une liste de noms de colonnes codés en dur.
Fusion d'un nombre variable de colonnes dans une table Power Query
Je reviens à ma requête de données brutes, et si nous examinons de plus près les noms de colonne, nous voyons que chacune des colonnes de déversement est anonyme. Ils n'ont pas de nom propre, mais ils commencent tous par la colonne de texte, suivie d'un nombre. Voyons si nous pouvons l'utiliser. Tout d'abord, je vais créer une référence en cliquant avec le bouton droit ici et en sélectionnant Reference .
Et pour obtenir les noms de colonnes dans la barre de formule, je peux ajouter Table.ColumnNames . Cette fonction renvoie une liste avec tous les noms de colonne de cette table. Transformons cela en table en cliquant sur To Table .
Dans cette boîte de dialogue, cliquez sur OK.
Ensuite, dans l' onglet Ajouter une colonne , je sélectionne Format , puis Trim .
Maintenant, ce n'est pas une transformation que je veux effectuer, mais cela génère la majeure partie du code M pour moi. Tout ce que j'ai à faire est de remplacer cette fonction trim par ma propre logique .
Ainsi, à l'intérieur de la barre de formule, au lieu de Text.Trim , nous pouvons dire if Text.StartsWith , puis le pointer vers notre Column 1 , et je vais le copier immédiatement. Il veut ce texte que nous recherchons, donc ce sera Colonne. Donc, si cela commence par une colonne de texte, nous voulons "null" - pour tout le reste, nous voulons tout ce qui se trouve dans la colonne 1. Nous pouvons également renommer cette colonne, donc à l'intérieur de la barre de formule, au lieu de Trim, appelons-la GroupColumn .
Maintenant, tout ce que nous devons faire est de les remplir à ces valeurs. Je vais donc cliquer avec le bouton droit sur mon en-tête, sélectionner Fill et Down .
Ainsi, la prochaine fois que des données arriveront et que le nombre de colonnes aura changé, ce groupe les récupérera automatiquement.
Renommez cette requête, je l'appellerai groupes de colonnes.
Assurons-nous que son chargement a été désactivé car il ne s'agit que d'une requête de support.
Je peux faire référence à cette requête de support et je la renommerai plus tard. Laissons cela pour l'instant. Donc, si vous vous souvenez, nous avons commencé par fusionner deux colonnes et cela a créé une liste codée en dur avec les noms de colonnes , mais maintenant nous pouvons filtrer sur Description dans notre GroupColumn .
Donc, si nous faisons ce filtre sur la description à l'intérieur de la colonne 1, nous obtenons les colonnes qui répondent à ces critères.
Cependant, il s'agit d'un tableau et non d'une liste. Nous devons extraire tout ce qui reste dans cette première colonne car nous devons inclure ces colonnes dans notre opération de fusion. Donc, pour ce faire, nous pouvons cliquer avec le bouton droit sur notre en-tête de colonne 1 et sélectionner Explorer vers le bas .
Et maintenant, nous obtenons une liste. Donnons donc à cette requête un nom propre ( ListDescr ) et vérifions si elle est désactivée du chargement.
Nous pouvons maintenant revenir à notre requête de résultat et remplacer ce deuxième argument ici par notre liste dynamique. Donc ici, nous pouvons référencer notre ListDescr .
Répétons cela pour la description 2 également. Je vais aller à ma requête ColumnGroups. Je vais créer une autre référence et sélectionner les colonnes dont j'ai besoin. Ensuite, je filtrerai Description 2, qui renverra ces trois colonnes. Je clique avec le bouton droit sur mon en-tête et sélectionne Drill Down et renomme également cette requête ( ListDescr2 ).
Je vais ensuite revenir à ma requête de résultat, sélectionner la colonne Description2 et appuyer sur Maj ou sur Contrôle pour sélectionner également la colonne suivante (colonne2). Je clique avec le bouton droit sur l'en-tête et choisis Fusionner les colonnes .
Dans la fenêtre contextuelle, je choisirai Tab comme séparateur et j'appellerai ceci Description2.
Je vais juste changer le nom de la colonne ici dans la barre de formule. Je modifierai également cette liste codée en dur à partir de la liste que nous venons de créer. Et maintenant, comme vous pouvez le voir, cela a également repris la colonne 8 que nous avions précédemment exclue.
Comment fusionner des requêtes dans LuckyTemplates
Paramètres de requête LuckyTemplates : Optimisation des tables
Tri des colonnes de la table de dates dans LuckyTemplates
Conclusion
Dans ce blog, je vous ai montré comment utiliser les codes M dans Power Query pour fusionner dynamiquement des colonnes. Ce n'est pas difficile tant que vous connaissez le fonctionnement de Power Query et les codes M à utiliser.
J'espère que vous avez apprécié celui-ci. Veuillez consulter les liens ci-dessous pour plus de contenu connexe.
Tous mes vœux!
Mélisse
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