Accueil – Le CFO masqué › Forums › Power Query › Comment faire un cumul conditionnel des données directement dans Power Query ?
Étiqueté : cumul conditionnel Power Query
- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par
BagTote, le il y a 5 années et 7 mois.
-
AuteurMessages
-
7 septembre 2019 à 3 h 07 min #57817
BagTote
ParticipantBonjour à tous,
J’aimerais savoir si il est possible de faire un cumul “conditionnel” des données directement dans Power Query.
Exemple de tableau :
Cf PJ
La colonne en question : CA cumulé par produit.
Merci.
Cordialement.Attachments:
You must be logged in to view attached files.7 septembre 2019 à 11 h 33 min #57820BagTote
ParticipantJ’ai trouvé :
Etape 1 – créer une fonction de filtrage (nommé la fonction “fnFiltreCumul”):
(TableAFiltrer as table, Annee as number, Mois as number) as table =>
let
Resultat = Table.SelectRows(TableAFiltrer, each ([Year] = Annee) and ([Month] <= Mois))
in
ResultatEtape 2 – Dans la requête, ajouter une colonne personnalisée :
= fnFiltreCumul(“Etape précédente”,[Year],[Month])8 septembre 2019 à 5 h 40 min #57821BagTote
ParticipantPar contre, c’est super lent.
8 septembre 2019 à 9 h 36 min #57824Sophie Marchand
ParticipantBonjour,
C’est normal que ce soit lent car c’est une fonction itérative (opérée ligne par ligne).
Si vous créez cette colonne dans Power Query, ce sera lent à la mise à jour du fichier mais par contre, une fois chargée, les visualisations basées sur cette colonne devraient être rapides.
Vous pourriez aussi créer une mesure en DAX avec une fonctin SUMX. Ce serait plus rapide à la mise à jour du fichier (puisque les mesures se recalculent uniquement lorsqu’elles sont utilisées) mais ça pourrait être plus lent quand l’usager fait une opération sur cette mesure (par exemple, clique sur un filtre qui filtre une visualisation utilisant la mesure).
Au plaisir,
Sophie
14 septembre 2019 à 11 h 08 min #57979BagTote
ParticipantBonjour Sophie,
Merci pour le conseil. Je pense que je vais utiliser votre solution.
Je suis vraiment déçu par power query. Je pensais que c’était puissant.
Cordialement.
14 septembre 2019 à 16 h 27 min #57980Stéphane Lorin
ParticipantBonjour
Il ne faut pas être déçu par Power Query, c’est vraiment super puissant.
Vous trouverez en exemple une liste de 100 produits avec 10 mois d’historique de CA soit 1000 lignes et en une fraction de seconde vous obtenez le CA cumulé en utilisant des fonctionnalités de bases de Power Query: une fusion, un filtre, un regroupement.Je fusionne la table avec elle-même sur le champ [Produit] et je développe les champs [Mois] et [CA] j’ai donc : [Produit], [Mois], [CA], [Mois.1] et [CA.1] avec chaque mois dupliqué soit 10 000 lignes car il y a 100 produits x 10 mois x 10 mois.
je filtre pour conserver uniquement les [Mois.1] <= [Mois] (votre condition)
enfin je regroupe sur les champs [Produit], [Mois] et [CA] pour retrouver mes 1000 lignes initiales en sommant le champ [CA.1] pour avoir le CA cumuléJe contrôle que j’obtiens bien le même résultat qu’avec une fonction SOMME.SI.ENS.
Stéphane
Attachments:
You must be logged in to view attached files.14 septembre 2019 à 18 h 04 min #57982BagTote
ParticipantT’es un génie !!! Fallait y penser.
Merci beaucoup Stéphane.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.