Dela via


Förstå funktioner för överordnade och underordnade hierarkier i DAX

DAX innehåller fem funktioner som hjälper användarna att hantera data som visas som en överordnad-underordnad hierarki i sina modeller. Med de här funktionerna kan en användare hämta hela ursprunget för överordnade rader som en rad har, hur många nivåer har ursprunget till den överordnade överordnad, vem är den överordnade n-nivån ovanför den aktuella raden, vem är n-underordnade från toppen av den aktuella radhierarkin och är viss överordnad i den aktuella radhierarkin?

Överordnad-underordnade funktioner i DAX

Följande tabell innehåller en Parent-Child hierarki för kolumnerna: EmployeeKey och ParentEmployeeKey som används i alla funktionsexempel.

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

I tabellen ovan ser du att medarbetare 112 inte har någon överordnad definierad, medarbetare 14 har medarbetare 112 som chef (ParentEmployeeKey), medarbetare 3 har medarbetare 14 som chef och anställda 11, 13 och 162 har medarbetare 3 som chef. Ovanstående hjälper till att förstå att medarbetare 112 inte har någon chef över sig och att hon/han är den högsta chefen för alla anställda som visas här; personal 3 rapporterar till medarbetare 14 och anställda 11, 13, 162 rapporterar till 3.

I följande tabell visas tillgängliga funktioner, en kort beskrivning av funktionen och ett exempel på funktionen över samma data som visas ovan.

PATH funktion – Returnerar en avgränsad text med identifierarna för alla överordnade till den aktuella raden, från och med den äldsta eller översta tills den är aktuell.

EmployeeKey ParentEmployeeKey Stig
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 – Returnerar antalet nivåer i en viss PATH(), som börjar på aktuell nivå till den äldsta eller översta överordnade nivån. I följande exempelkolumn definieras PathLength som "= PATHLENGTH([Path])"; exemplet innehåller alla data från Path()-exemplet för att förstå hur den här funktionen fungerar.

EmployeeKey ParentEmployeeKey Stig 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 – Returnerar objektet på den angivna positionen från en PATH() som resultat, räknat från vänster till höger. I följande exempelkolumn definieras PathItem – 4:e från vänster som "= PATHITEM([Path], 4)"; I det här exemplet returneras EmployeKey på fjärde plats i sökvägssträngen från vänster med samma exempeldata från Path()-exemplet.

EmployeeKey ParentEmployeeKey Stig PathItem – 4:e från vänster
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 – Returnerar objektet vid position från ett PATH() som funktionsresultat och räknar bakåt från höger till vänster. I följande exempelkolumn definieras PathItemReverse – 3:e från höger som "= PATHITEMREVERSE([Path], 3)"; I det här exemplet returneras EmployeKey på tredje plats i sökvägssträngen från höger, med samma exempeldata från Path()-exemplet.

EmployeeKey ParentEmployeeKey Stig PathItemReverse – 3:e från höger
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 – returnerar TRUE om den angivna item finns inom den angivna path. I följande exempelkolumn definieras PathContains – employee 162 som "= PATHCONTAINS([Path], "162")"; det här exemplet returnerar TRUE om den angivna sökvägen innehåller medarbetare 162. I det här exemplet används resultaten från path()-exemplet ovan.

EmployeeKey ParentEmployeeKey Stig PathContains – anställd 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