Partage via


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 présentées sous forme de hiérarchie parent-enfant dans leurs modèles. Avec cette fonction, un utilisateur peut obtenir l’intégralité de la traçabilité des parents qu’une ligne a, combien de niveaux a la traçabilité au parent supérieur, qui est le n-niveaux parent au-dessus de la ligne actuelle, qui est le n-descendant du haut de la hiérarchie de lignes actuelle et est-il un parent parent dans la hiérarchie de lignes actuelle ?

Fonctions parent-enfant dans DAX

Le tableau suivant contient une hiérarchie Parent-Child sur les colonnes : EmployeeKey et ParentEmployeeKey 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 le tableau ci-dessus, vous pouvez voir que l’employé 112 n’a pas de parent défini, l’employé 14 a l’employé 112 en tant que responsable (ParentEmployeeKey), l’employé 3 a employé 14 en tant que responsable et les employés 11, 13 et 162 ont employé 3 en tant que responsable. Le ci-dessus permet de comprendre que l’employé 112 n’a pas de gestionnaire au-dessus de lui et qu’il est le chef de direction de tous les employés présentés ici ; en outre, l’employé 3 signale à l’employé 14 et aux employés 11, 13, 162 rapports à 3.

Le tableau suivant présente les fonctions disponibles, une brève description de la fonction et un exemple de fonction sur les mêmes données ci-dessus.

PATH fonction : renvoie un texte délimité avec les identificateurs de tous les parents à la ligne actuelle, en commençant par le plus ancien ou le plus haut jusqu’à ce qu’ils soient actuels.

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

PATHLENGTH fonction : retourne le nombre de niveaux d’un PATH(), commençant au niveau actuel jusqu’au niveau le plus ancien ou supérieur du niveau parent. Dans l’exemple de colonne suivant, PathLength est défini comme '= PATHLENGTH([Path])' ; l’exemple inclut toutes les données de l’exemple Path() pour vous aider à comprendre le fonctionnement 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

PATHITEM fonction : retourne l’élément à la position spécifiée d’un PATH() comme résultat, en comptant de gauche à droite. Dans l’exemple suivant, la colonne PathItem - 4ème à partir de gauche est définie comme '= PATHITEM([Path], 4)' ; cet exemple retourne l’EmployeKey à la quatrième position dans la chaîne Path de gauche, en utilisant les mêmes exemples de données de l’exemple Path().

EmployeeKey ParentEmployeeKey Chemin PathItem - 4ème à partir de 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

PATHITEMREVERSE fonction : renvoie l’élément à position à partir d’un résultat de PATH() tel que le résultat de la fonction, en comptant vers l’arrière de droite à gauche. Dans l’exemple suivant, la colonne PathItemReverse - 3ème à partir de droite est définie comme '= PATHITEMREVERSE([Path], 3)' ; cet exemple retourne l’EmployeKey à la troisième position de la chaîne Path de droite, en utilisant les mêmes exemples de données de l’exemple Path().

EmployeeKey ParentEmployeeKey Chemin PathItemReverse - 3ème à partir de 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

PATHCONTAINS fonction : renvoie TRUE si le item spécifié existe dans le pathspécifié. Dans l’exemple de colonne suivant, PathContains - employee 162 est défini comme '= 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 FALSE
14 112 112|14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112|14|3|13 FALSE
162 3 112|14|3|162 TRUE
117 162 112|14|3|162|117 TRUE