Accueil – Le CFO masqué › Forums › Power Query › Regroupement d’etat
- Ce sujet contient 5 réponses, 2 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 3 années et 3 mois.
-
AuteurArticles
-
6 juillet 2021 à 7 h 39 min #92818lefemmapeffa-9970Participant
Bonjour,
Je souhaiterais avoir votre aide concernant un projet sur powerquery.
En effet, j’ai plusieurs lignes OF, qui peuvent avoir le même nom,
mais pas le même état,
je souhaiterais faire ressortir l’état final, ou avec l’état clos, sachant qu’en finalité uniquement les OF clos m’intéresse.Malgrès de longues heures de recherche, je tourne en rond.
exemple
OF—– État—– État final
OF1—– Clos—– Clos
OF2—– Traité—– Traité
OF2—– Clos—– Traité
OF3—– Traité—– Traité – RT
OF3—– RT—– Traité – RT
OF3—– RT—– Traité – RT
OF4—– Clos—– Clos
OF4—– Clos—– ClosMerci d’avance
6 juillet 2021 à 11 h 59 min #92831Stéphane LorinParticipantBonjour
Votre état final est-il le dernier de la table ?
Si oui, ajoutez un index, regroupez les OF en remontant le “maximum” de cet index, puis fusionnez ce regroupement avec votre table initiale sur les champs “OF” + “index”Autre piste en filtrant d’abord les “clos” vu que seuls ces OF vous intéressent, puis inversez les lignes et supprimez les doublons. De cette façon, le dernier OF sera retenu.
Par ailleurs, il ne me semble pas nécessaire de poser une même question sur plusieurs forums simultanément. Commencez par un, en l’absence de réponse au bout d’un jour ou deux, essayez sur un autre. En tout cas, n’oubliez pas de prévenir tous les forums que vous avez votre réponse.
Stéphane
8 juillet 2021 à 8 h 24 min #92865lefemmapeffa-9970ParticipantBonjour,
Merci pour votre réponse,
malheureusement cela ne convient pas.Je vais essayer de mieux m’exprimer,
pour contextualiser,
Chaque ligne représente une commande, avec un OF.
Il y a environ 2000 lignes de commande.
Un OF peut avoir plusieurs commande (il peut donc y avoir plusieurs lignes avec le même OF).Une commande a un état ( traitées, RT, Clos, etc..).
Un OF qui a plusieurs commande peut donc avoir des états différent:
ex:
OF1 -> clos
OF1 -> Traité
etc…j’aimerais pouvoir ressortir les OFs avec les commande close.
Donc les OF à l’état clos et ceux dont tout leurs états soit clos.Les OFs qui ne sont pas clos ne doivent pas apparaitre ainsi que ceux qui ont plusieurs état dont l’un n’est pas clos.
J’ai réussi à le faire sur excel (voir PJ), grâce à la fonction “NB SI ENS”.
Malheureusement, je n’arrive pas à le retranscrire en M sous powerquest.En espérant avoir été plus clair et précis dans mes explications.
Merci d’avance pour l’aide et le temps.
Attachments:
You must be logged in to view attached files.8 juillet 2021 à 8 h 49 min #92867Stéphane LorinParticipantBonjour
Voir une piste dans mon message du 4 avril 2021 à 16 h 33 min en réponse à : regrouper puis étendre en colonnes.
Vous regroupez par OF et vous faites un agrégat sur les statuts.
Evidemment, la somme ne donnera rien vu que c’est du texte, par contre vous pouvez utiliser Text.Combine pour concaténer tous les statuts de chaque OF + List.Distinct pour supprimer les statuts en double.Le code suivant vous permet donc d’obtenir la liste de tous les statuts de vos OF
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Lignes groupées” = Table.Group(Source, {“OF”}, {{“Statut”, each Text.Combine(List.Distinct([statut]),”;”), type nullable text}})
in
#”Lignes groupées”ceux qui sont entièrement clos sont ainsi faciles à identifier
OF Statut
OF02692204 rt;clos
OF02799277 RT;clos
OF02501537 clos
OF02978602 En coursStéphane
8 juillet 2021 à 10 h 11 min #92869lefemmapeffa-9970ParticipantMerci beaucoup,
néanmoins je bloque sur la dernière étape avec le code
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Lignes groupées” = Table.Group(Source, {“OF”}, {{“Statut”, each Text.Combine(List.Distinct([statut]),”;”), type nullable text}})
in
#”Lignes groupées”Je ne vois pas ou le mettre ?
8 juillet 2021 à 11 h 32 min #92870Stéphane LorinParticipantLorsque vous faites le regroupement par “OF” dans Power Query, vous choisissez la nouvelle colonne en indiquant l’opération “Somme” de la colonne “Statut”
Cette somme renvoie une erreur car vous essayez de sommer du texte.
Dans la barre de formule vous visualisez la formule
… each List.Sum([statut])…
que vous remplacez par
… each Text.Combine(List.Distinct([statut]),”;”) …List.Distinct pour supprimer les statuts en double
Text.Combine pour concaténer les statuts sans doublon les uns avec les autres.au final, ceux que vous cherchez sont uniquement “Clos”.
Stéphane
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.