web-dev-qa-db-fra.com

Power Query: Comment puis-je concaténer des valeurs groupées?

Si j'ai le tableau suivant (illustré dans l'image ci-dessous), comment puis-je écrire une requête groupée qui concaténerait les résultats groupés?

InputTable

Pour cet exemple, je voudrais regrouper par LetterColumn et concaténer _ NumberColumn

Les résultats souhaités seraient donc:

ResultsTable

14
Giffyguy

Si votre table est Source et si NumberColumn a le type de numéro, alors cela fonctionnera:

= Table.Group(Source, {"LetterColumn"}, {{"Column", each Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ","), type text}})

Table.Group Effectue un regroupement par opération, ce qui crée un tableau composé de toutes les lignes avec la même valeur dans LetterColumn. _[NumberColumn] Donne une liste des valeurs de la colonne NumberColumn de ce nouveau tableau. La partie List.Transform Transforme les nombres en valeurs textuelles et Text.Combine Joint ces nombres ensemble, avec une virgule séparant chaque valeur.

Si vous avez également besoin des citations environnantes, vous pouvez le faire:

= Table.Group(Source, {"LetterColumn"}, {{"Column", each """" & Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ",") & """", type text}})

"""" Représente le caractère "et & combine deux valeurs de texte.

Vous pouvez utiliser l'interface graphique pour le faire de cette façon:

  1. Sélectionnez votre LetterColumn puis Transform/GroupBy: enter image description here

  2. Sélectionnez Ajouter une colonne/Colonne personnalisée: enter image description here

  3. Cliquez sur les flèches opposées en haut à droite de la nouvelle colonne AllData pour extraire les valeurs de la nouvelle colonne AllData:

    enter image description hereenter image description here

  4. Supprimez la colonne AllData.

28
Marc Pincince