Marquer comme table de dates

Avec DAX, créer une table de dates dans Power BI

Dans notre scénario, nous souhaitons analyser les indicateurs classiques liés aux ventes, comme le chiffre d’affaires, la marge, etc. De plus, nous souhaitons aussi analyser le comportement des clients lors des opérations d’achats.

Pour ce faire, dans cet exercice, vous allez créer 3 tables :

  • Calendrier : c’est la table de dates. Il s’agit d’une table de dimensions. Elle servira aux analyses temporelles.
  • Clients : bien que la table Clients soit une table de dimension, elle servira de support à des analyses du comportement des clients.
  • Transactions : c’est la table de fait qui correspond aux transactions de ventes. Une table de faits contient les données qui sont généralement analysées.

Par ailleurs, dans la table Ventes, il manque volontairement une colonne importante : le produit du nombre de ventes par le prix unitaire HT pour chacune des ventes (= chaque ligne). Cette colonne sera ajoutée à la table des transactions lors de sa création.

Cet article fait partie d’une série de tutoriels sur Power BI :

  1. Créer le rapport Power BI Desktop
  2. Créer les tables de dimensions avec Power BI
  3. Créer les tables de date et de faits pour les analyses
  4. Générer les relations entre les tables

Manipulations

Créer un fichier Power BI à partir d’un fichier existant

Ouvrir le fichier PBI_Lab24.pbix et l’enregistrer sous le nom PBI_Lab26.pbix.

Création de la table Calendrier

C’est la table de dates. Une table de dates est une table de dimensions.

À partir du fichier Script_Calendrier_BIG.txt, créer une table de dates qui se nommera Calendrier.

Puis marquer le champ Date comme date.

Formater la colonne Date en date courte.

Enfin, trier la colonne JourNom sur JourNumero. Cela signifie que Power BI triera la colonne JourNom en se basant sur les valeurs de JourNumero. Cela permet d’avoir une présentation classique des valeurs de la colonne lors du tri : lundi, mardi, etc.

Pour vous aider, regarder la copie d’écran ci-dessous du résultat attendu.

Table Calendrier (extrait)
Table Calendrier (extrait)
Solution

Pour l’instant, télécharger puis copier simplement le contenu du fichier Script_Calendrier_BIG.txt avec un Ctrl+A (pour tout sélectionner) puis un Ctrl+C (pour copier).

Explication du script
CALENDARAUTO() calcule automatiquement une plage de dates en fonction des données du modèle.
Elle renvoie une table avec une seule colonne nommée Date, qui contient un ensemble de dates contigu.
La fonction ADDCOLUMNS() créée les nouvelles colonnes (Mois, MoisNumero, etc.) en exécutant la formule qui définit la colonne.
Cette définition utilise la colonne Date.
Par exemple, la colonne MoisNumero est définie par MONTH([Date]).
Les autres fonctions (LEN, FORMAT, etc.) sont classiques et habituelles.

Dans la vue Données, ouvrir le ruban Outils de table et cliquer sur Nouvelle table.

Coller le contenu du fichier à la place de :

Table =

Appuyer sur la touche entrée du clavier.

Dans le ruban, cliquer sur Marquer comme table de dates : un pop-up s’ouvre.

Pour vous aider, regarder la copie d’écran ci-dessous.

Marquer comme table de dates
Marquer comme table de dates

Dans le pop-up, cliquer sur Sélectionner une colonne dans la liste déroulante Colonne de date.

Ensuite, cliquer sur le choix Date, puis cliquer sur le bouton OK.

Puis, cliquer sur la colonne Date, puis dans le ruban Outils de colonne, cliquer sur *14/03/2001 (Short Date) dans le menu déroulant de Format.

Pour trier le champ JourNom sur JourNumero, cliquer sur JourNom puis dans Outils de colonne, cliquer sur Trier par colonne et sélectionner la proposition JourNumero.

Fin de la solution.

Création de la table Clients

Créer une nouvelle table qui se nommera Clients. Il s’agit d’une table de dimension.

La table Clients possèdera les colonnes suivantes :

  • ClientID
  • Client
  • ClientStatut
  • ClientDate
  • ClienteleCode
  • Ville

Pour ce faire, utiliser la fonction GROUPBY et formater la colonne ClientDate en *14/03/2001 (Short Date)

Pour vous aider, regarder la copie d’écran ci-dessous du résultat attendu.

Table Clients (extrait)
Table Clients (extrait)
Solution

Dans la vue Données, ouvrir le ruban Outils de table et cliquer sur Nouvelle table.

Ensuite, remplacer Table = par la formule suivante :

Clients = GROUPBY(Ventes, Ventes[ClientID], Ventes[Client], Ventes[ClientStatut], Ventes[ClientDate], Ventes[ClienteleCode], Ventes[Ville])

Puis, cliquer sur la colonne ClientDate, puis dans le ruban Outils de colonne, cliquer sur *14/03/2001 (Short Date) dans le menu déroulant de Format.

Pour vous aider, regarder la copie d’écran ci-dessous.

Formatage en Short Date
Formatage en Short Date

Fin de la solution.

Ajouter un visuel de type Table

Vous allez ajouter un visuel de type Table.

Pour ce faire, cliquer sur une partie vierge quelconque de la page Clients.

Ensuite, ajouter un objet visuel de type Table.

Puis, afficher les valeurs du champ Client de la table Clients.

Enfin, dans la partie Format, cliquer sur :

  • Général
    • Position X : 0
    • Position Y : 110
    • Largeur : 210
    • Hauteur : 590

Pour vous aider, regarder la copie d’écran ci-dessous.

Table des Clients (extrait) positionnée
Table des Clients (extrait) positionnée

Création de la table Transactions

Créer une nouvelle table qui se nommera Transactions.

La table Transactions possèdera les colonnes suivantes :

  • ArticleID
  • ClientID
  • CanalID
  • RemiseCode
  • VenteDate
  • VentesMontant = SUM(Ventes[VenteNombre])*SUM(Ventes[PUHT])
  • VentesNombres = SUM(Ventes[VenteNombre]

Ne pas résumer les colonnes VentesMontant et VentesNombres.

Formater la colonne VenteDate en date courte et la colonne VentesMontant en euros.

Utiliser la fonction SUMMARIZECOLUMNS.

Pour vous aider, regarder la copie d’écran ci-dessous.

Table des Transactions (extrait)
Table des Transactions (extrait)
Solution

Dans la vue Données, ouvrir le ruban Outils de table et cliquer sur Nouvelle table.

Copier-coller entièrement la formule ci-dessous. Faire en sorte que la formule copiée tienne sur une seule ligne.

Remplacer Table = par la formule suivante :

Transactions = SUMMARIZECOLUMNS(Ventes[ArticleID],Ventes[ClientID],Ventes[CanalID],Ventes[RemiseCode],Ventes[VenteDate],"VentesMontant",SUM(Ventes[VenteNombre]) * SUM(Ventes[PUHT]),"VentesNombres",SUM(Ventes[VenteNombre]))

Pour formater les colonnes :

Cliquer sur la colonne VenteDate, puis dans le ruban Outils de colonne, cliquer sur *14/03/2001 (Short Date) dans le menu déroulant de Format.

Ensuite, cliquer sur la colonne VentesMontant, puis dans le ruban Outils de colonne, cliquer sur € Euro (123 €) dans le menu déroulant de $.

Puis, cliquer aussi sur la liste déroulante de ∑.Somme puis cliquer sur Ne pas résumer.

Enfin, cliquer sur la colonne VentesNombres.

Dans le ruban Outils de colonne, cliquer sur la liste déroulante de ∑.Somme puis cliquer sur Ne pas résumer.

Fin de la solution.

Enregistrer son travail

Enregistrer le fichier PBI_Lab26.pbix.

Résumé

Vous avez pu manipuler la fonction CALENDARAUTO(). Celle-ci calcule automatiquement une plage de dates en fonction des données du modèle. Elle renvoie une table avec une seule colonne nommée Date, qui contient un ensemble de dates contigu.

En plus, vous avez découvert la fonction ADDCOLUMNS(). Celle-ci ajoute de nouvelles colonnes. Avec cette fonction, chaque colonne est définie par la formule qui la suit.

Par ailleurs, vous avez aussi découvert la notion de table de dates. Une table de dates permet de faire des comparaisons de date à date, sans avoir de ‘trou’.

Enfin, vous avez utilisé la fonction SUMMARIZECOLUMNS() pour créer la table des faits. La fonction SUMMARIZECOLUMNS() est proche de la fonction GROUPBY(), précédemment utilisée. Toutefois, elle est plus puissante car elle permet d’introduire des formules de calcul lors la création de colonnes.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *