dimanche 20 octobre 2019

Power BI : Synchroniser les Charts lors du DrillDown

Problématique :


Dans Power BI nous n'avons pas la possibilité de synchroniser plusieurs visuels quand on fait un Drill down/up sur l'un des visuels , cette fonctionnalités a été très votée par la communauté ici mais l'équipe Power BI n'ont toujours pas priorisé sa mise en place.


Solution :





Je me suis inspiré d'une fonctionnalité présentée par Daniil Maslyuk dans son blog concernant la gestion dynamique des hiérarchies et j'ai appliqué le principe à l'hiérarchies date qui est la plus souvent utilisée comme axe pour le Drill down/up.

L'idée est de créer une hiérarchies sous forme de table calculé dans Power BI/Cube SSAS ensuite l'utiliser dans un Slicer.

Pour cette démonstration j'ai utilisé le jeux de données de AdventureWorksDW2017 


On commence par ajouter une table calculée :

Custom Date Hierarchy =
UNION (
    SELECTCOLUMNS (
        'DimDate';
        "DateKey"; DimDate[DateKey];
        "Name"; DimDate[CalendarYear];
        "Level""Year";
        "LevelNumber"1;
        "SortColumn"; DimDate[CalendarYear]
    );
    SELECTCOLUMNS (
        'DimDate';
        "DateKey"; DimDate[DateKey];
        "Name"; DimDate[EnglishMonthName];
        "Level""Month";
        "LevelNumber"2;
        "SortColumn"; DimDate[MonthNumberOfYear]
    );
    SELECTCOLUMNS (
        'DimDate';
        "DateKey"; DimDate[DateKey];
        "Name"; DimDate[DateKey];
        "Level""Date";
        "LevelNumber"3;
        "SortColumn"; DimDate[DateKey]
    )
)

Le principe est de faire des UNION ALL sur la même table en sélectionnant à chaque fois un niveau différents , dans cette logique j'ai ajouté une colonne "SortColumn" pour pouvoir l'utiliser comme colonne de tri pour la colonne "Name".

Une fois la table créee, on ajoute le lien avec la dimension date (Penser à bien cocher le filtre bidirectionnel):



On passe sur l'onglet Report et on commence par ajouter 2 visualisations de type Charts, pour la premier Viz on configure l'attribut Name de Hiérarchie Custom Hierarchy comme Axis , on configure SalesAmount en tant colonne de valeurs et EnglishProductCategory en tant que colonne de séries, sur la deuxième Viz on duplique la première et on change juste la colonne de séries sur   EnglishProductSubCategory :




On ajoute un Slicer avec l'attribut Level de Hiérarchie Custom Hierarchy comme Field


Et enfin j'utilise une Custom Viz HierarchySlicer pour afficher l'hiérarchie Date à plat :

Et voilà !!!

Bien évidement nous pouvons décliner l'utilisation de cette mécanique avec d'autres types de Viz.

Voici la version complète du rapport ici

Enjoy!!

English Version


1 commentaire:

  1. Je tiens à remercier le site pour son article informatif sur la synchronisation des graphiques dans Power BI. Les astuces présentées sont très utiles pour améliorer la présentation des données. Power BI offre ainsi des fonctionnalités puissantes pour optimiser la visualisation des rapports. Merci pour ces conseils précieux !




    RépondreSupprimer