Regroupement d’etat

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 semaines et 4 jours.
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #92818
    lefemmapeffa-9970
    Participant

    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—– Clos

    Merci d’avance

    #92831
    Stéphane Lorin
    Participant

    Bonjour
    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

    #92865
    lefemmapeffa-9970
    Participant

    Bonjour,

    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.
    #92867
    Stéphane Lorin
    Participant

    Bonjour

    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 cours

    Stéphane

    #92869
    lefemmapeffa-9970
    Participant

    Merci 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 ?

    #92870
    Stéphane Lorin
    Participant

    Lorsque 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

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.