Informatie over functies voor bovenliggende en onderliggende hiërarchieën in DAX

DAX biedt vijf functies waarmee gebruikers gegevens kunnen beheren die worden gepresenteerd als een bovenliggende en onderliggende hiërarchie in hun modellen. Met deze functies kan een gebruiker de volledige herkomst van bovenliggende bovenliggende rijen verkrijgen, hoeveel niveaus de herkomst hebben tot het bovenste bovenliggende item, wie is de bovenliggende n-niveaus boven de huidige rij, wie is de n-afstammeling van de bovenkant van de huidige rijhiërarchie en is bepaalde bovenliggende rijhiërarchie?

Bovenliggende en onderliggende functies in DAX

De volgende tabel bevat een bovenliggende-onderliggende hiërarchie in de kolommen: EmployeeKey en ParentEmployeeKey die wordt gebruikt in alle voorbeelden van functies.

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

In de bovenstaande tabel ziet u dat werknemer 112 geen ouder heeft gedefinieerd, werknemer 14 werknemer 112 heeft als manager (ParentEmployeeKey), werknemer 3 heeft werknemer 14 als manager en werknemers 11, 13 en 162 werknemer 3 als manager. Het bovenstaande helpt te begrijpen dat werknemer 112 geen manager boven haar/hem heeft en zij/hij de topmanager is voor alle werknemers die hier worden weergegeven; ook rapporteert werknemer 3 aan werknemer 14 en werknemers 11, 13, 162 rapporteren aan 3.

De volgende tabel bevat de beschikbare functies, een korte beschrijving van de functie en een voorbeeld van de functie voor dezelfde gegevens die hierboven worden weergegeven.

De functie PATH: retourneert een tekst met scheidingstekens met de id's van alle bovenliggende items naar de huidige rij, beginnend met de oudste of bovenste tot aan de huidige.

EmployeeKey ParentEmployeeKey Pad
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

DE FUNCTIE PATHLENGTH: retourneert het aantal niveaus in een bepaald PATH(), beginnend op huidig niveau tot het oudste of hoogste bovenliggende niveau. In het volgende voorbeeld wordt PathLength gedefinieerd als '= PATHLENGTH([Path])'. Het voorbeeld bevat alle gegevens uit het path()-voorbeeld om te begrijpen hoe deze functie werkt.

EmployeeKey ParentEmployeeKey Pad 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, functie : retourneert het item op de opgegeven positie van een PATH() zoals resultaat, tellend van links naar rechts. In het volgende voorbeeld wordt de kolom PathItem - 4e van links gedefinieerd als '= PATHITEM([Path], 4)'. In dit voorbeeld wordt de EmployeKey op de vierde positie in de padtekenreeks van links geretourneerd met dezelfde voorbeeldgegevens uit het path()-voorbeeld.

EmployeeKey ParentEmployeeKey Pad PathItem - 4e van links
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

DE functie PATHITEMREVERSE: retourneert het item op positie van een PATH() zoals functieresultaat, waardoor achteruit wordt geteld van rechts naar links.
In het volgende voorbeeld wordt de kolom PathItemReverse - 3e van rechts gedefinieerd als ''= PATHITEMREVERSE([Path], 3). In dit voorbeeld wordt de EmployeKey op de derde positie in de padtekenreeks rechts geretourneerd, waarbij dezelfde voorbeeldgegevens uit het path()-voorbeeld worden gebruikt.

EmployeeKey ParentEmployeeKey Pad PathItemReverse - 3e van rechts
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

DE functie PATHCONTAINS : retourneert TRUE als het opgegeven item binnen het opgegeven pad bestaat. In het volgende voorbeeld wordt kolom PathContains - werknemer 162 gedefinieerd als '= PATHCONTAINS([Path], "162")'. In dit voorbeeld wordt TRUE geretourneerd als het opgegeven pad werknemer 162 bevat. In dit voorbeeld worden de resultaten uit het bovenstaande Path()-voorbeeld gebruikt.

EmployeeKey ParentEmployeeKey Pad PathContains - werknemer 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