Forstå funksjoner for overordnede underordnede hierarkier i DAX
DAX inneholder fem funksjoner som hjelper brukere med å behandle data som presenteres som et overordnet-underordnet-hierarki i modellene sine. Med disse funksjonene kan en bruker få hele avstammingen av foreldre en rad har, hvor mange nivåer som har avstammingen til den øverste overordnede, som er overordnede n-nivåer over gjeldende rad, hvem er n-etterkommeren fra toppen av gjeldende radhierarki og er en overordnet overordnet i gjeldende radhierarki?
Overordnede og underordnede funksjoner i DAX
Tabellen nedenfor inneholder et Parent-Child hierarki i kolonnene: EmployeeKey og ParentEmployeeKey som brukes i alle eksemplene på funksjoner.
EmployeeKey | ParentEmployeeKey |
---|---|
112 | |
14 | 112 |
3 | 14 |
11 | 3 |
13 | 3 |
162 | 3 |
117 | 162 |
221 | 162 |
81 | 162 |
I tabellen ovenfor kan du se at ansatt 112 ikke har noen overordnet definert, ansatt 14 har ansatt 112 som leder (ParentEmployeeKey), ansatt 3 har ansatt 14 som leder og ansatte 11, 13 og 162 har ansatt 3 som leder. Ovennevnte bidrar til å forstå at ansatt 112 ikke har noen leder over henne/ham, og hun/han er den øverste lederen for alle ansatte som vises her; Også ansatte 3 rapporterer til ansatte 14 og ansatte 11, 13, 162 rapport til 3.
Tabellen nedenfor viser de tilgjengelige funksjonene, en kort beskrivelse av funksjonen og et eksempel på funksjonen over de samme dataene som vises ovenfor.
PATH-funksjonen – Returnerer en tekst med skilletegn med identifikatorene for alle overordnede til gjeldende rad, og starter med den eldste eller øverste mest til gjeldende.
EmployeeKey | ParentEmployeeKey | Sti |
---|---|---|
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-funksjonen – Returnerer antall nivåer i en gitt PATH(), som starter på gjeldende nivå til det eldste eller øverste overordnede nivået. I eksemplet nedenfor er kolonnen PathLength definert som '= PATHLENGTH([Path])
'; Eksemplet inneholder alle data fra Path()-eksemplet for å forstå hvordan denne funksjonen fungerer.
EmployeeKey | ParentEmployeeKey | Sti | 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-funksjonen – Returnerer elementet på den angitte plasseringen fra et PATH() som resultat, og teller fra venstre mot høyre. I følgende eksempel kolonne PathItem - fjerde fra venstre er definert som '= PATHITEM([Path], 4)
'; Dette eksemplet returnerer EmployeKey på fjerde plass i banestrengen fra venstre, ved hjelp av de samme eksempeldataene fra path()-eksemplet.
EmployeeKey | ParentEmployeeKey | Sti | PathItem - fjerde fra venstre |
---|---|---|---|
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-funksjonen – Returnerer elementet på position
fra et PATH() som funksjonsresultat, og teller bakover fra høyre mot venstre.
I eksemplet nedenfor er kolonnen PathItemReverse – 3. fra høyre definert som '= PATHITEMREVERSE([Path], 3)
'; Dette eksemplet returnerer EmployeKey på tredje posisjon i banestrengen fra høyre, ved hjelp av de samme eksempeldataene fra path()-eksemplet.
EmployeeKey | ParentEmployeeKey | Sti | PathItemReverse – 3. fra høyre |
---|---|---|---|
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-funksjonen – returnerer TRUE
hvis den angitte item
finnes i den angitte path
. I eksemplet nedenfor er kolonne PathContains – ansatt 162 definert som '= PATHCONTAINS([Path], "162")
'; Dette eksemplet returnerer TRUE
hvis den angitte banen inneholder ansatt 162. Dette eksemplet bruker resultatene fra Bane()-eksemplet ovenfor.
EmployeeKey | ParentEmployeeKey | Sti | PathContains – ansatt 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 |