Présentation des fonctions pour les hiérarchies parent-enfant dans DAX

DAX fournit cinq fonctions pour aider les utilisateurs à gérer les données qui se présentent sous la forme d’une hiérarchie parent-enfant dans leurs modèles. Grâce à ces fonctions, un utilisateur peut obtenir l’intégralité du lignage des parents d’une ligne, le nombre de niveaux du lignage jusqu’au parent supérieur, l’identité du parent situé n niveaux au-dessus de la ligne actuelle et l’identité du nième descendant à partir du sommet de la hiérarchie de la ligne actuelle. Il est aussi possible de savoir si un parent donné est un parent dans la hiérarchie de la ligne actuelle.

Fonctions parent-enfant dans DAX

La table suivante contient une hiérarchie parent-enfant sur les colonnes EmployeeKey et ParentEmployeeKey. Elle est utilisée dans tous les exemples de fonctions.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

Dans la table ci-dessus, vous pouvez voir qu’aucun parent n’est défini pour l’employé 112, que l’employé 14 a pour responsable l’employé 112 (ParentEmployeeKey), que l’employé 3 a pour responsable l’employé 14 et que les employés 11, 13 et 162 ont pour responsable l’employé 3. L’exemple ci-dessus nous permet de comprendre que l’employé 112 n’a aucun supérieur et qu’il est en charge de tous les employés indiqués ici. Par ailleurs, l’employé 3 relève de l’employé 14 et les employés 11, 13 et 162 de l’employé 3.

La table suivante présente les fonctions disponibles, une brève description de la fonction et un exemple de la fonction sur les mêmes données que celles indiquées ci-dessus.

Fonction PATH – Retourne un texte délimité contenant les identificateurs de tous les parents de la ligne actuelle, en commençant par le niveau le plus ancien ou le plus élevé jusqu’au niveau actuel.

EmployeeKey ParentEmployeeKey Chemin
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

Fonction PATHLENGTH – Retourne le nombre de niveaux dans une fonction PATH() donnée, en commençant au niveau actuel jusqu’au niveau parent le plus ancien ou le plus élevé. Dans l’exemple suivant, la colonne PathLength est définie en tant que « = PATHLENGTH([Path]) ». L’exemple inclut toutes les données de l’exemple Path() pour vous aider à mieux comprendre le mode opératoire de cette fonction.

EmployeeKey ParentEmployeeKey Chemin PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

Fonction PATHITEM – Retourne l’élément situé à la position spécifiée dans un résultat de type PATH(), en partant de la gauche. Dans l’exemple suivant, la colonne PathItem – 4e élément à partir de la gauche est définie en tant que « = PATHITEM([Path], 4) ». Cet exemple, qui utilise les données de l’exemple Path(), retourne l’élément EmployeeKey situé en quatrième position dans la chaîne Path en partant de la gauche.

EmployeeKey ParentEmployeeKey Chemin PathItem - 4e élément à partir de la gauche
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

Fonction PATHITEMREVERSE – Retourne l’élément situé à la position spécifiée dans un résultat de type PATH(), en partant de la droite.
Dans l’exemple suivant, la colonne PathItemReverse – 3e élément à partir de la droite est définie en tant que « = PATHITEMREVERSE([Path], 3) ». Cet exemple, qui utilise les données de l’exemple Path(), retourne l’élément EmployeeKey situé en troisième position dans la chaîne Path en partant de la droite.

EmployeeKey ParentEmployeeKey Chemin PathItemReverse - 3e élément à partir de la droite
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

Fonction PATHCONTAINS – Retourne TRUE si l’élément spécifié existe dans le chemin spécifié. Dans l’exemple suivant, la colonne PathContains – Employé 162 est définie en tant que « = PATHCONTAINS([Path], "162") ». Cet exemple retourne TRUE si le chemin donné contient l’employé 162. Cet exemple utilise les résultats de l’exemple Path() ci-dessus.

EmployeeKey ParentEmployeeKey Chemin PathContains - Employé 162
112 112 FAUX
14 112 112|14 false
3 14 112|14|3 FAUX
11 3 112|14|3|11 FAUX
13 3 112|14|3|13 FAUX
162 3 112|14|3|162 VRAI
117 162 112|14|3|162|117 VRAI