Power Bi




Le  modèle de table paramètre est utile pour segmenter des données, ou pour injecter des paramètres dans des mesures. L’astuce va consister à créer une table déconnectée des autres tables du modèle. Cette table permettra d’offrir une liste de choix permettant d’altérer les calculs des mesures. Par exemple cette table pourra proposer à l’utilisateur un choix parmi différents taux d’inflation.   Modèle de base Supposons que nous souhaitions faire varier les valeurs prévues d’un budget en fonction d’un taux d’inflation prévisionnel. Après avoir importé votre table budget, il vous faudra créer une table Taux d’inflation, déconnectée. Nous allons devoir capter la valeur sélectionnée par l’utilisateur pour l’intégrer en tant que paramètre de notre mesure [CA prévu avec inflation]. Pour ce faire, nous allons utiliser la fonction SELECTEDVALUE() dans une mesure [Taux], qui permettra de récupérer la valeur sélectionnée par l’utilisateur. Cette valeur doit être unique (si l’utilisateur sélectionne plusieurs taux, la mesure retournera (Vide).   Maintenant que nous savons récupérer la sélection, nous allons pouvoir créer notre mesure [CA prévu avec inflation]. Cas d’usage Comme nous venons de le voir, ce modèle permet d’injecter autant de paramètres que nécessaire dans une ou plusieurs mesures, ce qui permet de créer de véritables algorithmes […]

DAX-Modèles Table paramètre



Le modèle de total cumulé permet de réaliser des sommes à date, particulièrement utiles en gestion. Par exemple, ce modèle pourra être utilisé pour créer une mesure de solde cumulé dans un grand livre, ou un stock à date.   Modèle simple Pour commencer nous allons utiliser un modèle très simple, contenant deux tables jointes par la colonne date : Une table de dates (Calendrier) Une table des mouvements de stocks (Mouvements)   Si maintenant nous créons un rapport comprenant la date et la somme des mouvements, nous obtenons ceci : Dans chaque ligne, la somme des mouvements est limitée à la journée, puisque le champs date agit comme filtre de chaque ligne du rapport. Pour obtenir un total cumulé, nous devons éliminer ce filtre pour le remplacer par: Date de début = Aucune; Date de fin = Date maximale de la ligne en cours. Par exemple ici : La date minimale sera la première date de la table Calendrier; La date maximale sera le 04/01/2019. La mesure adaptée est la suivante : La fonction Filter() permet de modifier le filtre du rapport : Le premier argument est une table (la fonction All() permet de supprimer des filtres existant); Le […]

DAX-Modèles Total cumulé



J’ai récemment été sollicité pour construire un modèle de données permettant de réaliser des analyses sur des cours de bourse. La principale difficulté a consisté à générer les URL spécifiques permettant de récupérer les bonnes valeurs (cours de bourse d’un titre spécifique entre deux dates). Lorsque vous sélectionnez un titre sur Yahoo finance, vous pouvez trouver un lien de téléchargement des donnée (un fichier CSV.) C’est l’URL du lien de téléchargement qui va nous falloir étudier dans le détail : https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1556291578&period2=1587913978&interval=1d&events=history On observant bien on peut identifier trois variables : Le code du titre : AAPL; La date de début des cotations : 1556291578; La date de fin de cotations : 1587913978; Ces deux dates sont au format timestamp, elles sont exprimées en secondes écoulées depuis le premier janvier 1970. Nous allons donc devoir créer une formule permettant de convertir une date en timestamp dans power Query. Ci dessous un exemple pour la date du 01/02/2020 Number.From ( DateTime.From ( #datetime(2020, 1, 2, 0, 0, 0) ) – #duration ( 25569,0,0,0 ) ) * 86400 Création des requêtes dans power query Tout d’abord nous allons créer une requête web : Puis coller l’Url présentée précédemment : Tout d’abord il faut […]

Récupérer les cours de bourse sur Yahoo finance



La plupart des modèles de données contiennent plusieurs tables en relation les unes avec les autres.   Nous allons étudier l’impact de ces relations sur les deux contextes.   Contexte de ligne et relations.   C’est le plus simple à comprendre : il n’y a pas d’interactions.   Supposons une table des Ventes en relation avec une table Articles.   Si l’on crée une colonne visant à calculer la différence entre le prix  unitaire réellement appliqué et le prix de vente standard, prévu dans la table articles :   Différence= Ventes[PU Vente]-Articles[PU Vente]   Retournera une erreur.   En effet, la colonne calculée crée une itération sur la table Ventes et elle seule !   Pour accéder à la valeur en relation dans la table Articles il faudra utiliser la fonction RELATED.   Différence= Ventes[PU Vente]-RELATED(Articles[PU Vente])   Dans le sens inverse (colonne calculée dans la table Articles), il faudra utiliser RELATEDTABLE imbriquée dans une fonction d’aggrégation :   AVERAGE(RELATEDTABLE(Ventes[PU Vente]))   Ce mécanisme fonctionne, quel que soit le nombre de niveaux de la relation (Par exemple Famille->Sous-Famille->Articles->Ventes), sous réserve que les relations soient du même type et de même direction.   Par exemple, dans le cas ci-dessous, il n’est […]

DAX Contexte d’évaluation (Partie 2)



3
Toute mesure est évaluée dans un contexte.   Le contexte, c’est-à-dire l’ensemble des filtres du rapport (lignes et colonnes d’un TCD, slicers..) pour le contexte de filtres, ou la ligne de la table, pour un contexte de ligne , détermine l’environnement dans lequel s’applique la formule de calcul.   Un élément clé à retenir : « Il y a toujours deux contextes qui coexistent : Le contexte de filtres et le contexte de ligne. »   Contexte de filtre. Prenons une mesure simple comme : Sum(Ventes[Total Ventes HT]) Elle retourne la somme des quantités de toute la table Ventes, en l’absence de filtres:   Elle retourne une valeur différente si l’on ajoute un filtre sur l’année dans le rapport :     Comment cela se produit-il ?   Il faut considérer chaque cellule : Pour déterminer sa valeur, la table Ventes est filtrée comme dans un tableur Excel, pour ne retenir que les lignes concernant l’année 2017 (première ligne du rapport.) Ensuite, l’expression s’applique sur les valeurs contenues dans la colonne Total Ventes HT (filtrées.)   Nous pouvons rajouter autant de filtres que nécessaire, la logique sera toujours la même : la table est filtrée en fonction du contexte d’évaluation de chaque cellule, avant […]

DAX – Contexte d’évaluation (Partie 1)



Comme nous l’avons vu dans les articles précédents, Power Query permet, depuis son interface utilisateur de réaliser très facilement la plupart des taches de chargement et de transformation de vos données. Néanmoins, si vous souhaitez aller plus loin, il vous faudra étudier le langage qui tourne en arrière plan de cette interface utilisateur, le langage M. Si ce n’est déjà fait, vous pouvez télécharger les fichiers sources sur le site de l’excellent  livre M is for (Data) Monkey écrit par Ken Puls et Miguel Escobar  dont nous nous sommes inspiré Télécharger les fichiers pour écrire ce post. Pour commencer, le plus simple est d’ajouter une nouvelle colonne : Après avoir renommé la colonne, vous pouvez écrire une formule en langage M, par exemple : Pour vous faciliter la tache, vous n’avez pas à écrire le nom de chaque colonne, puisque l’éditeur vous présente les colonnes disponibles, sur lesquelles vous n’avez qu’à double cliquer. La langage M est très différent des formules Excel auxquelles nous sommes habitués : Les formules sont sensibles à la casse (Majuscules et minuscules sont considérées comme différentes.) Le comptage se fait à partir de zéro (à partir de un dans Excel. Il n’y a pas de conversion […]

Power query – M – Conversions de type



Power Query et son interface permettent de réaliser facilement des transformations simples.   En programmant en langage M, nous pouvons réaliser des transformations plus complexes, mais il faut bien reconnaître que la difficulté dans la programmation devient vite prohibitive. Microsoft l’a semble-t-il bien compris, en intégrant le langage R à Power Bi. Ce langage, utilisé par les data scientists du monde entier, permet de réaliser ces opérations bien plus facilement. Pour utiliser R dans Power Query, vous devrez tout d’abord mettre en place l’environnement sur votre ordinateur. Une fois l’environnement installé, nous allons devoir installer un package R nommé ‘dplyr’ Ouvrez R studio Tapez Fermez Rstudio Voila c’est fait ! Maintenant nous pouvons créer une nouvelle requête dans Power BI : Obtenir les données Web Entrez cette Url : https://raw.githubusercontent.com/genomicsclass/dagdata/master/inst/extdata/msleep_ggplot2.csv Modifier. Transformer –> Utiliser la première ligne pour les entêtes. Sélectionnez les colonnes contenant des chiffres et transformez leur type en Décimal. Normalement vous devriez obtenir ceci :   Maintenant nous allons pouvoir créer une nouvelle étape de transformation en créant un script R.     Copiez-collez ce script : Cliquez sur Ok   Ce script permet d’afficher les six premières lignes du Dataset et de l’affecter à la variable […]

Power Query & R – Transformation avec Dplyr



Il peut être utile (pour documenter une base de données ou visualiser la structure d’un nouveau dataset) d’obtenir un descriptif d’un table. Si vous êtes familiers de R vous connaissez la fonction str(dataset). Avec M et powerquery, nous pouvons obtenir un résultat voisin, en utilisant la fonction Table.Schema(). Dans cet exemple, nous avons référencé la requête iris comme source de données de la seconde requête. Cette dernière nous donne un descriptif de la structure du dataset iris. Pour aller plus loin, nous pouvons utiliser la fonction Table.Profile() qui nous fournira un ensemble de statistiques descriptives sommaires pour chaque critère (similaire à la fonction summary() dans R.) Cette fonction est très utile pour identifier la distribution des données, la volumétrie, les normalisations à réaliser etc…

PowerQuery – Decrire facilement des tables



1
Si l’analyse des indicateur classiques (Chiffre d’affaires, marge, évolution des stocks etc…) nous permet d’évaluer la performance, ils peuvent être incapables de nous expliquer le pourquoi de la performance. Une solution peut être d’analyser la corrélation entre les différentes variables. Pour ce faire, une matrice de corrélation est l’outil idéal : elle permet de visualiser, comme ci-dessous, l’impact de l’évolution d’une variable sur une autre. L’échelle de droite montre la corrélation positive (en bleu), lorsque l’évolution des deux variables s’éffectue dans le même sens et la corrélation négative (en rouge) pour l’inverse. Les grands cercles foncés à l’intersection de deux variables montrent une forte corrélation de ces dernières. La lecture de la valeur de corrélation s’effectue en diagonale. Dans l’exemple ci-dessus, on voit bien que l’augmentation des remises a un impact fort sur le prix de vente, ce qui est évident.   Moins évidente, la corrélation négative entre le stock et le prix de vente des articles, qui semble indiquer que lorsque le niveau de stock est élevé on cherche à l’ajuster en baissant le prix, au détriment de la marge..   Ce graphique peut être généré en utilisant un graphique R. Le plus simple est de générer une table […]

R Visuals – Corrélations avec Corr