Descripción de las funciones para jerarquías de elementos primarios y secundarios en DAX
DAX proporciona cinco funciones para ayudar a los usuarios a administrar los datos presentados como una jerarquía de elementos primarios y secundarios en sus modelos. Con estas funciones, un usuario puede obtener el linaje completo de elementos primarios que tiene una fila, cuántos niveles tiene el linaje hasta el elemento primario superior, quién es el elemento primario n niveles por encima de la fila actual, quién es el descendiente n desde la parte superior de la jerarquía de filas actual y si un determinado elemento primario es un elemento primario de la jerarquía de filas actual.
Funciones de elementos primarios y secundarios en DAX
La tabla siguiente contiene una jerarquía de elementos primarios y secundarios en las columnas: EmployeeKey y ParentEmployeeKey que se usa en todos los ejemplos de funciones.
EmployeeKey | ParentEmployeeKey |
---|---|
112 | |
14 | 112 |
3 | 14 |
11 | 3 |
13 | 3 |
162 | 3 |
117 | 162 |
221 | 162 |
81 | 162 |
En la tabla anterior puede ver que el empleado 112 no tiene ningún elemento primario definido, el empleado 14 tiene al empleado 112 como jefe (ParentEmployeeKey), el empleado 3 tiene al empleado 14 como jefe y los empleados 11, 13 y 162 tienen al empleado 3 como jefe. Lo anterior ayuda a comprender que el empleado 112 no tiene ningún jefe por encima, sino que es el jefe superior de todos los empleados que se muestran aquí; además, el empleado 3 depende del empleado 14 y los empleados 11, 13 y 162 depende del 3.
En la tabla siguiente se presentan las funciones disponibles, una breve descripción de la función y un ejemplo de ella con los mismos datos mostrados arriba.
Función PATH: devuelve un texto delimitado con los identificadores de todos los elementos primarios para la fila actual, a partir del más antiguo o superior hasta el actual.
EmployeeKey | ParentEmployeeKey | Ruta de acceso |
---|---|---|
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 |
Función PATHLENGTH: devuelve el número de niveles de un argumento PATH() determinado a partir del nivel actual hasta el nivel primario más antiguo o superior. En el ejemplo siguiente, la columna PathLength se define como "= PATHLENGTH([Path])
"; en el ejemplo se incluyen todos los datos del ejemplo de Path() para ayudar a comprender cómo funciona esta función.
EmployeeKey | ParentEmployeeKey | Ruta de acceso | 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 |
Función PATHITEM: devuelve el elemento situado en la posición especificada de un resultado similar a PATH(), contando de izquierda a derecha. En el ejemplo siguiente, la columna PathItem - 4th from left se define como "= PATHITEM([Path], 4)
"; en este ejemplo se devuelve el argumento EmployeKey situado en la cuarta posición de la cadena Path desde la izquierda, con los mismos datos de ejemplo del ejemplo de Path().
EmployeeKey | ParentEmployeeKey | Ruta de acceso | PathItem - 4th from 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 |
Función PATHITEMREVERSE: devuelve el elemento situado en position de un resultado de función similar a PATH(), contando hacia atrás de derecha a izquierda.
En el ejemplo siguiente, la columna PathItemReverse - 3rd from right se define como "= PATHITEMREVERSE([Path], 3)
"; en este ejemplo se devuelve el argumento EmployeKey situado en la tercera posición de la cadena Path desde la derecha, con los mismos datos del ejemplo de Path().
EmployeeKey | ParentEmployeeKey | Ruta de acceso | PathItemReverse - 3rd from 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 |
Función PATHCONTAINS: devuelve TRUE si el elemento especificado existe en la ruta de acceso indicada. En el ejemplo siguiente, la columna PathContains - employee 162 se define como "= PATHCONTAINS([Path], "162")
"; en este ejemplo se devuelve TRUE si la ruta de acceso dada contiene el empleado 162. En este ejemplo se usan los resultados del ejemplo de Path() anterior.
EmployeeKey | ParentEmployeeKey | Ruta de acceso | PathContains - employee 162 |
---|---|---|---|
112 | 112 | FALSO | |
14 | 112 | 112|14 | false |
3 | 14 | 112|14|3 | FALSO |
11 | 3 | 112|14|3|11 | FALSO |
13 | 3 | 112|14|3|13 | FALSO |
162 | 3 | 112|14|3|162 | VERDADERO |
117 | 162 | 112|14|3|162|117 | VERDADERO |