Contact: 514-605-7112 / info@lecfomasque.com

Power Query: Convertir des montants cumulatifs en montants mensuels

Publié le : 26 janvier 2017

Il y a quelques jours, François a posé la question suivante sur notre forum.

Question forum François

 

Plutôt que d’utiliser le DAX, je lui ai recommandé d’utiliser Power Query. L’article qui suit vise à montrer comment convertir des montants cumulatifs en montant mensuels aisément avec Power Query.

 

Données initiales

Imaginons une base de données qui fournit des données de ventes cumulatives, par mois et par produit,comme l’extrait ci-dessous.

Données initiales Power Query

 

Importation de la table dans Power Query

Dans un premier temps, j’ai simplement importé la table dans Power Query. Ici, j’ai également renommé la colonne Montant, Montant cumulatif.

Ventes cumulatives Power Query

 

Création d’une deuxième requête qui réfère à la première

Ensuite, j’ai cliqué sur le bouton droit de ma souris sur cette première requête et j’ai choisi l’option « Reference » pour créer une deuxième requête, qui ne fait que ramener les résultats de la première.

Reference Power Query

 

Ajout d’une colonne personnalisée

Dans cette deuxième requête, j’ai ajouté une colonne personnalisée qui ne fait qu’additionner 1 à la colonne mois. Ainsi, vis-à-vis le mois 1, on va retrouver un 2 et vis-à-vis le mois 2, on va retrouver un 3, et ainsi de suite.

Power Query Étape intermédiaire

 

Fusion des deux requêtes

Pour créer la dernière requête, j’ai utilisé l’option « Merge Queries as New » (Fusionner des requêtes comme une nouvelle requête).

Merge queries as new

 

J’ai fusionné côte-à-côte mes deux première requêtes, en faisant correspondre les colonnes « Produit » de chaque requête et la colonne « Mois » de la première requête avec la colonne « Custom » de la deuxième requête, i.e. la colonne personnalisée calculée au point précédent.

Fusion de requête Power Query

 

Extraction du montant du mois précédent

J’ai ensuite extrait la colonne montant de cette nouvelle colonne fusionnée.

Power Query Fusion

 

J’ai donc obtenu la table suivante:

PowerQuery résultat intermédiaire

 

Ajout d’une colonne personnalisée

Afin d’obtenir les montants mensuels, j’ai simplement ajouté une colonne personnalisée, qui fait la différence entre le montant cumulatif et le montant cumulatif du mois précédent.

Colonne personnalisée Power Query

 

Conversion des null

Ce faisant, j’ai obtenu les montants mensuels pour toutes les lignes de ma table, sauf pour les lignes de données où il n’y avait pas de montant au mois précédent. Pour ces lignes de données, j’ai obtenu des valeurs null.

Power Query étape intermédiaire 2

 

J’ai donc ajouté une colonne conditionnelle pour remplacer les null par les montants cumulatifs initiaux (puisque le premier montant cumulatif de chaque item est aussi équivalent au montant mensuel de cet item).

Colonne conditionelle Power Query

 

Obtention des montants cumulatifs et mensuels

Au final, j’ai obtenu une table de données avec les mois, les produits et les montants cumulatifs et mensuels pour chacune des combinaisons.

Power Query résultat final

 


NOTRE OFFRE DE FORMATIONS


Microsoft Most Valuable Professional

Le CFO masqué vous offre un vaste choix de formations Excel et Power BI, réparties dans 8 catégories: Excel – Tableaux de bord, Excel – Modélisation financière, Excel – VBA, Excel – Power Tools, Excel – Ninja, Power BI, Finance corporative et Compléments avancés. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et ils sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel.

 

Découvrez quelles formations vous conviennent

Pour info: 514-605-7112 ou info@lecfomasque.com

 

Sophie Marchand

Sophie Marchand, M.Sc., CPA, CGA, MVP, est détentrice d’une M.Sc. en finance corporative et d’un titre comptable CPA, CGA. Elle est également MVP Office Apps and Services (Excel) et MVP Data Platform (Power BI). Le titre de MVP est un titre honorifique remis par Microsoft et signifie « Most Valuable Professional ». Il est attribué à des experts de solutions Microsoft qui se distinguent non seulement par leurs compétences mais également par leur implication dans la communauté. Seuls 4 professionnels possèdent cette double-qualification dans le monde. Mme Marchand cumule de nombreuses années d’expérience dans le milieu des affaires et se spécialise en modélisation financière et en intelligence d’affaires avec Excel et Power BI. Après avoir longtemps offert ses services comme consultante, elle se consacre désormais à la formation, sous toutes ses formes (formations en classe, formations en ligne, formations en entreprise, webinaires, animation de groupe d'usagers, rédaction d'articles de blogue, animation de forum en ligne et plus encore). Vous pouvez d'ailleurs la retrouver à la tête du groupe d'usagers Montreal Modern Excel and Power BI.

  • réponse Pierre ,

    Merci beaucoup pour cet élément de réponse. C’est très utile surtout dans le domaine financier ou l’on raisonne surtout en YTD et donc le mensuel s’effectue par différence.

    • réponse Quentin ,

      Bonjour, merci beaucoup pour ce tuto qui permet de faire beaucoup de chose. Je rencontre une problématique lorsque que j’adapte cette méthode à mon domaine d’activité : la logistique d’approvisionnement. Je cherche à faire des projections de rupture.
      Je simplifie ma data base :
      Article : A
      Client : B
      Fournisseur : C
      Année : 2019
      Semaine : 10
      Rupture à J : 0
      Rupture à S+1 : 1

      J’ai donc utilisé votre méthode pour faire la projection. J’ajoute +1 à la semaine. Le problème est que pour la semaine 11, l’article A du fournisseur C pour le client B n’est pas en rupture (ni à J, ni à S+1). Je n’ai donc pas la ligne :
      Article : A
      Client : B
      Fournisseur : D
      Année : 2019
      Semaine : 11

      Le résultat est que lorsque je fusionne les requêtes comme nouvelle, je perds une partie des données. La data de la projection S+1 de la semaine 10 n’est pas rattaché à la semaine 11 lors du développement de la table, puisque la semaine 11 n’existe pas.

      Avez-vous une solution qui permet d’ajouter les semaines manquantes lors du développement de la table ou bien un conseil permettant d’attaquer ce sujet sous un autre angle ?

      • réponse CompteAdminCFO ,

        Bonjour,

        Pourriez-vous svp poser votre question sur notre forum et y insérer votre fichier? Présentement je n’arrive pas à comprendre votre question. Je crois que la réponse se trouve probablement dans le fait que vous ne normalisez pas vos données mais je ne suis pas certaine. En insérant votre fichier sur le forum, je pourrai le consulter et vous fournir la réponse directement dans votre fichier.

        Merci.

        Sophie

      Laisser un commentaire