Utiliser des dimensions

Effectué

La création d’un schéma en étoile repose sur des tables de dimension et de faits. Les tables de faits contiennent des informations sur des événements tels que les commandes client, les dates d’expédition, les revendeurs et les fournisseurs. Les tables de dimension stockent des détails sur les entités métier, comme les produits ou l’heure, et sont connectées aux tables de faits au moyen d’une relation.

Vous pouvez utiliser des hiérarchies comme source unique pour faciliter la recherche de détails dans les tables de dimension. Ces hiérarchies se forment via des segments naturels dans vos données. Par exemple, il peut exister une hiérarchie de dates dans laquelle les dates peuvent être segmentées en années, mois, semaines et jours. Les hiérarchies sont utiles, car elles vous permettent d’explorer vos données au niveau du détail au lieu de les voir de manière globale.

Hiérarchies

Quand vous créez des visuels, Power BI entre automatiquement les valeurs du type date sous forme de hiérarchie (si la table n’a pas été marquée comme table de dates).

Capture d’écran de l’exemple de hiérarchie.

Dans la colonne Date précédente, la date est présentée de façon de plus en plus fine : années, trimestres, mois et jours. Vous pouvez aussi créer des hiérarchies manuellement.

Par exemple, supposez que vous souhaitez créer un graphique à barres empilées présentant le total des ventes par catégorie et sous-catégorie. Pour cela, vous pouvez créer une hiérarchie dans la table Produit pour les catégories et les sous-catégories. Pour créer une hiérarchie, accédez au volet Champs de Power BI, puis cliquez avec le bouton droit sur la colonne pour laquelle vous voulez une hiérarchie. Sélectionnez Nouvelle hiérarchie, comme le montre l’illustration suivante.

Capture d’écran de la nouvelle hiérarchie dans la table Product.

Faites ensuite glisser la colonne de sous-catégorie vers cette nouvelle hiérarchie. La colonne est alors ajoutée en tant que sous-niveau dans la hiérarchie.

Capture d’écran de la hiérarchie de noms de catégorie avec le nom de catégorie et le nom de sous-catégorie imbriqués.

À présent, vous pouvez créer le visuel en sélectionnant un graphique à barres empilées dans le volet Visualisations. Ajoutez votre Hiérarchie des noms de catégories dans le champ Axe et Total des ventes dans le champ Valeurs.

Capture d’écran de la hiérarchie de noms de catégorie dans le champ Axis et TotalSales dans le champ Values.

Vous pouvez explorer le visuel au niveau du détail et afficher Catégorie ou Sous-catégorie, selon ce que vous voulez voir. Les hiérarchies vous permettent d’afficher des niveaux de données de plus en plus élevés dans une même vue.

Capture d’écran des deux vues sur un même visuel.

Maintenant que vous vous êtes familiarisé avec les hiérarchies, vous pouvez passer au cran supérieur et vous pencher sur les hiérarchies parent-enfant et leur rôle dans plusieurs relations entre les tables de faits et les tables de dimension.

Hiérarchie parent-enfant

Dans l’exemple suivant, la base de données contient une table Employés qui fournit des informations importantes sur les employés, leurs responsables et leur ID. Si vous examinez cette table, vous remarquerez qu’il y a plusieurs occurrences de Roy F dans la colonne Responsables. Comme le montre l’image, plusieurs employés peuvent avoir un même responsable, ce qui indique qu’il existe une hiérarchie entre les responsables et les employés.

Capture d’écran de la table Employee avec les colonnes Employee ID, Employee, Manager ID et Manager.

Sachant que la hiérarchie est déterminée par la colonne Responsable, celle-ci représente le parent, alors que les « enfants » sont les employés. Dans cet exemple, nous voulons voir tous les niveaux de la hiérarchie. Sachant que Power BI n’affiche pas par défaut tous les niveaux de la hiérarchie, c’est à vous de faire en sorte que tous les niveaux de cette hiérarchie soient affichés (ou « aplatis ») de façon à obtenir une plus grande granularité des données.

Aplatir la hiérarchie parent-enfant

Le fait d’afficher plusieurs niveaux enfants dépendant d’un parent de niveau supérieur revient à aplatir la hiérarchie. Ce processus consiste à créer plusieurs colonnes dans une table pour afficher le chemin hiérarchique du parent à l’enfant dans le même enregistrement. Vous allez utiliser PATH(), fonction DAX simple qui retourne une version texte du chemin managérial de chaque employé, et PATHITEM() pour décomposer ce chemin en différents niveaux de hiérarchie managérial.

Important

DAX n’a pas encore été abordé, mais le sera dans un autre module. Cette fonction a été incluse dans cette section, car elle permet d’expliquer les hiérarchies. Si vous êtes dérouté par l’utilisation de DAX dans cette capacité, consultez le module portant sur DAX, puis revenez ensuite à cette section.

Dans la table, accédez à l’onglet Modélisation, puis sélectionnez Nouvelle colonne. Dans la barre de formule qui s’affiche, entrez la fonction suivante, qui crée le chemin texte entre l’employé et le responsable. Cette action crée une colonne calculée dans DAX.

Path = PATH(Employee[Employee ID], Employee[Manager ID])

Capture d’écran de la mesure DAX pour aplatir la hiérarchie parent-enfants.

Le chemin complet entre l’employé et le responsable apparaît dans la nouvelle colonne, comme le montre la capture d’écran suivante.

Capture d’écran de la table de fonction PATH dans Power BI.

Dans le cas de Roger M, le chemin d’ID est 1010 | 1011 | 1013, ce qui signifie qu’au niveau au-dessus de Roger M (ID 1013) se trouve son responsable, Pam H (ID 1011) et qu’au niveau au-dessus de Pam H se trouve son responsable Roy F (ID 1010). Dans cette ligne, Roger M se trouve au bas de la hiérarchie, au niveau enfant, et Roy F se trouve en haut de la hiérarchie, au niveau parent. Ce chemin est créé pour chaque employé. Pour aplatir la hiérarchie, vous pouvez décomposer chaque niveau à l’aide de la fonction PATHITEM.

Pour afficher les trois niveaux de la hiérarchie séparément, vous pouvez créer quatre colonnes comme vous l’avez fait précédemment, en entrant les équations suivantes. Vous allez utiliser la fonction PATHITEM pour récupérer la valeur qui réside dans le niveau correspondant de votre hiérarchie.

  • Niveau 1 = PATHITEM(Employé[Chemin],1)
  • Niveau 2 = PATHITEM(Employé[Chemin],2)
  • Niveau 3 = PATHITEM(Employé[Chemin],3)

Capture d’écran de l’utilisation de la fonction PATHITEM.

Une fois que vous avez fini, comme vous pouvez le voir, vous avez à présent chaque niveau de hiérarchie dans votre table. Roy F se trouve au sommet de la hiérarchie. Au fur et à mesure que vous parcourez les Niveaux 2-3, vous pouvez voir que les responsables et les employés sont mappés entre eux.

Capture d’écran de l’aplatissement de la hiérarchie parent-enfants.

À présent, vous pouvez créer une hiérarchie dans le volet Champs, comme vous l’avez déjà fait. Cliquez avec le bouton droit sur Niveau 1, car il s’agit du premier niveau de la hiérarchie, puis sélectionnez Nouvelle hiérarchie. Effectuez ensuite un glisser-déposer du Niveau 2 et du Niveau 3 dans cette hiérarchie.

Capture d’écran de la nouvelle hiérarchie pour Employee Levels.

Vous avez réussi à aplatir une hiérarchie pour pouvoir visualiser ses différents niveaux individuels.

Vous avez pris en compte les dimensions qui n’ont qu’une seule relation avec une table de faits. Toutefois, dans certaines situations, votre table de dimension a plusieurs relations avec une table de faits.

Dimensions de rôle actif

Les dimensions de rôle actif ont plusieurs relations valides avec les tables de faits, ce qui signifie que la même dimension peut être utilisée pour filtrer plusieurs colonnes ou tables de données. Ainsi, vous pouvez filtrer les données différemment en fonction des informations que vous devez récupérer. Cette rubrique étant complexe, elle est seulement présentée dans cette section. L’utilisation de dimensions de rôle actif nécessite des fonctions DAX complexes qui seront abordées dans les prochaines sections.

Capture d’écran des dimensions de rôle actif dans un modèle.

Le visuel précédent montre les tables Calendar (Calendrier), Sales (Ventes) et Order (Commandes). Calendar est la table de dimension, alors que Sales et Order sont des tables de faits. La table de dimension a deux relations : une avec Sales et une autre avec Order. Cet exemple est une dimension de rôle actif, car la table Calendar peut être utilisée pour regrouper des données à la fois dans Sales et Order. Si vous souhaitez générer un visuel dans lequel la table Calendar référence les tables Order et Sales, la table Calendar sert de dimension de rôle actif.