Cumul Progressif Power Query List.Generate

Bonsoir à tous,

Sur la base d'une proposition de @JFL sur un sujet précédent, je souhaiterai utiliser à partir du tableau TEST, obtenir par Power Query et la fonction List.Generate, un cumul progressif,

Merci d'avance pour votre aide,

Cordialement,

12test-cumul.xlsx (19.71 Ko)

Bonsoir à tous !

La remise à zéro du compteur s'effectue sur le changement du champ "Raison1" ou sur le changement d'année du champ "Date" ?

Bonsoir JFL,

La remise à zéro s'effectue sur la combinaison des deux champs, en espérant que c'est clair comme précision ?,

Merci d'avance pour votre aide,

Cordialement,

Bonsoir à tous de nouveau !

Par "combinaison", faut-il entendre "ET" ou "OU" ?

Bonsoir à tous de nouveau !

Par "combinaison", faut-il entendre "ET" ou "OU" ?

Bonsoir Jfl, il faut entendre "ET",

En sachant que la date sera toujours de la forme "01/MM/AAAA", et comprit entre deux années du 01/01/N au 01/12/N+1,

Merci d'avance,

Cordialement,

Bonjour à tous !

Une proposition qui retourne le cumul "Quantité_Arrêt" pour la séquence commune "Raison1" & année(Date). Si l'une des conditions est modifiée, le cumul reprend à zéro.

Faut-il supprimer, dans le tableau retourné, le champ "Quantité_Arrêt" comme le laisse entendre votre résultat attendu ?

Les cellules jaunes du classeur représentent des valeurs modifiées pour tester la rupture du cumul.

Bonjour Jfl,

Merci beaucoup pour votre proposition, qui est parfaite !

Oui pourriez vous me dire ce qu'il faudrait modifier pour ne pas conserver le champ "Quantité_Arrêt"?,

Merci d'avance,

Cordialement,

Bonjour à tous de nouveau !

Je vous propose de modifier comme suit la fin de la requête :

    Final = Table.FromColumns (List.RemoveLastN(Table.ToColumns(Tri)) & {Cumul},  List.RemoveLastN(Table.ColumnNames(Source)) & {"Cumul"}),
    Types = Table.TransformColumnTypes(Final,{{"Raison1", type text}, {"Date", type date},  {"Cumul", Int64.Type}})
in
    Types

Bonjour @JFL,

Merci beaucoup pour votre retour, je n'aurai pas eu le reflexe d'utiliser List.RemoveLastN alors que c'était pour le coup carrément sa place pour la demande,

Suite à une analyse plus poussée de mon fichier de travail source, la structure de mes données ont légèrement changés ...

En fait j'aurai une colonne quantité et une colonne perte, j'ai donc pivoté les données afin d'utiliser qu'une seule fois la fonction List.Generate,

Je rejoins donc un fichier afin que ce soir plus clair,

Désolé encore pour cette nouvelle demande, mais votre réponse initiale pourra servir sur un autre sujet,

Cordialement,

Bonsoir à tous !

Version 2 :

La solution passe par un tri adapté.

Bonsoir @JFL,

Effectivement, le code ne semble pas beaucoup évoluer saut sur la partie List.Generate, Le tri a donc une énorme importance comme vous l'avez si bien préciser, je vais cependant me pencher sur cette fonction que je trouve compliqué.

Mais vous la maitriser parfaitement !!!

Merci beaucoup pour le partage de votre savoir,

Cordialement,

Bonsoir à tous de nouveau !

....... je vais cependant me pencher sur cette fonction que je trouve compliqué.

"Hâtez-vous lentement, et sans perdre courage,
Vingt fois sur le métier remettez votre ouvrage,
Polissez-le sans cesse, et le repolissez,
Ajoutez quelquefois, et souvent effacez
".
(Nicolas Boileau)

Je vous remercie de ce retour.

Bonsoir à tous de nouveau !

....... je vais cependant me pencher sur cette fonction que je trouve compliqué.

"Hâtez-vous lentement, et sans perdre courage,
Vingt fois sur le métier remettez votre ouvrage,
Polissez-le sans cesse, et le repolissez,
Ajoutez quelquefois, et souvent effacez
".
(Nicolas Boileau)

Je vous remercie de ce retour.

Hi,

On va bien se hâter, ce soir, j'espère....

GO

PS, désolé massari pour cette incrust', mais, ce soir, c'est spécial (obligé de supporter le club qui a éliminé mon club en Champions League)

Bonsoir à tous de nouveau !

Hi,

On va bien se hâter, ce soir, j'espère....

GO

"Gérer les émotions....."

Bonsoir a tous,

Vos deux dernières interventions sont très éloignées l'une de l'autre 😉

Jfl en plus d'être le spécialiste de PQ vous citez un homme de lettre du XVII siècle !!! Je m'incline mais je vais m'inspirer de ces vers pour mieux comprendre List.Generate.

Pas de soucis cousinhub, en espérant que vous supportez la bonne équipe 😉

Bonne soirée à vous et vive l'OM 🤣

Bonjour à tous,

Je reviens sur le sujet, car je souhaiterais conserver la même approche avec List.Generate mais cette fois ci pour déterminer un mensuel,

Je n'y suis pas arrivé, j'ai un message d'erreur,

Vous trouverez ci-joint mon fichier test,

Merci d'avance,

Bonjour à tous !

La présentation du résultat attendu (notamment l'ordre des lignes qui semble correspondre au tableau source) est une contrainte forte ?

Une présentation sur la base libellé (décroissant), Raison1 (croissant), Date (croissant) est-elle envisageable ?

Bonjour Jfl,

Non la présentation importe peu, la requête servira pour un futur TCD,

Une présentation sur la base libellé (décroissant), Raison1 (croissant), Date (croissant) est donc envisageable,

Merci d'avance pour votre aide,

Cordialement,

Bonjour à tous de nouveau !

Une version 3 pour la valeur mensuelle (via List.Generate) :

Bonjour Jfl,

Je vous remercie de nouveau pour votre proposition, que je vais adapter à mon fichier de travail,

NB : la vélocité de la fonction List.Generate est incroyable !!!

Bonne journée à vous,

Cordialement,

Rechercher des sujets similaires à "cumul progressif power query list generate"