Del via


Om funktioner for overordnede/underordnede hierarkier i DAX

DAX indeholder fem funktioner, der kan hjælpe brugerne med at administrere data, der præsenteres som et overordnet/underordnet-hierarki i deres modeller. Med disse funktioner kan en bruger hente hele afstamningen af overordnede rækker, hvor mange niveauer har afstamningen til den øverste overordnede, hvem er de overordnede n-niveauer over den aktuelle række, hvem er n-underordnet fra toppen af det aktuelle rækkehierarki and er en vis overordnet overordnet i det aktuelle rækkehierarki?

Overordnede/underordnede funktioner i DAX

Følgende tabel contains et Parent-Child hierarki i kolonnerne: EmployeeKeyandParentEmployeeKey-, der bruges i all funktionseksemplerne.

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

I ovenstående tabel kan du se, at medarbejder 112 ikke har defineret en overordnet, medarbejder 14 har medarbejder 112 som leder (ParentEmployeeKey), medarbejder 3 har medarbejder 14 som leder and medarbejdere 11, 13, and 162 har medarbejder 3 som leder. Ovenstående hjælper med at forstå, at medarbejder 112 ikke har nogen leder over hende/ham and hun/han er den øverste leder for all medarbejdere, der vises her; medarbejder 3 rapporterer også til medarbejder 14 and medarbejdere 11, 13, 162 rapport til 3.

I følgende tabel vises de tilgængelige funktioner, en kort beskrivelse af funktionen and et eksempel på funktionen over de samme data, der er vist ovenfor.

PATH funktion – returnerer en afgrænset tekst med id'erne for all de overordnede til den aktuelle række, startende med den ældste or øverst indtil aktuel.

EmployeeKey ParentEmployeeKey Path
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 funktion – returnerer antallet af niveauer i en given PATH(), der starter ved det aktuelle niveau, indtil det ældste or øverste overordnede niveau. I følgende eksempelkolonne er PathLength defineret som '= PATHLENGTH([Path])'. eksemplet indeholder all data fra eksemplet Path() for at hjælpe med at forstå, hvordan denne funktion fungerer.

EmployeeKey ParentEmployeeKey Path 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 funktion – returnerer elementet på den angivne placering fra et PATH() som resultat, regnet fra left til right. I følgende eksempelkolonne er PathItem - 4. fra left defineret som '= PATHITEM([Path], 4)'. I dette eksempel returneres EmployeKey på fjerde placering i Path-strengen fra leftved hjælp af de samme sample data fra eksemplet Path().

EmployeeKey ParentEmployeeKey Path PathItem - 4. fra left
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 funktion – returnerer elementet ved position fra en PATH() som funktionsresultatet, hvor der tælles bagud fra right til left. I følgende eksempelkolonne PathItemReverse – 3. fra right er defineret som '= PATHITEMREVERSE([Path], 3)'. I dette eksempel returneres EmployeKey på tredje placering i strengen Path fra rightved hjælp af de samme sample data fra eksemplet Path().

EmployeeKey ParentEmployeeKey Path PathItemReverse - 3. fra right
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 funktion – Returnerer TRUEif den angivne item i den angivne path. I følgende eksempelkolonne PathContains – medarbejder 162 er defineret som '= PATHCONTAINS([Path], "162")'; I dette eksempel returneres TRUEif den angivne pathcontains medarbejder 162. I dette eksempel bruges resultaterne fra eksemplet Path() ovenfor.

EmployeeKey ParentEmployeeKey Path PathContains - medarbejder 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