Leçon supplémentaire - Hiérarchies déséquilibrées

S’applique à : SQL Server 2017 et versions ultérieures Analysis Services Azure Analysis Services Fabric/Power BI Premium

Dans cette leçon supplémentaire, vous allez résoudre un problème courant se produisant lors de l’ajout d’un tableau croisé dynamique sur des hiérarchies qui contiennent des valeurs vides (membres) à différents niveaux. Par exemple, une organisation où un cadre a à la fois des responsables de département et des non-cadres comme collaborateurs. Ou bien des hiérarchies géographiques composées des éléments Pays-Région-Ville, où certaines villes n’ont pas d’état ou de région parent, par exemple Washington D.C. ou l’État de la Cité du Vatican. Quand une hiérarchie a des membres vides, elle descend souvent à des niveaux différents ou déséquilibrés.

Capture d’écran d’une hiérarchie Employee qui contient une valeur vide.

Les modèles tabulaires de niveau de compatibilité 1400 disposent d’une propriété Masquer les membres supplémentaire pour les hiérarchies. Le paramètre Par défaut suppose qu’il n’y a aucun membre vide à aucun niveau. Le paramètre Masquer les membres vides exclut les membres vides de la hiérarchie quand ils sont ajoutés à un tableau croisé dynamique ou à un rapport.

Durée estimée pour suivre cette leçon : 20 minutes

Prérequis

Cet article de leçon supplémentaire fait partie d’un didacticiel de modélisation tabulaire. Avant d’effectuer les tâches de cette leçon supplémentaire, vous devez avoir effectué toutes les leçons précédentes ou disposer d’un exemple de projet de modèle de ventes sur Internet Adventure Works.

Si vous avez créé le projet de ventes sur Internet AW dans le cadre du didacticiel, votre modèle ne contient encore aucune donnée ou hiérarchie déséquilibrée. Pour suivre cette leçon supplémentaire, vous devez d’abord créer le problème en ajoutant des tables supplémentaires, puis créer des relations, des colonnes calculées, une mesure et une hiérarchie d’organisation. Cette partie prend environ 15 minutes. Ensuite, vous allez résoudre le problème en quelques minutes.

Ajouter des tables et des objets

Pour ajouter de nouvelles tables à votre modèle

  1. Dans Modèle tabulaire Explorer, développez Sources de données, puis cliquez avec le bouton droit sur votre connexion >Importer de nouvelles tables.

  2. Dans le navigateur, sélectionnez DimEmployee et FactResellerSales, puis cliquez sur OK.

  3. Dans l’éditeur de requête, cliquez sur Importer.

  4. Créez les relations suivantes :

    Table 1 Colonne Direction du filtre Table 2 Colonne Actif
    FactResellerSales OrderDateKey Default DimDate Date Oui
    FactResellerSales DueDate Default DimDate Date Non
    FactResellerSales ShipDateKey Default DimDate Date Non
    FactResellerSales ProductKey Default DimProduct ProductKey Yes
    FactResellerSales EmployeeKey Vers les deux tables DimEmployee EmployeeKey Yes
  5. Dans la table DimEmployee, créez les colonnes calculées suivantes :

    Chemin d’accès

    =PATH([EmployeeKey],[ParentEmployeeKey])
    

    FullName

    =[FirstName] & " " & [MiddleName] & " " & [LastName]
    

    Level1

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],1,1)) 
    

    Level2

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],2,1)) 
    

    Level3

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],3,1)) 
    

    Level4

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],4,1)) 
    

    Level5

    =LOOKUPVALUE(DimEmployee[FullName],DimEmployee[EmployeeKey],PATHITEM([Path],5,1)) 
    
  6. Dans la table DimEmployee, créez une hiérarchie nommée Organization. Ajoutez les colonnes suivantes, dans l’ordre : Level1, Level2, Level3, Level4, Level5.

  7. Dans la table FactResellerSales, créez la mesure suivante :

    ResellerTotalSales:=SUM([SalesAmount])
    
  8. Utilisez Analyser dans Excel pour ouvrir Excel et créer automatiquement un tableau croisé dynamique.

  9. Dans Champs de tableau croisé dynamique, ajoutez la hiérarchie Organization de la table DimEmployee à Rows et la mesure ResellerTotalSales de la table FactResellerSales à Values.

    Capture d’écran d’une feuille de calcul avec la boîte de dialogue Champs de tableau croisé dynamique affichée.

    Comme vous pouvez le voir dans le tableau croisé dynamique, la hiérarchie affiche les lignes qui sont déséquilibrées. Il y a de nombreuses lignes où des membres vides sont affichés.

Pour corriger la hiérarchie déséquilibrée en définissant la propriété Masquer les membres

  1. Dans l’Explorateur de modèles tabulaires, développez Tables>DimEmployee>Hiérarchies>Organization.

  2. Dans Propriétés>Masquer les membres, sélectionnez Masquer les membres vides.

    Capture d’écran du Fenêtre Propriétés avec une flèche pointant vers l’option Masquer les membres vides.

  3. De retour dans Excel, actualisez le tableau croisé dynamique.

    Capture d’écran d’une hiérarchie Employee sans membre vide.

    Voilà qui est beaucoup mieux !

Voir aussi

Leçon 9 : Créer des hiérarchies
Leçon supplémentaire - Sécurité dynamique
Leçon supplémentaire - Lignes détaillées