La fonction ISINSCOPE et la hiérarchie des données

Publié le 01 août 2022
par Kim Leblanc BAA

Nous avons eu une question par le passé sur le Forum du CFO masqué concernant la hiérarchie des données et la possibilité de masquer des lignes d’une matrice lorsque la hiérarchie d’un élément est inexistante pour un niveau donné. Nous avions alors utilisé la fonction ISINSCOPE pour nous situer au niveau de la hiérarchie des données, confirmer si ce niveau retourne un résultat et masquer cette ligne le cas échéant.

 

Voici la procédure utilisée pour résoudre cette problématique

Mise en contexte

Prenons pour exemple une matrice où l’on veut montrer les montants de dépenses, par étapes, de chacun de nos projets.

Pour un projet nous avons plusieurs phases, et chaque phase comporte plusieurs sous-niveaux (étapes).

Nous avons certaines étapes qui s’appliquent à un projet mais pas à un autre. Dans le cas présenté ici, le projet a n’a pas de sous niveau 2 pour l’étape a-1.2 et le projet b n’a pas de sous-niveaux pour sa phase 1 (b-1).

La fonction ISINSCOPE - Matrice

 

Commençons par placer en ligne la Phase, le Sous niveau 1 et le Sous niveau 2 dans une matrice.

La fonction ISINSCOPE - Matrice

Il y aura automatiquement 3 niveaux pour chacun des projets comme dans la matrice de gauche ci-dessous.

La fonction ISINSCOPE - Matrice

 

Remarquez qu’il y a 3 lignes dans la matrice qui s’affichent sans description. Ce sont les étapes qui sont inexistantes pour un projet donné:

  • C’est le cas pour le sous niveau 2 du projet a sous la phase a-1.2.
  • C’est également le cas pour les sous-niveaux 1 et 2 du projet b.

On voudrait que ces lignes soient masquées et avoir un résultat comme celui de la matrice de droite. Pour en arriver à ce résultat, il faudra utiliser la fonction ISINSCOPE dans notre mesure en DAX.

Cette fonction contient un seul paramètre dans lequel il faut passer une colonne.

La fonction ISINSCOPE et la hiérarchie des données

 

La fonction ISINSCOPE en DAX retourne un True dans le cas où la colonne est le niveau dans la hiérarchie.

Comme cette fonction fait référence à une hiérarchie, on viendra créer une hiérarchie avec les colonnes Phase, Sous niveau 1 et Sous niveau 2.

 

Création d’une hiérarchie

Vous pouvez créer une hiérarchie en cliquant sur le bouton droit de votre souris sur le 1er niveau de la hiérarchie souhaitée.

La fonction ISINSCOPE - hiérarchie des données

La fonction ISINSCOPE et la hiérarchie des données

 

Une fois la hiérarchie créée, vous pouvez procéder de la même manière pour ajouter d’autres niveaux dans la hiérarchie. Vous aurez alors l’option Ajouter à la hiérarchie dans le menu contextuel.

Nous pouvons maintenant glisser la hiérarchie dans les lignes de la matrice.

La fonction ISINSCOPE et la hiérarchie des données

 

Comportement de la fonction ISINSCOPE

Maintenant, regardons le comportement de la fonction ISINSCOPE avec cette hiérarchie.

Nous allons insérer dans notre matrice la mesure suivante :

F_ISINSCOPE_SN1 =  ISINSCOPE(Dim_Phase[Sous niveau 1])

La mesure nous retourne un True sur chacune des lignes qui correspondent à la hiérarchie Sous niveau 1 ou un niveau plus bas (effectivement, le sous niveau 2 est compris dans le sous niveau 1).

La fonction ISINSCOPE et la hiérarchie des données

 

Nous devons ajouter un élément à notre fonction pour être en mesure de ne pas afficher les niveaux qui sont inexistants comme la ligne sous b-1 par exemple.

 

Vous devez analyser de grandes quantités de données et les présenter dans des rapports et tableaux de bord, avec des indicateurs de performance pertinents ? Développez vos compétences avec nos formations en Power BI.

Formations Power BI disponibles en anglais

 

Ajout des fonctions ISBLANK et VALUES

Il nous fondra utiliser conjointement ISBLANK et VALUES pour identifier les niveaux non utilisés.  ISBLANK(VALUES(Dim_Phase[Sous niveau 1])

VALUES retourne chacune des valeurs uniques d’une colonne et ISBLANK retournera un True s’il n’y a pas de valeur retournée par la fonction VALUES.

On regarde ce que contient la colonne [Sous niveau 1], comme il n’y a pas de valeur pour le projet b alors ISBLANK retourne un True.

 

La fonction SWITCH pour faire l’évaluation pour chacun des niveaux

Il nous faudra refaire le même exercice pour chacun de nos trois niveaux en imbriquant le tout dans la fonction SWITCH.

La fonction ISINSCOPE et la hiérarchie des données

 

Dès que l’une de nos trois options va retourner un True (nous sommes au bon niveau de hiérarchie et la colonne de l’étape regardée est vide), notre mesure va retourner un BLANK(), et la ligne ne sera pas affichée. Si au bout de toutes les conditions aucune n’est vraie, la mesure Depense$ va être affichée.

La fonction ISINSCOPE et la hiérarchie des données

 

Nous pouvons modifier notre mesure pour bien comprendre le comportement de celle-ci. Remplaçons les BLANK() par du texte à retourner comme ceci :

La fonction ISINSCOPE et la hiérarchie des données

 

En l’insérant dans notre matrice, on remarque laquelle des options de la fonction SWITCH est retournée.

La fonction ISINSCOPE et la hiérarchie des données

 


Fichier d’accompagnement VIP à télécharger

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

Formation complémentaire

Afin d’approfondir vos connaissances avec Power BI et plus particulièrement vos compétences avec l’éditeur de requête Power Query, nous vous recommandons notre formation Recettes magiques pour transformer vos données.

Voici quelques commentaires d’apprenants ayant suivi la formation en ligne Recettes magiques pour transformer vos données :

CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

Laisser un commentaire

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

Retour en haut