Comment fusionner dynamiquement des colonnes dans une table Power Query

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Dans la barre de formule, nous voyons le code M que cette étape de transformation a créé.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Si la barre de formule n'est pas visible sur votre écran, accédez à l'onglet Affichage et activez-le.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Et enfin, il passe le nouveau nom de colonne sous forme de texte afin que nous puissions l'ajuster.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

Dans cette boîte de dialogue, cliquez sur OK.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Ensuite, dans l' onglet Ajouter une colonne , je sélectionne Format , puis Trim .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

Ainsi, la prochaine fois que des données arriveront et que le nombre de colonnes aura changé, ce groupe les récupérera automatiquement.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Renommez cette requête, je l'appellerai groupes de colonnes.

Comment fusionner dynamiquement des colonnes dans une table Power Query

Assurons-nous que son chargement a été désactivé car il ne s'agit que d'une requête de support.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 .

Comment fusionner dynamiquement des colonnes dans une table Power Query

Dans la fenêtre contextuelle, je choisirai Tab comme séparateur et j'appellerai ceci Description2.

Comment fusionner dynamiquement des colonnes dans une table Power Query

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 dynamiquement des colonnes dans une table Power Query


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


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