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 dessa funktioner kan en användare hämta hela ursprunget för föräldrar 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 |