Power query : GroupBy récalcitrant

Bonjour,

J'essaie de trouver une solution à ce post, et dans mes essais, je rencontre un "bug" que je n'avais encore jamais vu.

J'ai élaboré 2 requêtes PQ, une qui ne fonctionne pas nominalement, et l'autre correcte, en modifiant juste l'ordre de tri. Dans le fichier joint, les 2 requêtes.

1ère :
- Je fais un tri croissant des matricules et des dates de début
- J'effectue un regroupement de données comme ceci :

= Table.Group(AjtIdx1, {"Matricule","Nom et prénom", "TEAMS motif", "TEAMS Libellé", "Dates", "Index"}, {{"Tbl", each _}, {"Consec", each List.Min([Dates])}},
        GroupKind.Local,
        (s,c)=> Number.From(c[Index]-s[Index] <> Duration.Days(c[Dates]-s[Dates])))

Et en résultat, il me manque le "Nom Prénom 2"

2ème :
- tri croissant des matricules et décroissant des dates de début
- regroupement comme ceci :

= Table.Group(AjtIdx1, {"Matricule","Nom et prénom", "TEAMS motif", "TEAMS Libellé", "Dates", "Index"}, {{"Tbl", each _}, {"Consec", each List.Min([Dates])}},
        GroupKind.Local,
        (s,c)=> Number.From(c[Index]-s[Index] <> Duration.Days(s[Dates]-c[Dates])))

(voir les paramètres dans Duration.Days(s ou c)

le résultat "semble correct", mais il se pourrait que certaines situations posent également des problèmes...

Si quelqu'un pouvait m'expliquer le pourquoi du comment....

Bonne journée, et merci par avance

Re-,

En cherchant un peu, j'ai trouvé ceci :

= Table.Group(AjtIdx1, {"Matricule","Nom et prénom", "TEAMS motif", "TEAMS Libellé", "Dates", "Index"}, {{"Tbl", each _}, {"Consec", each List.Min([Dates])}},
        GroupKind.Local,
        (s,c)=> Number.From(c[Index]-s[Index] <> Duration.Days(c[Dates]-s[Dates]) or c[Matricule]<>s[Matricule]))

Je pense que ça doit le faire

Merci pour vos recherches

Hey,

Pour moi il y a peut être un problème avec le GroupKindLocal.

Il faut faire attention avec l'index car dans ton message initial la date dans le champ Dates pour le NomPrénom2 est le jour d'après la dernière date de NomPrénom1

Avec ça ça fonctionnera mieux :

        (s,c)=> Number.From(c[Index]-s[Index] <> Duration.Days(c[Dates]-s[Dates]) or c[#"Nom et prénom"]<> s[#"Nom et prénom"]))

@+

Edit : je n'avais pas regardé ton dernier message c'est exactement ce que tu as fait

Problème résolu du coup ;)

Hello,

Merci pour ton retour, mais effectivement, j'avais trouvé une solution.

Je trouve tout de même étrange que le regroupement ne prenne pas toutes les données des colonnes faisant l'objet de ce regroupement.

Merci encore, et bonne apm

Hey,

C'est parce qu'en fonction des données ça peut être plus ou moins propre. Dans ton cas c'est propre mais certaines bases sont vraiment moisies

@+

Rechercher des sujets similaires à "power query groupby recalcitrant"