Microsoft 365 Powerquery_Regrouper des données dans une cellule

WTF

XLDnaute Impliqué
Bonjour le forum.
J'ai besoin de votre aide pour la construction d'un organigramme.
A partir de l'outil Visio, je veux automatiser la création d'organigramme et pour cela j'ai besoin d'avoir une base de données dans un certain format (partie de droite du fichier excel) qui ne correspond par à mon format initial (partie de gauche).

En gros je souhaiterais à partir de Powerquery regrouper dans une même cellule avec un séparateur virgule "," les responsable (si un employé en a plusieurs - ce qui peut être le cas, mais pas systématiquement).

Merci pour votre aide.

PS : les données du fichier sont purement fictives. Aucun pb de ce coté.
 

Pièces jointes

  • Organigrame.xlsx
    13.1 KB · Affichages: 5

WTF

XLDnaute Impliqué
Bonjour @Amilo
Un grand merci pour ta réponse. C'est parfait.
Seul pb c'est que je n'arrive pas à la reproduire sur mon fichier.
Je me mets sur le masque regrouper, mais je ne parviens pas à faire ta manip.

1654674243441.png
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,


Je pense qu' @Amilo ne m'en voudra pas de répondre à sa place.

L'interface utilisateur ne permet pas toutes les subtilités de power query.

Validez votre formulaire de saisie tel que sur votre image. Pour créer votre étape de regroupement.

Si vous regardez ensuite la barre de formule de l'éditeur power query vous aurez à l'intérieur cette formule :
= Table.Group(#"Type modifié", {"ID employé", "Nom", "Titre", "Type de rôle"}, {{"Nombre", each Table.RowCount(_), Int64.Type}})
(Vous pouvez étendre vers le bas, votre barre de formule, comme dans excel, pour voir toute la ligne.)

Remplacez :
{{"Nombre", each Table.RowCount(_), Int64.Type}}
Par
{{"ID Responsable", each Text.Combine([ID responsable],","), type nullable text}}
Text.Combine est une fonction M permettant de concaténer une liste de textes avec un séparateur éventuel. Ici tous les élements de la colonne ID Responsabe seront concaténés dans une même chaîne de caractères, séparés par une virgule.


pour avoir au final :
= Table.Group(#"Lignes groupées1", {"ID employé", "Nom", "Titre", "Type de rôle"}, {{"ID Responsable", each Text.Combine([ID responsable],","), type nullable text}})

Si votre table est la même que dans l'exemple, vous pouvez aussi copier la requête du classeur d' @Amilo (clic-droit dans la liste des requêtes) et la coller dans le panneau des requêtes du classeur (Données/ Requêtes et connexions) ou le panneau gauche de l'éditeur de requête. C'est plus facile, mais vous apprendrez moins.

Cordialement
 

WTF

XLDnaute Impliqué
Merci à tous les 2 pour votre aide.
En effet, j'ai encore du chemin à parcourir sur Powerquery pour aller au dela des masques proposés.
Je ne peux pas marquer vos 2 reponses comme étant la solution.
 

Amilo

XLDnaute Accro
Bonjour @WTF , Hasco , le forum,

@Hasco, pas de souci pour votre réponse :), d'autant que vos explications sont très claires et précises. Cela a bien aidé WTF et merci

Sinon, voici la méthode quasi similaire que j'ai utilisée avec des explications en image pour ceux que cela intéresse.

Cordialement
 

Pièces jointes

  • WTF_Regrouper.jpg
    WTF_Regrouper.jpg
    272.5 KB · Affichages: 45

Discussions similaires

Statistiques des forums

Discussions
314 862
Messages
2 113 631
Membres
111 926
dernier inscrit
vec440