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 que se muestran como una jerarquía de elementos primarios y secundarios en los modelos. Con estas funciones, un usuario puede obtener el linaje completo de elementos primarios de una fila o el número de niveles del linaje hasta el elemento primario superior. Puede averiguar cuál es el elemento primario del nivel n por encima de la fila actual, cual es el descendiente n desde la parte superior de la jerarquía de filas actual, y si un elemento primario determinado es un elemento primario de la jerarquía de fila actual.

En este artículo


Funciones de elemento primario y secundario en DAX

La tabla siguiente contiene una jerarquía de elementos primarios y secundarios en las columnas EmployeeKey y ParentEmployeeKey, que se utiliza 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 se ve que el empleado 112 no tiene definido ningún elemento primario, 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. La tabla hace más fácil ver que el empleado 112 no tienen un jefe por encima, y que es el jefe superior de todos los empleados de la tabla. También, que el empleado 3 está por debajo del empleado 14, y que los empleados 11, 13 y 162 están por debajo del empleado 3.

En la tabla siguiente se muestran las funciones disponibles, una breve descripción de la función y un ejemplo de la función con los mismos datos anteriores.

Función

Descripción y ejemplo

Función PATH

Devuelve una cadena de texto delimitada con los identificadores de todos los elementos primarios de la fila actual, comenzando con el más antiguo o superior y continuando hasta el actual.

En la siguiente columna de ejemplo, ‘Path’ se define como '=PATH(EmployeeKey, ParentEmployeeKey)'

EmployeeKey

ParentEmployeeKey

Path

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 una función PATH() determinada, empezando en el nivel actual y continuando 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 que sea más fácil entender la función.

EmployeeKey

ParentEmployeeKey

Path

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 (DAX)

Devuelve el elemento de la posición especificada de una función PATH() como resultado, contando de izquierda a derecha.

En el siguiente ejemplo, la columna PathItem - 4th from left se define como ‘=PATHITEM([Path], 4)’; este ejemplo devuelve el valor de EmployeKey de la cuarta posición de la cadena de Path desde la izquierda, utilizando los mismos datos del ejemplo de Path().

EmployeeKey

ParentEmployeeKey

Path

PathItem - 4th leftright

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 (DAX)

Devuelve el elemento de la position de una función PATH() como resultado, contando hacia atrás, de derecha a izquierda.

En el siguiente ejemplo, la columna PathItemReverse - 3rd from right se define como ‘=PATHITEMREVERSE([Path], 3)’; este ejemplo devuelve EmployeKey de la tercera posición de la cadena de Path desde la derecha, usando los mismos datos del ejemplo de Path().

EmployeeKey

ParentEmployeeKey

Path

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 (DAX)

Devuelve TRUE si el item especificado existe en la path especificada

En el ejemplo siguiente, la columna PathContains - employee 162 se define como ‘=PATHCONTAINS([Path], "162")’; este ejemplo devuelve TRUE si el empleado 162 está en la ruta dada. En este ejemplo se usan los resultados del ejemplo de Path() anterior.

EmployeeKey ParentEmployeeKey Path PathContains - employee 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

 Precaución   En SQL Server 2012 Analysis Services, el motor VertiPaq no admite la definición de jerarquías de elementos primarios y secundarios. Sin embargo, el lenguaje DAX proporciona varias funciones que permiten que los usuarios exploren ese tipo de jerarquías y las usen en fórmulas.

Volver al principio Volver al principio

 
 
Corresponde a:
Excel 2013, Power Pivot in Excel 2013